4. Пример настройки мониторинга VMware

Обзор

В следующем примере описано, как настроить Zabbix для мониторинга виртуальных машин VMware. Это включает в себя:

  • создание узла сети, представляющего среду виртуализации VMware;
  • создание правила низкоуровневого обнаружения, которое обнаруживает виртуальные машины в вашей среде виртуализации VMware;
  • создание прототипа узла сети, на основе которого Zabbix будет генерировать реальные узлы сети для виртуальных машин, обнаруженных правилом низкоуровневого обнаружения.

Предварительные условия

В этом примере не рассматриваются настройки VMware. Предполагается, что VMware уже настроено.

Прежде чем продолжить, установите параметр StartVMwareCollectors в файле конфигурации Zabbix сервера в значение 2 или более (значение по умолчанию — 0).

Создание узла сети

1. Перейдите к Сбор данных (Data collection)Узлы сети (Hosts).

2. Создайте узел сети:

  • В поле Имя узла сети (Host name) введите имя узла сети (например, «VMware VMs»).
  • В поле Группы узлов сети (Host groups) введите либо выберите группу узлов сети (например, «Virtual machines»).

  • На вкладке Макросы (Macros) задайте следующие макросы узла сети:
    • {$VMWARE.URL} — URL SDK службы VMware (vCenter или ESXi hypervisor)
    • {$VMWARE.USERNAME} — имя пользователя службы VMware
    • {$VMWARE.PASSWORD} — пароль пользователя {$VMWARE.USERNAME} службы VMware

3. Нажмите кнопку Добавить (Add) для создания узла сети. Этот узел сети будет представлять вашу среду виртуализации VMware.

Создание правила низкоуровневого обнаружения

1. Нажмите Обнаружение (Discovery) напротив созданного узла сети, чтобы перейти к списку правил низкоуровневого обнаружения этого узла сети.

2. Создайте правило низкоуровневого обнаружения:

  • В поле Имя (Name) введите имя правила низкоуровневого обнаружения (например, «Discover VMware VMs»).
  • В поле Тип (Type) выберите «Простая проверка (Simple check)».
  • В поле Ключ (Key) введите встроенный ключ элемента данных для обнаружения виртуальных машин VMware: vmware.vm.discovery[{$VMWARE.URL}]
  • В полях Имя пользователя (User name) и Пароль (Password) введите соответствующие макросы, ранее настроенные на узле сети.

3. Нажмите кнопку Добавить (Add) для добавления правила низкоуровневого обнаружения. Это правило низкоуровневого обнаружения будет обнаруживать виртуальные машины в вашей среде виртуализации VMware.

Создание прототипа узла сети

1. В списке правил низкоуровневого обнаружения напротив ранее созданного правила низкоуровневого обнаружения нажмите Прототипы узлов сети (Host prototypes).

2. Создайте прототип узла сети. Поскольку прототипы узла сети — это заготовки для создания узлов сети посредством правил низкоуровневого обнаружения, большинство полей будут содержать макросы низкоуровневого обнаружения. Это гарантирует, что узлы сети будут созданы со свойствами на основе содержимого, полученного ранее созданным правилом низкоуровневого обнаружения.

  • В поле Имя узла сети (Host name) введите макрос {#VM.UUID}.
  • В поле Видимое имя (Visible name) введите макрос {#VM.NAME}.
  • В поле Шаблоны (Templates) введите или выберите шаблон «VMware Guest». Это шаблон содержит элементы данных VMware и правила обнаружения для мониторинга состояния питания виртуальной машины, использования CPU, использования памяти, сетевые устройства и т.д.
  • В поле Группы узлов сети (Host groups) введите или выберите группу узлов сети (например, «Discovered hosts»).
  • В поле Интерфейсы (Interfaces) добавьте пользовательский интерфейс узла сети. Затем введите макрос {#VM.DNS} в поле DNS имя (DNS name) или введите макрос {#VM.IP} в поле IP адрес (IP address). В качестве альтернативы, если виртуальные машины вашей среды VMware имеют несколько интерфейсов, перейдите к разделу Расширенная настройка интерфейса узла сети. Настройка пользовательского интерфейса узла сети нужна для правильного функционирования шаблона VMware Guest.

  • На вкладке Макросы (Macros) укажите макрос {$VMWARE.VM.UUID} со значением {#VM.UUID}. Это необходимо для правильного функционирования шаблона VMware Guest, который использует данный макрос как пользовательский макрос уровня узла сети в параметрах элементов данных (например, vmware.vm.net.if.discovery[{$VMWARE.URL}, {$VMWARE.VM.UUID}]).

3. Нажмите кнопку Добавить (Add), чтообы создать прототип узла сети. Этот прототип узла сети будет использоваться для создания узлов сети для виртуальных машин, обнаруженных ранее созданным правилом низкоуровневого обнаружения.

Просмотр узлов сети и метрик

После того, как прототип узла сети создан, правило низкоуровневого обнаружения будет создавать узлы сети для обнаруженных виртуальных машин VMware, а Zabbix приступит к их мониторингу. Обратите внимание, что обнаружение и создание узлов сети можно при необходимости также выполнить вручную.

Для просмотра созданных узлов сети перейдите к разделу меню Сбор данных (Data collection)Узлы сети (Hosts).

Для просмотра собранных метрик перейдите к разделу меню Мониторинг (Monitoring)Узлы сети (Hosts) и нажмите Последние данные (Latest data) напротив одного из узлов сети.

Расширенная настройка интерфейса узла сети

Ключ элемента данных vmware.vm.discovery[{$VMWARE.URL}], настроенный в разделе Создание правила низкоуровневого обнаружения, возвращает данные интерфейсов узлов сети в поле "net_if":

"net_if": [
             {
               "ifname": "5000",
               "ifdesc": "Network adapter 1",
               "ifmac": "00:11:22:33:44:55",
               "ifconnected": true,
               "iftype": "VirtualVmxnet3",
               "ifbackingdevice": "VLAN(myLab)",
               "ifdvswitch_uuid": "",
               "ifdvswitch_portgroup": "",
               "ifdvswitch_port": "",
               "ifip": [
                 "127.0.0.1",
                 "::1"
               ]
             },
             {
               "ifname": "5001",
               "ifdesc": "Network adapter 2",
               "ifmac": "00:11:22:33:44:55",
               "ifconnected": false,
               "iftype": "VirtualVmxnet3",
               "ifbackingdevice": "VLAN(myLab2)",
               "ifdvswitch_uuid": "",
               "ifdvswitch_portgroup": "",
               "ifdvswitch_port": "",
               "ifip": []
             }
           ]

Эти данные могут быть использованы, чтобы настроить пользовательский интерфейс узла сети.

1. При создании правила низкоуровневого обнаружения дополнительно настройте макрос низкоуровневого обнаружения. На вкладке LLD макросы (LLD macros) создайте пользовательский LLD макрос со значением JSONPath. Например:

  • {#MYLAB.NET.IF} — $.net_if[?(@.ifbackingdevice=="VLAN(myLab)")].ifip[0].first()

2. При создании прототипа узла сети добавьте пользовательский интерфейс узла сети и введите LLD макрос в поле DNS имя (DNS name) или IP адрес (IP address).