В этой статье будет описан процесс настройки мониторинга роутеров MikroTik по SNMP с помощью сервера Zabbix.
Настройка MikroTik
Настройка SNMP
Если вам интересно, что такое SNMP и как он работает, то можете почитать здесь. Ниже я покажу как настроить SNMP на MikroTik.
Открываем IP / SNMP и включаем его. Записываем контактную информацию в поля: Сontact info и Location (это просто текст, здесь вы может написать произвольную информацию). Затем изменяем Trap Version на 2. Удаляем Trap Generator (поле должно быть пустым, для этого нужно нажать на стрелочку вверх).
В этом же окне нажимаем кнопку Communities. И в открывшемся окне настраиваем Public SNMP Communites. А в поле addresses впишем ip-адрес сервера Zabbix.
Теперь к нашему MikroTik сможет подключиться только Zabbix сервер. И он сможет только получать данные, так как галочку Write Access мы не ставили.
Настройка фаервола
Дальше нужно разрешить подключение к MikroTik в фаерволе. Для этого открываем IP/Firewall и создаём новое правило: разрешаем входящий UDP порт 161 с сервера Zabbix.
Ну и на вкладке Action выбираем действие — accept, чтобы разрешить такое подключение.
Получение oid для мониторинга
Мониторить будем интерфейсы, а именно активны они или нет.
В терминале Mikrotik выполняем:
> /interface/print Flags: R - RUNNING Columns: NAME, TYPE, ACTUAL-MTU, MAC-ADDRESS # NAME TYPE ACTUAL-MTU MAC-ADDRESS 0 R ether1 ether 1500 12:19:21:40:A4:1D 1 R ether2 ether 1500 52:9C:FE:7A:4A:DC > /interface/print oid Flags: D - dynamic; X - disabled, R - running; S - slave; P - passthrough 0 R name=.1.3.6.1.2.1.2.2.1.2.8 actual-mtu=.1.3.6.1.2.1.2.2.1.4.8 mac-address=.1.3.6.1.2.1.2.2.1.6.8 admin-status=.1.3.6.1.2.1.2.2.1.7.8 oper-status=.1.3.6.1.2.1.2.2.1.8.8 bytes-in=.1.3.6.1.2.1.31.1.1.1.6.8 packets-in=.1.3.6.1.2.1.31.1.1.1.7.8 discards-in=.1.3.6.1.2.1.2.2.1.13.8 errors-in=.1.3.6.1.2.1.2.2.1.14.8 bytes-out=.1.3.6.1.2.1.31.1.1.1.10.8 packets-out=.1.3.6.1.2.1.31.1.1.1.11.8 discards-out=.1.3.6.1.2.1.2.2.1.19.8 errors-out=.1.3.6.1.2.1.2.2.1.20.8 1 R name=.1.3.6.1.2.1.2.2.1.2.7 actual-mtu=.1.3.6.1.2.1.2.2.1.4.7 mac-address=.1.3.6.1.2.1.2.2.1.6.7 admin-status=.1.3.6.1.2.1.2.2.1.7.7 oper-status=.1.3.6.1.2.1.2.2.1.8.7 bytes-in=.1.3.6.1.2.1.31.1.1.1.6.7 packets-in=.1.3.6.1.2.1.31.1.1.1.7.7 discards-in=.1.3.6.1.2.1.2.2.1.13.7 errors-in=.1.3.6.1.2.1.2.2.1.14.7 bytes-out=.1.3.6.1.2.1.31.1.1.1.10.7 packets-out=.1.3.6.1.2.1.31.1.1.1.11.7 discards-out=.1.3.6.1.2.1.2.2.1.19.7 errors-out=.1.3.6.1.2.1.2.2.1.20.7
С помощью команд выше мы определили oid статусов интерфейсов:
0 | ether1 | oper-status=.1.3.6.1.2.1.2.2.1.8.8 |
1 | ether2 | oper-status=.1.3.6.1.2.1.2.2.1.8.7 |
Настройка Zabbix
Дальше идём на Zabbix и добавляем Mikrotik в качестве узла, за которым будет вестись мониторинг.
А ниже нужно добавить SNMP интерфейс (тот же самый ip адрес, что и адрес узла):
А затем добавляем элементы данных snmp:
- SNMPv2 агент;
- Ключ и SNMP OID одинаковые. Здесь указывается oid (например, .1.3.6.1.2.1.2.2.1.8.8);
- SNMP интерфейс, созданный при добавлении узла.
После добавления элемента данных вы начнёте получать статус интерфейса в цифровом виде:
- 1 — Интерфейс включен
- 2 — Интерфейс выключен
Другие метрики
Таким же способом вы можете добавить и другие метрики. Ниже я описываю стандартный способ получения OID различных метрик.
Температура и скорость работы вентиляторов:
> /system/health/print Columns: NAME, VALUE, TYPE # NAME VALUE TYPE 0 cpu-temperature 48 C 1 phy-temperature 58 C 2 fan1-speed 0 RPM 3 fan2-speed 0 RPM 4 fan3-speed 0 RPM 5 fan4-speed 0 RPM 6 psu1-state ok 7 psu2-state ok > /system/health/print oid 0 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.17 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.17 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.17 1 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.52 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.52 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.52 2 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.7001 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.7001 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.7001 3 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.7002 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.7002 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.7002 4 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.7003 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.7003 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.7003 5 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.7004 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.7004 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.7004 6 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.7401 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.7401 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.7401 7 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.7402 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.7402 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.7402
Ресурсы:
> /system/resource/print oid used-memory: .1.3.6.1.2.1.25.2.3.1.6.65536 uptime: .1.3.6.1.2.1.1.3.0 build-time: .1.3.6.1.4.1.14988.1.1.7.6.0 total-memory: .1.3.6.1.2.1.25.2.3.1.5.65536 cpu-frequency: .1.3.6.1.4.1.14988.1.1.3.14.0