[comment]: # ({7ddf901c-7bc79a95})
# 4. Пример настройки мониторинга VMware

[comment]: # ({/7ddf901c-7bc79a95})

[comment]: # ({3c9549aa-4948cb9c})
#### Обзор

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

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

[comment]: # ({/3c9549aa-4948cb9c})

[comment]: # ({8d40aabd-5d265fdc})
#### Предварительные условия

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

Прежде чем продолжить, установите параметр [`StartVMwareCollectors`](/manual/appendix/config/zabbix_server#startvmwarecollectors) в файле конфигурации Zabbix сервера в значение `2` [или более](/manual/vm_monitoring#настройка) (значение по умолчанию — `0`).

[comment]: # ({/8d40aabd-5d265fdc})

[comment]: # ({ae84527f-05232a19})
#### Создание узла сети

1\. Перейдите к *Сбор данных (Data collection)* → [*Узлы сети (Hosts)*](/manual/web_interface/frontend_sections/data_collection/hosts).

2\. [Создайте](/manual/config/hosts/host) узел сети:

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

![](../../../assets/en/manual/vm_monitoring/vmware_host.png){width="600"}

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

![](../../../assets/en/manual/vm_monitoring/vmware_host_macros.png){width="600"}

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

[comment]: # ({/ae84527f-05232a19})

[comment]: # ({665f7b96-967b85cf})
#### Создание правила низкоуровневого обнаружения

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

2\. [Создайте](/manual/discovery/low_level_discovery#настройка-низкоуровневого-обнаружения) правило низкоуровневого обнаружения:

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

![](../../../assets/en/manual/vm_monitoring/vmware_host_discovery.png){width="600"}

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

[comment]: # ({/665f7b96-967b85cf})

[comment]: # ({3c0bd2af-4202131d})
#### Создание прототипа узла сети

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

2\. [Создайте](/manual/discovery/low_level_discovery/host_prototypes#настройка) прототип узла сети.
Поскольку прототипы узла сети — это заготовки для создания узлов сети посредством правил низкоуровневого обнаружения, большинство полей будут содержать [макросы низкоуровневого обнаружения](/manual/config/macros/lld_macros).
Это гарантирует, что узлы сети будут созданы со свойствами на основе [содержимого, полученного](/manual/vm_monitoring/discovery_fields) ранее созданным правилом низкоуровневого обнаружения.

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

![](../../../assets/en/manual/vm_monitoring/vmware_host_prototype.png){width="600"}

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

![](../../../assets/en/manual/vm_monitoring/vmware_host_prototype_macros.png){width="600"}

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

[comment]: # ({/3c0bd2af-4202131d})

[comment]: # ({3e8fd594-92a7e887})
#### Просмотр узлов сети и метрик

После того, как прототип узла сети создан, правило низкоуровневого обнаружения будет создавать узлы сети для обнаруженных виртуальных машин VMware, а Zabbix приступит к их мониторингу.
Обратите внимание, что обнаружение и создание узлов сети можно при необходимости также [выполнить вручную](/manual/config/items/check_now).

Для просмотра созданных узлов сети перейдите к разделу меню [*Сбор данных (Data collection)* → *Узлы сети (Hosts)*](/manual/web_interface/frontend_sections/data_collection/hosts).

![](../../../assets/en/manual/vm_monitoring/vmware_discovered_hosts.png){width="600"}

Для просмотра собранных метрик перейдите к разделу меню [*Мониторинг (Monitoring)* → *Узлы сети (Hosts)*](/manual/web_interface/frontend_sections/monitoring/hosts) и нажмите *Последние данные (Latest data)* напротив одного из узлов сети.

![](../../../assets/en/manual/vm_monitoring/vmware_monitored_hosts.png){width="600"}

[comment]: # ({/3e8fd594-92a7e887})

[comment]: # ({2e5060fa-2c1d07a4})
#### Расширенная настройка интерфейса узла сети

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

```json
"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\. При [создании правила низкоуровневого обнаружения](#создание-правила-низкоуровневого-обнаружения) дополнительно настройте [макрос низкоуровневого обнаружения](/manual/config/macros/lld_macros).
На вкладке *LLD макросы (LLD macros)* создайте пользовательский LLD макрос со значением [JSONPath](/manual/config/items/preprocessing/jsonpath_functionality). Например:

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

![](../../../assets/en/manual/vm_monitoring/vmware_lld_macro.png){width="600"}

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

![](../../../assets/en/manual/vm_monitoring/vmware_lld_macro_host_prototype.png){width="600"}

[comment]: # ({/2e5060fa-2c1d07a4})
