Всем привет, в этой статье мы с вами научимся настраивать роутеры или коммутаторы Mikrotik в Zabbix по протоколу SNMP. Поехали. (В примере использую Zabbix Server v.6.4.4, в других версиях всё выглядит +/- точно так же.)

Первым делом нам необходимо определить какую модель Mikrotik вы используете. Для этого в WinBox переходим на вкладку: System — RouterBOARD:

Как узнать модель роутера Mikrotik

Нас с вами интересует строка «Model», в которой указана модель вашего роутера. В моём случае — RB4011iGS+

Отсутствие вкладки RouterBOARD / без информации объясняется тем, что вы используете виртуальный роутер Mikrotik, который не является физическим оборудованием Mikrotik. Для мониторинга такого роутера вам необходимо будет скачать универсальный шаблон «Net Mikrotik SNMP«. Читайте далее.

Теперь нам необходимо скачать шаблон, благодаря которому мы будем мониторить наш роутер. Для этого переходим по ссылке и ищем шаблон для модели нашего роутера:
git.zabbix.com

Перейдя на сайт первым делом выбираю версию своего Zabbix Server:

После чего нажимаю Ctrl+F и вставляю название модели своего роутера (RB4011iGS+):

Если вы не нашли шаблон для своей модели Mikrotik / вкладка RouterBOARD у вас отсутствует или пустая, то качайте универсальный шаблон Mikrotik SNMP

Я же кликаю по шаблону в названии которой присутствует модель моего роутера и бегу его скачивать:

После скачивания шаблона переходим в Zabbix Server и импортируем наш шаблон:

Возвращаемся к нашему роутеру и начинаем настраивать SNMP. Настраивать будем через WinBox.
Переходим в настройки SNMP: IP-SNMP:

Настройки SNMP по-умолчанию выглядят именно таким образом SNMP выключен, на вкладке Trap Community указан профиль public, используется 1 версия протокола SNMP.

Приступаем к настройке:
Переходим на вкладку Communities. Кликаем по профилю «public» и нажимаем кнопку disable:

После чего нажимаем на «плюсик», чтобы создать новое SNMP community, указываем следующие параметры:
1. Вкладка «Name» указываем имя нашего SNMP Community — я указываю: zabbix-agent.
2. В поле Addresses указываем ip-адрес вашего Zabbix Server’a если мониторите напрямую или ip-адрес zabbix-proxy, если мониторинг будет осуществляться через proxy. Рекомендую в данной вкладке указывать ТОЛЬКО ip-адреса / диапазон ip-адресов с которых будете получать информацию по протоколу SNMP от роутера.
3. На вкладке Security выбираем — private.
4. Оставляем галочку напротив чекбокса Read Access. (Write Access нам НЕ требуется, оставляем галочку пустой.)
5. Authentification Protocol — MD5  (Можете указать другой)
6. Encryption Protocol — DES  (Можете указать другой)
В строках Authentification и Encryption password — придумываете и указываете пароль  аутентификации и шифрования соответственно.
Нажимаем кнопочку «Apply».
В моём случае настройки выглядят следующим образом:

Закрываем вкладку SNMP Community и возвращаемся на вкладку IP-SNMP. Указываем следующие настройки:
1. Ставим галочку напротив чекбокса «Enabled».
2. Engine ID — Если это поле у вас пустое, то укажите в качестве Engine ID MAC-Address вашего интерфейса Mikrotik, например — Ether1. (WINBOX  —  Interfaces — Ether1 — копируем содержимое поля MAC-address).
3. Trap Community — выбираете имя вашего SNMP Community созданное ранее (В моём случае zabbix-agent)
4. Trap version — 3
Нажимаем кнопочку «Apply».
Готово. Настройка SNMP со стороны Mikrotik завершена:
В моём случае настройки выглядят следующим образом:

Переходим в Zabbix Server. Создаём новый хост и привязываем к нему наш импортированный шаблон для мониторинга Mikrotik — в моём случае — шаблон «MikroTik RB4011iGSRM by SNMP»

Data Collections — Hosts — Create Host:
1. Host name — указываете имя вашего Mikrotik роутера в заббикс.
2. Templates — указываете имя вашего импортированного шаблона (у меня — MikroTik RB4011iGSRM by SNMP)
3. Host Groups — указываете вашу группу хостов к которой будет относиться микротик в заббикс
4. Interfaces — выбираем интерфейс SNMP:
Во Вкладке IP Address указываете ip-address вашего микротика. Если мониторите извне без прокси — внешний ip, если роутер в локальной сети или мониторится через proxy — то указываете локальный ip-address микротика. Port — 161 оставляем по-умолчанию.
SNMP Version — выбираем SNMPv3
Security Name — указываете имя вашего SNMP-community созданного в микротик (у меня — zabbix-agent)
Security Level — указываем AuthPriv
Указываете Authentication protocol (у меня — MD5) и в следующей строке пароль, который указывали в микротике.
Указываете Privacy protocol (у меня — DES) и в следующей строке пароль, который указывали в микротике (Encryption Protocol).
Если мониторите через Прокси, то не забудьте внизу во вкладке «Monitored by proxy» выбрать ваш proxy.
Пример моих настроек:

После создания хоста в заббикс рекомендую перейти на вкладку Discovery, выбрать все элементы и нажать кнопочку Execute Now:

Таким образом мы вручную просим Zabbix опросить наш Mikrotik по SNMP. При правильной настройке данные от него должны прийти в течении 5 минут. В случае возникновения каких-либо проблем с мониторингом Mikrotik по SNMP можно выполнить «дебаг» с помощью команды SNMP.
В начале рекомендую выполнять проверку работоспособности SNMP изнутри сети Mikrotik (локальной сети) и только после этого пробовать получать данные по SNMP извне.

Как выполнить проверку работоспособности SNMP:
Если у вас в локальной сети есть Linux-хост, то проще будет выполнять проверку с него. Устанавливайте на него пакет snmpwalk. (Если мониторите через proxy, то лучше делать это как раз с него). Если Zabbix Server поднят в локальной сети — то выполняйте проверку с него.
Команда SNMPWALK в моём случае будет выглядеть следующим образом:
snmpwalk -v 3 -u zabbix-agent -l authPriv -a MD5 -A Jjdskn@i348237Zj -x DES -X zNXzk349cxKAl#mmc 192.168.1.1

-u (указываете community-name созданный в микротике)
-a MD5 -A *Authentication Password* (Вместо MD5 у вас может быть SHA1, в зависимости от того какой тип шифрования вы используете)
-x DES -X *Encryption Password* (Вместо DES у вас может быть другой тип шифрования, проверяйте настройки на вкладке Communities в Mikrotik)

В случае удачного ответа Mikrotik по SNMP вы получите кучу строчек с информацией в командную строку.

Проверку с помощью команды snmpwalk можно выполнить и с Windows-машины, но необходимо будет скачать утилиту snmpwalk.exe и через командную строку выполнять проверку. Учтите, что параметры команды в этом случае изменятся, читайте документацию к загруженной утилите.

Надеюсь эта статья была вам полезна, спасибо что дочитали до конца. Всем удачи! Если возникли какие-либо проблемы — пишите комментарии, по возможности постараюсь помочь.