NodeRed, Mikrotik, SNMP.

Автор: | 2021-02-08

Стоит в углу Mikrotik RB952Ui-5ac2nD, черный ящик, лампочек не видно, как работает не понятно. Работает система домашней автоматизации ЛеДжо (фр. ленивая джопа) на базе Node-RED (by IBM). А почему бы их не скрестить? – подумалось мне однажды.

И посмотрел я в библиотеку потоков Node-RED, и обнаружил там многообещающие Узлы с ключевым словом Mikrotik, и даже попробовал воспользоваться одним. Да, он работает, но работает он с Mikrotik по порту 8728 методом логина в консоль (разновидность ssh и telnet). Метод конечно работающий, но не нравится мне по нескольким причинам, и еще тем, что забивает логи сообщением о авторизации пользователя nodered на каждый запрос. Не аккуратненько это как то.

Стоп! А ведь Mikrotik худо-бедно поддерживает SNMP! Работает быстро, метрики отдает, процессор не грузит, что еще нужно для наблюдения за работой устройства?

И так, берем Node-RED (установка и настройка не есть предмет этой заметки, поисковик в помощь – есть множество how-to). Добавляем Узлы node-red-dashboard (2.27.0), node-red-node-snmp (0.0.25), node-red-contrib-buffer-parser (3.1.5).

Но внезапно на пути встретились трудности. Оказалось что у Mikrotik нет вменяемого описания MIB OID вообще и для RB952Ui-5ac2nD в частности. Пришлось немного позаниматься обратным инжинерингом.

Первоначальная задача, конечно, отреверсить OID. Часть можно узнать непосредственно у самого устройства подключившись winbox, открыв New Terminal, помогут команды.

[admin@MikroTik] > /system resource print oid
[admin@MikroTik] > /interface print oid
[admin@MikroTik] > /interface wireless print oid  

Но это будет не полный список, Mikrotik может отдавать больше информации. Позже, в процессе по крохам, нагуглю недостающее.

Вторая задача – корректно показать аптайм, несколько неожиданна. Оказалось что Mikrotik считает аптайм в своих внутренних TimeTick равных 10 миллисекундам, по этому простой пересчет unixtimestamp давал удивительный результат.

В результате получился вот такой первый вариант информационной панели:

Информационная панель Mikrotik Node-RED. Вариант №1.
Информационная панель Mikrotik Node-RED. Вариант №1.

Первый вариант обеспечивает только просмотр текущего состояния маршрутизатора в реальном времени и глубина графика 15 минут в прошлое. Историческая информация не сохраняется, управление не осуществляется хотя и возможно.

Конечно, первая версия, набросана по быстрому на коленке и не лишена некоторых косяков.

Файл nodered-snmp-mikrotik-dashboard-v1-flow.json Скачать без регистрации, бесплатно без СМС.