Графики в микротик
В этой статье настраиваем мониторинг уровня LTE-сигнала для роутеров MikroTik RBM33. Страница показывает RSSI, RSRP, RSRQ, оператора, полосу и uptime сессии. Обновляется каждые 10 секунд.
Есть два варианта вёрстки — карточки (каждый роутер отдельная карточка) и таблица (все роутеры в одной строчке). Каждый вариант в тёмной и светлой теме.
Как это работает
Страница работает через nginx-прокси. nginx принимает запросы от браузера и пересылает их к REST API MikroTik, добавляя авторизацию автоматически.
Браузер → nginx :8080 → /rest/0/ → http://10.92.1.1/rest/ (RBM33 #1)
→ /rest/1/ → http://10.92.1.2/rest/ (RBM33 #2)
Шаг 1 — создать пользователя на MikroTik
На каждом роутере выполнить команду в терминале:
/user add name=monitor password=monitor123 group=read
Это создаёт пользователя monitor с паролем monitor123 — только для чтения, изменить настройки он не сможет.
nginx передаёт логин и пароль роутеру в каждом запросе. По стандарту HTTP они передаются в формате Base64. Чтобы закодировать monitor:monitor123:
echo -n "monitor:monitor123" | base64 # Результат: bW9uaXRvcjptb25pdG9yMTIz
Эта строка вставляется в конфиг nginx в заголовок Authorization. Если изменишь логин или пароль — пересчитай и замени строку в конфиге.
Шаг 2 — настроить nginx
Скачать конфиг и разместить по пути /etc/nginx/nginx.conf.
Открыть файл и заменить 10.92.1.1 на реальный IP своего роутера. Для каждого следующего роутера скопировать блок location /rest/0/, увеличить число на 1 (/rest/1/, /rest/2/ ...) и указать нужный IP.
Шаг 3 — скачать HTML-страницу
Выбери вариант который нравится. Скачай zip-архив, распакуй и положи HTML-файл в папку html/ рядом с nginx. По второй ссылке можно посмотреть как страница выглядит прямо в браузере.
Вариант 1 — Карточки
⬇ Тёмная тема — скачать |
👁 Посмотреть
⬇ Светлая тема — скачать |
👁 Посмотреть
Вариант 2 — Таблица
⬇ Тёмная тема — скачать |
👁 Посмотреть
⬇ Светлая тема — скачать |
👁 Посмотреть
Как добавить роутеры
Открой скачанный HTML-файл в любом текстовом редакторе и найди массив ROUTERS в начале скрипта. Добавь по одной строке на каждый роутер:
const ROUTERS = [
{ name: "RBM33 #1", interfaces: ["lte1"] }, // 0 → /rest/0/ в nginx --ЭТО ДЛЯ МИКРОТИКОВ С 1 SIM-картой
{ name: "RBM33 #2", interfaces: ["lte1"] }, // 1 → /rest/1/ в nginx
];
Порядковый номер строки в массиве (0, 1, 2 ...) должен совпадать с числом в nginx (/rest/0/, /rest/1/ ...).
Если в роутере две SIM-карты — укажи оба интерфейса:
{ name: "RBM33 #1", interfaces: ["lte1", "lte2"] }
Страница покажет две карточки или две строки — по одной на каждую симку.
Шаг 4 — запуск
nginx -s reload
Открыть в браузере: http://<адрес_сервера>:8080