Для мониторинга серверов VMWare ESXi можно использовать стандартный протокол SNMP. В этой статье мы покажем, как включить и настроить агент SNMP на хостах VMWare ESXi 8.0 (статья подходит для всех версий ESXi, включая 6.7 и 7.0) и добавить их в вашу систему мониторинга.
Встроенный SNMP агент в ESXi можно настроить из командной строки esxcli или PowerShell модуль VMware PowerCLI , но не через графический интерфейса клиента vSphere.
Включить и настроить службу SNMP Server в VMWare ESXi
Откройте веба интерфейса ESXi Host client и запустите службу SNMP Serer (snmpd): ESXi хост -> Manage -> Services -> SNMP Server (по умолчанию служба остановлена).
Включите SSH доступ на ESXi хосте и подключитесь к нему с помощью ssh-клиента (я использую встроенный OpenSSH клиент Windows ).
Вывести текущие настройки SNMP:
esxcli system snmp get
SNMP не настроен: все параметры пустые, агент отключен:
Authentication: Communities: Enable: false Engineid: Hwsrc: indications Largestorage: true Loglevel: info Notraps: Port: 161 Privacy: Remoteusers: Syscontact: Syslocation: Targets: Users: V3targets:
Зададим адрес сервера мониторинга (SNMP target), порт (по умолчанию 161 UDP) и имя SNMP community (обычно public):
esxcli system snmp set --targets=192.168.1.100@161/public
Если разрешить доступ для нескольких хостов мониторинга, укажите из через запятую:
esxcli system snmp set --targets=192.168.170.113@161/public,192.168.14.142@161/public
Задать имя community можно так:
esxcli system snmp set --communities YOUR_COMMUNITY_STRING
Дополнительно можно указать местоположение:
esxcli system snmp set --syslocation "Серверная Дуб. 22, МСК, RU"
Контакты
esxcli system snmp set --syscontact [email protected]
Теперь нужно включить сервис SNMP на хосте ESXi:
esxcli system snmp set --enable true
Чтобы протестировать конфигурацию SNMP:
esxcli system snmp test
Для применения настроек перезапустите службу SNMP командой:
/etc/init.d/snmpd restart
esxcli system snmp set –r
Для отключения SNMP, выполните:
esxcli system snmp set --disable true
Настройка файервола ESXi для SNMP трафика
Вы можете разрешить трафик SNMP в файерволе хоста ESXi двумя способами. Чтобы разрешить получение SNMP запросов от любых устройств в сети:
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true
esxcli network firewall ruleset set --ruleset-id snmp --enabled true
Либо вы можете разрешить входящий трафик только от конкретного IP адреса вашего сервера мониторинга, или определенной IP подсети, в которой находятся ваши SNMP сервера:
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all false
esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address 192.168.1.0/24
esxcli network firewall ruleset set --ruleset-id snmp --enabled true
Теперь вы можете мониторить ваши ESXi сервера.
Настройка параметров SNMP на хосте ESXi через PowerShell
Если вам нужно быстро настроить параметры SNMP на нескольких хостах ESXi, вы можете воспользоваться PowerShell скриптом:
$ESXi = 'msk-esxi01'
$Community = 'Public'
$Target = '192.168.1.100'
$Port = '161'
#Подключение к хосту ESXi
Connect-VIServer -Server $sESXiHost
#Очистка текущих настроек SNMP
Get-VMHostSnmp | Set-VMHostSnmp -ReadonlyCommunity @()
#Настройка параметров SNMP
Get-VMHostSnmp | Set-VMHostSnmp -Enabled:$true -AddTarget -TargetCommunity $Community -TargetHost $Target -TargetPort $Port -ReadOnlyCommunity $Community
#Вывод текущих параметров SNMP
$Cmd= Get-EsxCli -VMHost $ESXiHost
$Cmd.System.Snmp.Get()
Если у вас есть продвинутая лицензия VMWare Enterprise Plus, вы можете настроить параметр SNMP на ESXi хостах через Host Profiles (Policies and Profiles -> Host Profiles -> ваш профиль -> Other SNMP Agent Configuration).
Настройте здесь следующие опции:
- Enable or Disable agent: выбрать
- IP/UDP Port: 161
- SNMP Community String: public
- Notification Receiver: задайте адрес сервера мониторинга в формате 192.168.14.140@161/public
Включить протокол SNMPv3 на VMware ESXI
Выше мы рассмотрели, как включить и настроить на хостах ESXi SNMP агент версии 1 и 2. Начиная с ESXi 5.1 поддерживается более современная и безопасная версия SNMP v3 .
Включить поддержку протоколов аутентификации и шифрования для SNMP:
esxcli system snmp set -a SHA1 -x AES128
Сгенерируйте хэши для паролей аутентификации и шифрования (замените authpass1 и privhash1 на нужный пароль):
esxcli system snmp hash --auth-hash authpass1 --priv-hash privhash1 --raw-secret
Скопируйте значение полученных хэшей (authhash1 и privhash1) в следующую команду, чтобы создать SNMP пользователя (snmpuser):
esxcli system snmp set -e yes -C [email protected] -u snmpuser/ authhash / privhash /priv
Теперь нужно указать SNMP-таргет:
esxcli system snmp set --v3targets 192.168.14.142@161/snmpuser/priv/trap
Вы можете удаленно проверить SNMP конфигурацию с помощью Linux утилиты snmpwalk :
snmpwalk -v3 -u snmpuser -l AuthPriv -a SHA -A authpass1 -x AES -X privhash1 192.168.13.59
Теперь вы можете добавить ESXi хост в вашу систему мониторинга.
Например, Zabbix по умолчанию предлагает использовать мониторинг VMware ESXi через API (предустановленный шаблон) без использования SNMP.
Вы можете скачать и импортировать шаблон для ESXi с поддержкой SNMP здесь ( https://www.zabbix.com/integrations/vmware#3rd_party ).
После этого добавьте новый хост ESXi и настройте параметры доступа к нему через SNMPv3.