Шаблон Zabbix для мониторинга устройств Mikrotik по SNMP
Поскольку стандартные шаблоны, которые мне попадались на просторах интернета мне не подошли, особенно потому что или собирали не те данные, или вообще были не работоспособны, в итоге я сам разобрался и разработал собственный шаблон. Шаблон получился хорошим и работоспособным. Работа тестировалась на следующих моделях: Mikrotik RouterBOARD 750GL, Mikrotik RouterBOARD 750, Mikrotik RouterBOARD 750UP, Mikrotik CRS125-24G-1S-RM, Mikrotik RouterBoard 912UAG-2HPnD
Шаблон для мониторинга устройств Mikrotik работает по SNMP и производит сбор следующих параметров:
- Загрузка процессора устройства
- Модель устройства
- Уровень лицензирования
- Software ID
- Имя устройства
- Температуру устройства (скорее всего снимает данные с датчика на плате)
- Полный объем оперативной памяти
- Использование оперативной памяти
- Время работы устройства (аптайм)
- Напряжение питания устройства
Сводная таблица элементов данных, включенных в шаблон:
Имя | Ключ | Интервал | История | Динамика изменений | Тип | Группы элементов данных |
CPU load | mikrotik.cpu.load | 5 | 7 | 90 | SNMPv2 агент | Health |
Device model | mikrotik.model | 3600 | 7 | SNMPv2 агент | General | |
License Level | mikrotik.license.level | 3600 | 7 | 90 | SNMPv2 агент | License |
Software ID | mikrotik.software.id | 3600 | 7 | SNMPv2 агент | License | |
System name | mikrotik.system.name | 3600 | 7 | SNMPv2 агент | Status | |
Temperature | mikrotik.system.temperature | 10 | 7 | 90 | SNMPv2 агент | Health |
Total memory | mikrotik.system.memory | 3600 | 7 | 90 | SNMPv2 агент | Memory |
Uptime | mikrotik.system.uptime | 60 | 7 | 90 | SNMPv2 агент | Status |
Used memory | mikrotik.used.memory | 30 | 7 | 90 | SNMPv2 агент | Memory |
Voltage | mikrotik.power | 3600 | 7 | 90 | SNMPv2 агент | Health |
Элементы данных сгруппированы по следующим группам
- General
- Health
- License
- Memory
- Status
- Traffic
Триггеры созданные в шаблоне настроены на сработку по следующим событиям:
- Высокая загрузка процессора
- Мало свободной оперативной памяти
- Высокая температура устройства
- Высокое напряжение питания
Сводная таблица триггеров, включенных в шаблон (кроме прототипов триггеров):
Важность | Имя | Выражение |
Высокая | High CPU Utilization | {Template SNMP Mikrotik v. 1.0:mikrotik.cpu.load.avg(120)}>80 |
Высокая | Low free memory | {Template SNMP Mikrotik v. 1.0:mikrotik.used.memory.avg(70)}>52430000 |
Высокая | Temperature Status High | {Template SNMP Mikrotik v. 1.0:mikrotik.system.temperature.avg(60)}>65 |
Высокая | Voltage Status | {Template SNMP Mikrotik v. 1.0:mikrotik.power.avg(60)}>35 |
В данный шаблон включены следующие графики:
- Загрузка процессора
- Здоровье устройства. Включает в себя сводный график по следующим показателям: температура, загрузка процессора, напряжение питания
- Использование памяти
- Температура устройства
- Напряжение питания устройства
Создано одно правило обнаружения, которое определяет сетевые интерфейсы на оборудовании.
В данном правиле обнаружения созданы следующие прототипы элементов данных:
- Ошибки входящего трафика
- Ошибки исходящего трафика
- Статус порта (включен или выключен порт администратором)
- Статус порта (поднят или опущен, т.е. если порт включен но не активен по причине обрыва, отключенного устройства и т.д.)
- Счетчик входящих пакетов на порту
- Счетчик исходящих пакетов на порту
- Входящий трафик на порту
- Исходящий трафик на порту
Сводная таблица прототипов данных в правиле обнаружения interfaces:
Имя | Ключ | Интервал | История | Динамика изменений | Тип | Группы элементов данных |
Errors on port {#SNMPVALUE} (In) | mikrotik.interface.errors.in.[“{#SNMPINDEX}”] | 60 | 7 | 30 | SNMPv2 агент | Health |
Errors on port {#SNMPVALUE} (Out) | mikrotik.interface.errors.out.[“{#SNMPINDEX}”] | 60 | 7 | 30 | SNMPv2 агент | Health |
Link Up/Down status for Port {#SNMPVALUE} | oper-status.[“{#SNMPINDEX}”] | 30 | 7 | 30 | SNMPv2 агент | Status |
On/Off state for Port {#SNMPVALUE} | admin-status.[“{#SNMPINDEX}”] | 3600 | 7 | 30 | SNMPv2 агент | Status |
PORT {#SNMPVALUE} packets IN | mikrotik.interface.peckets.in.[“{#SNMPINDEX}”] | 10 | 7 | 90 | SNMPv2 агент | Traffic |
PORT {#SNMPVALUE} packets OUT | mikrotik.interface.peckets.out.[“{#SNMPINDEX}”] | 10 | 7 | 90 | SNMPv2 агент | Traffic |
Traffic {#SNMPVALUE} (In) | mikrotik.interface.traffic.in.[“{#SNMPINDEX}”] | 10 | 7 | 90 | SNMPv2 агент | Traffic |
Traffic {#SNMPVALUE} (Out) | mikrotik.interface.traffic.out.[“{#SNMPINDEX}”] | 10 | 7 | 90 | SNMPv2 агент | Traffic |
В данном правиле обнаружения созданы следующие прототипы триггеров:
- Лимит ошибок на порту за 10 минут
- Лимит ошибок на порту за час
- Ошибка порта, если порт включен но не скомутирован.
Сводная таблица прототипов триггеров в правиле обнаружения interfaces:
Важность | Имя | Выражение |
Высокая | Errors on port {#SNMPVALUE} (per 10 min) | {Template SNMP Mikrotik v. 1.0:mikrotik.interface.errors.in.[“{#SNMPINDEX}”].sum(600)}>100 | {Template SNMP Mikrotik v. 1.0:mikrotik.interface.errors.out.[“{#SNMPINDEX}”].sum(600)}>100 |
Высокая | Errors on port {#SNMPVALUE} (Per hour) | {Template SNMP Mikrotik v. 1.0:mikrotik.interface.errors.in.[“{#SNMPINDEX}”].sum(3600)}>1000 | {Template SNMP Mikrotik v. 1.0:mikrotik.interface.errors.out.[“{#SNMPINDEX}”].sum(3600)}>1000 |
Высокая | Link status Port {#SNMPVALUE} | {Template SNMP Mikrotik v. 1.0:admin-status.[“{#SNMPINDEX}”].last(0)}=1 & {Template SNMP Mikrotik v. 1.0:oper-status.[“{#SNMPINDEX}”].last(0)}=2 |
В данном правиле обнаружения существуют следующие прототипы графиков:
- График статистики приема/передачи пакетов на порту
- График приема/отправки трафика на порту
- Сводный график для порта: прием/отправка пакетов, прием/отправка трафика, входящие/исходящие ошибки
Внимание. Для того чтобы шаблон заработал, необходимо каждому устройству добавить макрос {$COMMUNITY} в котором указать, SNMP community устройства, которое вы собираетесь мониторить. Это выглядит приблизительно так:

Прописывание макроса для мониторинга узла по SNMP
Скачать шаблон для мониторинга Microtik по SNMP с помощью Zabbix можно с моего репозитория на Github