Как писать логи с MikroTik на удалённый сервер.
Роутер MikroTik может собирать логи не только внутри себя, скажем так, но и писать их на удалённый сервер (есть ещё варианты писать и на карту памяти, если есть возможность установить её на роутер). Сделать это совсем не сложно, но видимо есть нюансы и у меня заработало не сразу.
Система на удалённом сервере Debian 9.
Настраиваем конфиг /etc/rsyslog.conf:
# provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception #module(load="imtcp") #input(type="imtcp" port="514")
Я снял комментарии со строк, помеченным красным. Вначале пробовал запустить через TCP, но почему-то не заработало.
Для сбора логов я использовал вот такой шаблон:
if $fromhost-ip contains 'ip-роутера' then /var/log/mikrotik.log
*- эта строчка прописана в конце файла /etc/rsyslog.conf
На одном из сайтов был предложен вот такой шаблон для сбора логов:
$template FILENAME,"/var/log/!remote/%fromhost-ip%/syslog.log"
Но пока возился с запуском, использовал уже тот, что описал чуть выше.
После всех изменений, необходимо выполнить:
/etc/init.d/rsyslog restart
А так же проверить слушается ли 514-й порт:
netstat -lntup | grep :514
У меня вот такой результат:
udp 0 0 0.0.0.0:514 0.0.0.0:* 8388/rsyslogd
udp6 0 0 :::514 :::* 8388/rsyslogd
Далее надо настроить сам микротик, что тоже просто и быстро. System->logging, вкладка Actions.
10.10.10.16 — это ip машины, где я собираю логи.
Далее на вкладке Reles добавляем аналогичное правило:
Topics можно выбирать любой нужный, в зависимости от того, какие логи надо собирать. Если надо собирать не только логи типа info, то можно создать сколько нужно правил и там указать уже тип логов другого типа, например error.
После всех этих манипуляций логи должны писаться в файл /var/log/mikrotik.log (ну или в тот файл, куда было настроено).
Использованный материал:
1.https://serveradmin.ru/mikrotik-logirovanie-na-udalennyiy-server-rsyslog/
2.https://it.oneweb.pro/%D0%B1%D0%BB%D0%BE%D0%B3/zabbix-rsyslog-mikrotik/