Ad Widget

Collapse

LLD через wmi.getall

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Victor Sklyarov
    Senior Member
    • Apr 2016
    • 184

    #1

    LLD через wmi.getall

    Создаю правило обнаружения wmi.getall[root\hpq,"select ElementName from HPSA_DiskDrive"] Получаю: [{"ElementName":"Port:1I Box:1 Bay:1"},{"ElementName":"Port:1I Box:1 Bay:2"}] В предобработке с помощью JS формирую JSON [{"{#DISK_NAME}":"Port:1I Box:1 Bay:1","{#DISK_INDEX}":0},{"{#DISK_NAME}":"Port:1I Box:1 Bay:2","{#DISK_INDEX}":1}]
    Создаю Прототип элемента данных. Имя Disk {#DISK_NAME} Ключ Disk.OperationalStatus[{#DISK_INDEX}] Тип - Зависимый элемент данных. Основной элемент: wmi.getall["root\hpq","select * from HPSA_Diskdrive"] Предобработка JSONPath $.[{#DISK_INDEX}].OperationalStatus
    Есть ли более простой путь, без JS? Что даёт вкладка LLD макрос? В описании сказано: "Несмотря на то, что макросы низкоуровневого обнаружения не создаются в возвращаемом JSON, эти макросы может задать пользователь дополнительным шагом с использованием функциональности пользовательских LLD макросов с JSONPath, которые будут указывать на обнаруженные значения в полученном JSON." Непонятно, как можно создать макросы из JSONPath если элементов с одинаковым именем больше одного.
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    А как выглядит JSON, который возвращает запрос "select * from HPSA_DiskDrive" ?

    Comment


    • Victor Sklyarov
      Victor Sklyarov commented
      Editing a comment
      [{"CreationClassName":"HPSA_DiskDrive","Description ":"SAS","DeviceID":"001438029E23D10:0","DriveConfi guration":2,"DriveHasMNPData":"True","DriveInterfa ce":3,"DrivePlacement":1,"DriveRotationalSpeed":10 500,"ElementName":"Port:1I Box:1 Bay:1","EnabledDefault":2,"EnabledState":5,"IsSani tizeEraseSupported":"False","MediaType":1,"Name":" S0K4VA190000K602G9QC","NegotiatedDataWidth":1,"Neg otiatedSpeed":"6000000000","OperationalStatus":[5],"RequestedState":12,"SmartDriveCarrierAuthStatus" :2,"SSDWearStatus":0,"SystemCreationClassName":"HP SA_ArraySystem","SystemName":"001438029E23D10","To talPowerOnHours":"50538","TransitioningToState":12 },{"CreationClassName":"HPSA_DiskDrive","Descripti on":"SAS","DeviceID":"001438029E23D10:1","DriveCon figuration":2,"DriveHasMNPData":"True","DriveInter face":3,"DrivePlacement":1,"DriveRotationalSpeed": 10000,"ElementName":"Port:1I Box:1 Bay:2","EnabledDefault":2,"EnabledState":5,"IsSani tizeEraseSupported":"False","MediaType":1,"Name":" 73F0A0MSFTM91329","NegotiatedDataWidth":1,"Negotia tedSpeed":"6000000000","OperationalStatus":[2],"RequestedState":12,"SmartDriveCarrierAuthStatus" :2,"SSDWearStatus":0,"SystemCreationClassName":"HP SA_ArraySystem","SystemName":"001438029E23D10","To talPowerOnHours":"52836","TransitioningToState":12 }]
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #3
    Ну так вот, для начала: запись "DriveRotationalSpeed":10 500 делает JSON невалидным, поскольку из-за пробела это не число, а строка, но не взятая в кавычки

    Comment

    • Kos
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • Aug 2015
      • 3404

      #4
      Originally posted by Semiadmin
      Ну так вот, для начала: запись "DriveRotationalSpeed":10 500 делает JSON невалидным, поскольку из-за пробела это не число, а строка, но не взятая в кавычки
      Подозреваю, что это шалости форумного движка (как, например, и пробел внутри имени: "Negotia tedSpeed"), который любит вставлять лишние пробелы куда ни попадя в случае, если пользователь игнорирует возможности форматирования (например, тег "[CODE]").

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #5
        Kos, спасибо, не заметил, явно глюк движка.
        Собственно, непонятно, зачем нужен макрос {#DISK_INDEX}, ради которого весь JS и затеян. JSONPath умеет взять "OperationalStatus диска, у которого ElementName такое-то"

        Comment

        Working...