Мониторинг mikrotik с помощью zabbix на ubuntu server

Заметка посвящена настройке минимального мониторинга роутера mikrotik с помощью zabbix сервера версии 5.0.8, установленного на ubuntu server 20.04.
Сначала настроим snmp в mikrotik. Переходим на роутер mikrotik в раздел ip -> snmp и делаем такие настройки:
mikrotik snmp
Не забудьте в конце обязательно нажать «Apply», иначе настройки не сохранятся.
Далее на той же вкладке нажимаем кнопку «Communities» и видим единственную строчку:
mikrotik snmp
Открываем её для редактирования и вписываем следующие данные:
mikrotik snmp

Нажимаем «ОК» после того, как заполнили поля и на этом настройка snmp в mikrotik закончена. Переходим к серверу ubuntu server, где установлен zabbix сервер.

На сервере устанавливаем snmp:
sudo apt-get install snmp
sudo apt-get install snmp-mibs-downloader
sudo download-mibs

Пробуем опросить mikrotik:
sudo snmpwalk -v2c -c public 10.36.11.31
Должно появиться много строк с параметрами для мониторинга и полученными данными.

Теперь переходим в веб-интерфейс zabbix http://10.36.1.7/zabbix/ для подключения мониторинга mikrotik.
Сразу определимся с IP адресами, чтобы легче было понимать, что за адреса я указывал.
10.36.1.7 — это адрес ubuntu server с установленным zabbix-server.
10.36.11.31 — адрес mikrotik роутера, который мы будем мониторить.

Отсюда https://share.zabbix.com/official-templates/template-modules-pack или отсюда качаем Template Modules Pack.

Переходим в раздел Configuration -> Templates и нажимаем кнопку «Import» в правом верхнем углу
mikrotik zabbix

И загружаем как минимум следующие шаблоны:
00template_module_icmp_ping__EN.xml
template_module_generic_snmp_SNMPv2_EN.xml
template_module_interfaces_SNMPv2_EN.xml

mikrotik zabbix

Так же отсюда https://share.zabbix.com/network_devices/mikrotik/template-net-mikrotik-snmpv2 или отсюда загружаем «Template Net Mikrotik SNMPv2»
и тоже загружаем его в шаблон zabbix сервера.

Переходим в раздел Configuration -> Host groups и добавляем хост mikrotik роутера. Роутеров у меня будет несколько, поэтому для них создам группу, но описывать в этой статье я буду на примере одного роутера. Создаём группу «mikrotik routers», нажав кнопку «Create host group» в правом верхнем углу, вписываем название для группы и жмём кнопку «Add»
mikrotik zabbix

mikrotik zabbix

Далее идём в раздел Configuration -> Host и нажимаем кнопку «Create host» в правом верхнем углу:
mikrotik zabbix

Вписываем данные нашего роутера mikrotik. Мониторим по snmp, поэтому удаляем строку Agent и добавляем snmp. Должно получиться что-то похожее на это:
mikrotik zabbix
Так же при добавлении хоста, надо перейти во вкладку «Templates» и прикрепить загруженный шаблон «Template Net Mikrotik SNMPv2»
mikrotik zabbix

Жмём «Update»

Далее снова идём в раздел Configuration -> Host , ждём немного и увидим позеленевший значок «SNMP» справа в строке с нашим новым хостом:
mikrotik zabbix
Это значит, что мониторинг работает и посмотреть последние полученные данные можно в разделе Monitoring -> Latest data.

Если при настройке на mikrotik указывали SNMP Community Name вместо public что-то другое, то это надо указать в настройках zabbix, а именно в настройках нашего добавленного хоста на вкладке macros указать Community Name следующим образом (для примера я указал вместо public имя publ)
Macro -> {$SNMP_COMMUNITY}
Value -> publ
Description -> SNMP_COMMUNITY=publ (не обязательный параметр)
mikrotik zabbix
Таким образом мы создали хост в zabbix и прикрепили к нему готовый шаблон. Но есть более гибкое решение — это создать свой шаблон по тем параметрам, которые нас интересуют. Тут вспоминаем вывод множества параметров по команде sudo snmpwalk -v2c -c public 10.36.11.31. OID можно посмотреть на самом mikrotik в его терминале командами:
system resource print oid
system resource cpu print oid
system health print oid
interface print oid

Сначала открепим шаблон от хоста mkt11d31, для этого в настройках этого хоста Configuration -> Host на вкладке Templates нажимаем «Unlink and clear»:
mikrotik zabbix

Далее переходим в Configuration -> Templates и добавляем новый шаблон, нажав в правом верхнем углу кнопку «Create template»:
mikrotik zabbix

Назову его «Template Mikrotik SNMP2» и добавлю в группу «mikrotik routers»:
mikrotik zabbix

Потом переходим в Configuration -> Templates выбираем наш созданный шаблон, переходим во вкладку Items и нажимаем в правом верхнем углу кнопку «Create item»
mikrotik zabbix

Одним из выводов команды sudo snmpwalk -v2c -c public 10.36.11.31 была строка похожая на:
iso.3.6.1.2.1.1.3.0 = Timeticks: (3466100) 9:37:41.00
Вот как раз iso.3.6.1.2.1.1.3.0 из этой строки нам и пригодится для заполнения всех полей при добавления нового item. Мы выведем данные uptime mikrotik для мониторинга в zabbix.

Заполняем поля следующим образом:
Name — произвольно понятное, например uptime
Type — snmp agent
Key — uptime
SNMP OID — iso.3.6.1.2.1.1.3.0
Type of information — Numeric (unsigned)
Units — uptime
Update interval — период обновления данных, оставим 1 раз в минуту, то есть 1m
Custom intervals — Flexible
History storage period — Storage period — 90d
Trend storage period — Do not keep trends
Show value — As is
mikrotik zabbix

В случае с подсчётом uptime, чтобы время отображалось корректно, надо ещё перейти на вкладку «Preprocessing» создаваемого item и там создать «Preprocessing steps»:
Custom multiplier с параметром 0.01
mikrotik zabbix

и вот только сейчас нажимаем кнопку «Add». Таким образом мы создали элемент мониторинга uptime в шаблоне Template Mikrotik SNMP2. Теперь к этому шаблону надо прикрепить наш хост mkt11d31. Для этого действуем так же как и раньше, а именно переходим в Configuration -> Host , выбираем наш хост mkt11d31, переходим на вкладку Templates, выбираем наш шаблон «Template Mikrotik SNMP2» и прикрепляем его к хосту:
mikrotik zabbix
Через совсем небольшое время можно посмотреть последние полученные данные про uptime нашего роутера mikrotik в разделе Monitoring -> Latest data
mikrotik zabbix

Таким образом можно выводить данные с mikrotik в zabbix, надо только учитывать что это за данные (числовые, текстовые), надо ли их модифицировать после получения и найти OID этих данных в роутере или другой железке с поддержкой snmp. Для примера, можно выводить объём трафика, температуру, загрузку и многое другое.

Ну и ещё, думаю, важным будет добавить в zabbix информацию о том запущен ли роутер или недоступен. Для этого так же в шаблон «Template Mikrotik SNMP2» добавляем item, но проверять будем (параметр Type) не через snmp agent, а через Simple check. Проверка доступности хоста будет происходить простым ping`ом, на на сервер с zabbix надо будет поставить (если вдруг он не установлен) fping:
sudo apt-get install fping
И проверить, чтобы fping лежал на сервер тут /usr/bin/fping и тут /usr/bin/fping6. Чтобы это проверить достаточно посмотреть вывод этих двух команд:
whereis fping
whereis fping6

Если они там и расположены, то идём дальше, если расположены в другом месте, то это место надо откорректировать в файле конфигурации /etc/zabbix/zabbix_server.conf в строках
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
В ubuntu server 20.04 было всё нормально и файлы лежали в положенных для них местах.

С fping разобрались, возвращаемся к настройке item шаблона «Template Mikrotik SNMP2». Скорее всего придётся создавать 3 item с ping, описывать их все здесь не имеет смысла, так как в zabbix server уже есть шаблон под названием «Template Module ICMP Ping», именно там и можно посмотреть настройки этих трёх item. Оттуда же можно перенести в наш шаблон и триггеры с вкладки Triggers (их там тоже три), они нам тоже пригодятся.
mikrotik zabbix
Думаю, статью надо завершать, потому что тема zabbix сервера довольно большая и в одной публикации освоить её будет тяжело. Следующими важным шагом будет отправка уведомлений на почту в случае срабатывания триггера.

Добавить комментарий