Если вы хотите отслеживать состояние серверов VMWare ESXi в своей корпоративной системе мониторинга, вам нужно включить и настройки на хостах виртуализации службу SNMP. В этой статье мы покажем, как включить и настроить службу SNMP в VMWare ESXi 6.7 (статья подходит для всех актуальных версий ESXi, начиная с 5.5).
В ESXi есть встроенный SNMP агент, который может отправлять и получать запросы и трапы. Вы можете включить и настроить агент SNMP на ESXi хостах несколькими способами: через vCLI, PowerCLI, но не через графический интерфейса клиента vSphere.
Служба SNMP Server в VMWare ESXi
Из веба интерфейса vSphere вы можете только проверить, что служба SNMP сервер запушена, изменить режим ее запуска, остановить/перезапустить сервис. Перейдите на свой ESXi хост -> Configure -> Services -> SNMP Server. По умолчанию служба остановлена. Запустите ее.
Включите SSH доступ на ESXi хосте и подключитесь к нему любым ssh-клиентом (я использую встроенный OpenSSH клиент Windows 10).
Чтобы проверить текущие настройки 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 агента в ESXi
Укажем адрес сервера мониторинга (SNMP target), порт (по умолчанию 161 UDP) и имя SNMP community (обычно public):
esxcli system snmp set --targets=192.168.1.100@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 через PowerCLI
Если вам нужно быстро настроить параметры SNMP на нескольких хостах ESXi, вы можете воспользоваться скриптом в PowerCLI:
$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 (Management -> Host Profiles -> your Profile -> SNMP Agent Configuration).
Настройка протокола SNMPv3 на ESXI
Выше мы рассмотрели, как включить и настроить на хостах ESXi SNMP агент версии 1 и 2. Начиная с ESXi 5.1 поддерживается более современная версия протокола – SNMP v3. Чтобы настроить более безопасный протокол SNMPv3, воспользуйтесь следующими командами.
Задаем протоколы аутентификации и шифрования:
esxcli system snmp set -a MD5 -x AES128
Генерируем хэши для паролей аутентификации и шифрования (замените authpass и privhash на нужный пароль):
esxcli system snmp hash --auth-hash authpass --priv-hash privhash --raw-secret
С помощью полученных хэшей (authhash и privhash), добавим пользователя:
esxcli system snmp set -e yes -C [email protected] -u snmpuser/authhash/privhash/priv
Теперь нужно указать SNMP-таргет:
esxcli system snmp set –v3targets 192.168.1.100@161/user/priv/trap
Вы можете удаленно проверить SNMP конфигурацию с помощью Linux утилиты snmpwalk:
snmpwalk -v3 -u snmpuser -l AuthPriv -a SHA -A $ecret1 -x AES-X $ecret2 192.168.101.20
В статье нехватает развития, а именно дальнейшее использование SNMP например в Zabbix.
Поддержал
Автор, добей данный вопрос-просьбу
esxcli syste snmp test
system
Очень не хватает общей статьи, как связать ESXi с Zsbbix/Cacti/etc
Не вижу проблем в опросе, документацию и snmpwalk в руки
Как можно настроить параметры snmp?
Настроил, получаю данные, но приходит не всё.
Данных по CPU нет, например.
Если запросить
snmpwalk -v 2c -c public 10.53.75.126 iso.1.3.6.1.2.1.25.3.3.1.2
получаю
iso.1.3.6.1.2.1.25.3.3.1.2 = No Such Object available on this agent at this OID
возможно нужно дополнительно включить отдачу данных?