Анализ логов 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/


Интересные статьи

Интересные статьи

Настройка и интеграция автоматической отправки SMS в ответ на события вроде получения заявки от клиента –– трудоемкая задача, но в этой статье наглядно покажем, как решить ее быстро и просто, и подели...
ГК «Солар», архитектор комплексной кибербезопасности, сообщает о выходе новой версии IdM-системы Solar inRights 3.4, предназначенной для управления правами доступа в организациях. Solar inRights ...
О чем статья: при разработке проектов, и, особенно, распределенных приложений, возникает необходимость использования некоторых частей приложения в качестве отдельных модулей. Например скомпилированные...
Если в вашей компании хотя бы два сотрудника, отвечающих за работу со сделками в Битрикс24, рано или поздно возникает вопрос распределения лидов между ними.
Если вы последние лет десять следите за обновлениями «коробочной версии» Битрикса (не 24), то давно уже заметили, что обновляется только модуль магазина и его окружение. Все остальные модули как ...