Пример настройки мониторинга VMware
Обзор
В следующем примере описано, как настроить Zabbix для мониторинга виртуальных машин VMware. Это включает в себя:
- создание узла сети, представляющего среду виртуализации VMware;
- создание правила низкоуровневого обнаружения, которое обнаруживает виртуальные машины в вашей среде виртуализации VMware;
- создание прототипа узла сети, на основе которого Zabbix будет генерировать реальные узлы сети для виртуальных машин, обнаруженных правилом низкоуровневого обнаружения.
Предварительные требования
В этом примере не рассматривается настройка VMware. Предполагается, что VMware уже настроена.
Перед продолжением установите параметр StartVMwareCollectors в файле конфигурации сервера Zabbix в значение 2 или больше (значение по умолчанию — 0).
Создание узла сети
1. Перейдите в Сбор данных > Узлы сети.
2. Создайте узел сети:
- В поле Host name введите имя узла сети (например, "VMware VMs").
- В поле Host groups введите или выберите группу узлов сети (например, "Virtual machines").

- На вкладке Macros задайте следующие макросы узла сети:
- {$VMWARE.URL} - URL SDK службы VMware (гипервизор ESXi) (https://servername/sdk)
- {$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 начнет их мониторинг. Обратите внимание, что обнаружение и создание узлов сети также можно выполнить вручную, если это необходимо.
Чтобы просмотреть созданные узлы сети, перейдите в раздел меню Сбор данных > Узлы сети.

Чтобы просмотреть собранные метрики, перейдите в раздел меню Мониторинг > Узлы сети и нажмите Последние данные для одного из узлов сети.

Расширенная настройка интерфейса узла сети
Ключ элемента данных 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).
