MKTXP-Stack: мониторинг Mikrotik с Prometheus и Grafana
◽️ Prometheus для хранения метрик
◽️ Grafana для визуализации
◽️ MKTXP - exporter для сбора метрик с Микротиков по API
◽️ Loki для хранения логов
◽️ Promtail и Syslog-NG для сбора логов
Всё это упаковано в docker compose и запускается за 5 минут. Всё, что нужно - заполнить конфигурационный файл с доступом к микротикам. Весь стек полностью настроен. Я его запустил и попробовал. Экспортер и визуализация к нему очень понравились. Сбор логов не особо, потому что, во-первых, используется Promtail, а он не очень хорошо парсит syslog от микротов. Какие там есть проблемы, писал в отдельной заметке про Alloy. У него такие же проблемы, как у Promtail. Для этой задачи лучше подходит Vector. Во-вторых, у меня в контейнере с Promtail периодически вылезали ошибки, и он переставал собирать логи. Помогал перезапуск. С ошибками разбираться не стал, Promtail всё равно уже deprecated, его надо менять.
А вот сам экспортер и дашборд к нему очень хороши. Если у вас уже есть свой стэк Prometheus + Grafana, можете взять отдельно экспортер и дашборд. В репозитории есть инструкция, там всё просто для тех, кто работает с Prometheus и знает его. Для тех, кто не знает, покажу, как всё это дело запустить и наслаждаться мониторингом микротиков без погружения в тему prometheus и grafana.
Берём любую машину с установленным Docker. Клонируем себе репозиторий и переходим в него:
# git clone https://github.com/akpw/mktxp-stack.git
# cd mktxp-stack
Открываем файл конфигурации mktxp.conf в директории mktxp и добавляем свои устройства в файл:
[hAPax3-01]
hostname = 192.168.137.1
[hAPax3-02]
hostname = 192.168.137.2
[hAPax3-03]
hostname = 192.168.137.3
И так далее. На всех устройствах добавляем отдельного пользователя для доступа mktxp. Ему достаточно прав read и api. Можете сделать через winbox или в консоли:
/user group add name=mktxp_group policy=api,read
/user add name=mktxp_user group=mktxp_group password=mktxp_user_password
Используем эту учётку в mktxp.conf
[default]
.................
username = mktxp_user
password = mktxp_user_password
...................
Остальные параметры включайте на своё усмотрение. Там по названию понятен смысл, плюс, есть комментарии. Если на устройствах будут разные учётки, то пропишите их в разделе с устройством.
Больше ничего делать не надо. Можно запускать весь стек. Для этого переходим в директорию mktxp-stack и запускаем:
# docker compose -f ./docker-compose-mktxp-stack.yml up -d
Переходим в веб интерфейс по IP адресу сервера на порт 3000, например http://192.168.137.29:3000. Попадёте сразу в веб интерфейс Grafana. Там уже всё настроено, аутентификация отключена. Вы сразу же увидите метрики со своих настроенных устройств. По крайней мере у меня сразу всё заработало. Ничего больше не делал.
Дашборд продуман и информативен. Я себе оставлю его. Не скажу, что сильно надо. Самому лень было настраивать. Но готовый можно взять. Там те же лизы от DHCP можно смотреть. Я иногда захожу через winbox поискать потерявшиеся хосты. Ну и просто статистику, загрузку интерфейсов, открытые соединения и топ хостов по ним посмотреть. На дашборде всё это нагляднее, чем в Winbox.
Как я уже сказал, аутентификация в Grafana отключена, по умолчанию почему-то установлена светлая тема. Мне привычнее тёмная. Поменять настройки grafana можно в основном compose файле - docker-compose-mktxp-stack.yml. Я вернул чёрный цвет:
GF_USERS_DEFAULT_THEME: "dark"
Хорошее, добротное решение. Мне понравилось. Ниже много интересных картинок.
#mikrotik #prometheus