Анализ логов Mikrotik в Loki и VictoriaLogs в домашних условиях

от автора

Со времен поднятия mktxp из взятой там же инструкции поднял на своем домашнем сервере и Loki, и, так как по инструкции оттуда не получилось настроить что бы микротик отсылал логи прям в Loki, еще Promtail. Добавил их деплой через docker compose в свои ансибл плейбуки для домашнего сервера, добавил дефолтную дашборду в графану, потом еще в плейбуки добавил ротацию, потому что в день микротик накидывал 2,5 миллиона строк в 500MB логов и забыл. А дня 3 назад перевел мониторинг на Prometheus на том же сервере на VictoriaMetrics, офигел от того что моя 100 дневная база Prometheus размеров в 47G превратилась в 16G, увидел что есть VictoriaLogs и решил заoдно посмотреть в нее, а так же поиграться c Loki и Promtail, мне там очень не нравилось что логи хранятся и в тексте и в Loki. Итак…

Микротик

Микротик — отличный C53UiG+5HPaxD2HPaxD он же hAP ax³ с wifi6 и на приятном железе, с вот таким конфигом

Скрытый текст
[admin@MikroTik-domru] /system/logging> export # 2025-02-06 10:45:04 by RouterOS 7.17.1 # software id = WVAU-U7QD # # model = C53UiG+5HPaxD2HPaxD # serial number = xxxxxxxxxxxxx /system logging action set 3 remote=x.x.x.x remote-port=5514 src-address=x.x.x.y syslog-facility=local0 /system logging set 0 action=remote prefix=:Info topics=info,!firewall set 1 action=remote disabled=yes prefix=:Error set 2 action=remote prefix=:Warning topics=warning,!firewall set 3 action=remote prefix=:Critical add action=remote disabled=yes prefix=mikrotik-critical topics=critical add action=remote disabled=yes prefix=mikrotik topics=!debug,!packet,!dns add action=remote prefix=:Firewall topics=firewall add action=remote prefix=:Account topics=account add action=remote prefix=:Caps topics=caps add action=remote prefix=:Wireles topics=wireless

Который не особо грузит CPU hAP ax³, а вот hAP ac нагружало сильно больше

Загрузка hAP ax³

Загрузка hAP ax³

В результате ковыряний и игр получилось создать две дашборды которые в реальном времени показывают новые соединения на роутере.

Loki

Дашборда которая показывает в реальном времени кто ломится на мой домашний Raspberry Pi 5, которая стоит в отдельной DMZ сети и на которой крутится git в виде Gogs, Nextcloud и Caddy.

В целом связка не очень понравилась

  1. Не удалось избавится от не очень красивого вида легенды в графике

  2. Оказалось что Promtail не умеет geoip для нескольких адресов в одной строке лога, то есть в него можно запулить или src или dst, идея сделать такой же график для dst потерпела крах. Возможно это можно сделать через отдельный pipeline в Promtail, не пошел в ту сторону, может получится у вас

  3. Promtail так и не удалось подружить с логами микротика напрямую, пришлось это делать через, да, вы правильно подумали, ж, rsyslog. rsyslog так же позволил пихать логи и в Loki и в VictoriaLogs что бы играться со всем одновременно.

  4. Promtail ругается постоянно ‘Maximum active stream limit exceeded when trying to create stream’ и надо как-то тюнить, без labeldrop в конфиге Loki начал быстро жаловаться что в него нельзя больше 15 меток, и начал слать редиректы в Promtail. Наверняка это можно подтюнить, но разбираться лень.

  5. Не удалось пихнуть это в карту в графане, там вообще как-то странно, у записи явно есть поля, но кажется что от raw строки избавится не получается, карты говорят что они не видят цифровых полей, и даже фильтр json выдает странное и побороть это нельзя

Json Parser Error

Json Parser Error

Дабы не перегружать статью конфигами сервисов сложил все конфиги в github

VictoriaLogs

  1. Конфигов нет и они особо не нужны, для запуска хватило указания 6 опций.

  2. Работает и не на что не ругается без всякого тюнинга.

  3. График коннектов IP не очень получился, и метки не очень красивые, и как сделать сортировку тоже пока не понял.

  4. GeoIP не умеет, надо как-то дополнительно прикручивать.

  5. Язык запросов как-то проще сделан чем у Loki.

  6. Есть прям свой UI, можно пользовать без графаны и консоли.

  7. Может без проблем принимать в себя логи Микротика без всяких пересыланий через rsyslog или чтения файлов.

  8. ChatGPT спрашивать про запросы в VictoriaLogs вообще бесполезно 🙂 оно выдает какие-то SELECT и отказываться использовать LogsQL.

  9. Машину особо не грузит

Конфиги сервисов там же, в github

Все это ставится ansible и крутится на Ubuntu 22.04.5 на таком железе

  1. Мать и проц — J5040-ITX

  2. RAM — 8G

  3. Диски — / на Samsung SSD 870 + 2 WDC WD42PURZ-85B в md raid0

Итого

  1. VictoriaMetric, как минимум, для дома, намного лучше Prometheus

  2. VictoriaLogs понравились больше, нагрузку с Loki пока снял, направив логи напрямую на VictoriaLogs. Думаю Loki и Promtail вообще выпилить.


ссылка на оригинал статьи https://habr.com/ru/articles/880022/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *