Ad Widget

Collapse

Добавить элемент данных списка текущих VMs для VMware HOST.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ZBX_User
    Junior Member
    • Dec 2019
    • 15

    #1

    Добавить элемент данных списка текущих VMs для VMware HOST.

    Коллеги, добрый день!

    Использую стандартный шаблон Zabbix для мониторинга VMware с небольшими добавлениями.
    Объекты VMware Hosts заводятся в мониторинг обнаружением из стандартного шаблона.
    Требуется добавить элемент данных к каждому хосту, который будет содержать список имен виртуальных машин находящихся на этом хосте.
    Требуется это для того, чтобы при проблемах с хостом в тексте уведомления отправлять список VMs, необходимых к проверке.
    Существует отдельный шаблон для обнаружения VMs, который обнаруживает и собирает информацию по ним в отдельную группу, но это не совсем то.​
  • Hamardaban
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • May 2019
    • 2713

    #2
    Делаете текстовый элемент данных "простая проверка" с ключем vmware.vm.discovery[{$URL_SDK}] и предобработкой javaScript
    Code:
    var VMLIST=''
    var OBJLIST= JSON.parse(value)
    for(var n=0;n<OBJLIST.length;n++){
      VMLIST  = VMLIST+' '+OBJLIST[n]["{#VM.NAME}"]
    }
    return VMLIST​
    вот такой "концепт"

    Comment


    • ZBX_User
      ZBX_User commented
      Editing a comment
      Спасибо, проверил "концепт" работает, но возникли дополнительные сложности.

      Так как запрос производится к SDK VCENTER, то по предложенному решению получаем список машин со всех гипервизоров подключенным к нему.
      Для фильтрации внутри вашего запроса добавил условие:

      var VMLIST=''
      var OBJLIST= JSON.parse(value)
      for (var n=0;n<OBJLIST.length;n++) {
      if (OBJLIST[n]["{#HV.NAME}"]=='ИМЯ ГИПЕРВИЗОРА') {
      VMLIST = VMLIST + ' ' + OBJLIST[n]["{#VM.NAME}"]
      }
      }
      return VMLIST

      Если "напрямую" подставлять значение 'ИМЯ ГИПЕРВИЗОРА' , получаем верное значение.

      Пробовал подставлять значение '{HOST.NAME}', но макрос не раскрывается внутри скрипта.

      Теперь возник вопрос как в скрипт предобработки передать видимое имя узла сети для фильтрации значений?
      Last edited by ZBX_User; 27-12-2022, 09:35.
  • Hamardaban
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • May 2019
    • 2713

    #3
    В предобработке точно можно использовать значения пользовательских макросов. например вот так var AAA = '{$MACROJS}'
    И в документации среди поддерживаемых мест применения макроса {HOST.NAME} нет предобработки.

    Comment

    Working...