Имеется кучка D-Link DGS-1210-20/F2, необходимо настроить их мониторинг в Zabbix. Использую протокол SNMP. Для начала рекомендую обновить прошивку на 6.30.B016, в которой исправлено множество критичных моментов, а также исправлен интерфейс настройки SNTP, ранее необходимо было обязательно указывать три NTP сервера, сейчас можно только один, что очень полезно в изолированных от интернета системах.
Ссылка на страницу продукта с загрузками: https://www.dlink.ru/ru/products/1/2223.html
Шаг номер один, качаем mib файл с описанием текстовых представлений OID: https://ftp.dlink.ru/pub/Switch/DGS-1210-20/SNMP/DGS-1210-FX-SERIES-FX-6-30-016.mib
Ubuntu 22.04 — кладём файл в /usr/share/snmp/mibs на сервере Zabbix.
Далее проверяем чтобы в /etc/snmp/snmp.conf фигурировала директория, указанная выше, а также настройка, касающаяся разрешения символа подчёркивания «_» в mib файлах:
mibdirs :/usr/share/snmp/mibs
mibAllowUnderline 1
Этот символ используется в mib файле от D-Link, иначе можно получить сообщение:
Expected "(" (_): At line 5504 in /usr/share/snmp/mibs/DGS-1210-FX-SERIES-FX-6-30-016.mib
Should be ACCESS (ecdhe): At line 5504 in /usr/share/snmp/mibs/DGS-1210-FX-SERIES-FX-6-30-016.mib
Bad parse of OBJECT-TYPE: At line 5504 in /usr/share/snmp/mibs/DGS-1210-FX-SERIES-FX-6-30-016.mib
Проверяем, что можем получить ответ от коммутатора через SNMP
snmpget -v1 -c public 172.30.10.246 d-link.11.153.1000.1.2.0
ответ:
DLINK-DGS-1210-Fx-SERIES-MIB::sysHardwareVersion.0 = STRING: F2
Теперь необходимо перезапустить и сервис snmpd и zabbix-server, иначе можно получить следующее сообщение в логах Zabbix:
tail -f /var/log/zabbix/zabbix_server.log
Cannot find module (DLINK-DGS-1210-Fx-SERIES-MIB): At line 1 in (none)
Cannot find module (DLINK-DGS-1210-Fx-SERIES-MIB): At line 1 in (none)
Перезапускаем:
systemctl restart snmpd.service
systemctl restart zabbix-server.service
Шаблон для Zabbix брал отсюда https://diyit.ru/viewtopic.php?t=1935 он для 4 версии, немного доработал — для 5 версии и Fx коммутаторов:
Импортируем шаблон, создаём host с получением данных через SNMP:
Указываем переменную SNMP_COMMUNITY с учётом названия вашего Community, указанного в настройках коммутатора:
В шаблоне есть «лишние» триггеры, как например «Пакеты отбрасываются на интерфейсе«, а также Items, которые не работают в данной версии коммутатора — пока не убирал.