ITLinuxАдминистрирование

Логи MikroTik в Elastic Stack: настройка syslog и проверка доставки

Ниже — рабочая схема отправки логов MikroTik RouterOS на сервер с Elastic Agent. В примере маршрутизатор отправляет syslog на 10.0.0.20:5514 по UDP.

1. Проверяем RouterOS и текущие правила

/system resource print
/system package print
/system logging action print detail
/system logging print detail

2. Проверяем сервер-приёмник

sudo ss -lunp | grep 5514
sudo tcpdump -ni any udp port 5514

Пока порт не слушается, RouterOS настраивать рано.

3. Создаём remote action

В WinBox эта настройка находится в System → Logging. Старые скриншоты ниже показывают исходное состояние и параметры действия remote; названия полей могут немного отличаться между версиями RouterOS.

Раздел System Logging в MikroTik RouterOS
Настройка remote logging action в MikroTik
/system logging action add name=elastic target=remote remote=10.0.0.20 remote-port=5514 remote-log-format=syslog
/system logging action print detail where name=elastic

4. Добавляем нужные темы

После создания remote action укажите, какие topics нужно отправлять на удалённый сервер. В старом примере стандартные правила дублировались с action remote.

Правила отправки логов MikroTik на удалённый syslog
/system logging add action=elastic topics=system,warning
/system logging add action=elastic topics=system,error
/system logging add action=elastic topics=critical
/system logging add action=elastic topics=account
/system logging print detail where action=elastic

Не включайте постоянный debug без необходимости: он быстро забивает хранилище.

5. Генерируем тестовое событие

/log warning "ELASTIC-TEST-MIKROTIK"
/log print where message~"ELASTIC-TEST-MIKROTIK"

6. Проверяем пакет на сервере

sudo tcpdump -A -ni any udp port 5514 | grep ELASTIC-TEST-MIKROTIK

Если пакет не приходит, проверьте маршрут, firewall и правильность remote address.

7. Настраиваем Elastic Agent

  1. Fleet → Integrations → Custom UDP Logs.
  2. Listen address: 0.0.0.0.
  3. Listen port: 5514.
  4. Dataset: mikrotik.log.
  5. Добавьте integration в policy нужного Agent.
sudo elastic-agent status
sudo journalctl -u elastic-agent -n 100 --no-pager
sudo ss -lunp | grep 5514

8. Проверяем событие в Elasticsearch

curl -s -u elastic:password 'https://elastic.example:9200/logs-mikrotik.log-*/_search?q=message:ELASTIC-TEST-MIKROTIK&pretty' --cacert /etc/ssl/certs/elastic-ca.crt

9. Поиск в Kibana

В старом Elastic Stack для логов MikroTik создавался отдельный index pattern, после чего события проверялись через Discover. В современной схеме с data streams логика та же: сначала убедиться, что dataset виден, затем уже строить поиск и dashboard.

Index pattern для логов MikroTik в старой Kibana
Просмотр логов MikroTik в Kibana Discover
data_stream.dataset : "mikrotik.log"
message : "ELASTIC-TEST-MIKROTIK"
host.ip : "10.0.0.1"

10. Диагностика

/system logging action print detail
/system logging print detail
/ping 10.0.0.20
/tool sniffer quick ip-address=10.0.0.20 port=5514

11. Rollback

/system logging remove [find action=elastic]
/system logging action remove [find name=elastic]

Критерий успеха: RouterOS создаёт тестовое событие, пакет виден через tcpdump, Elastic Agent слушает 5514, а событие находится в Kibana по точной строке.

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

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