В современном администрировании сетей важно не только обеспечивать стабильную работу оборудования, но и своевременно анализировать события, происходящие в системе. Для этого используется централизованный сбор логов, что позволяет удобно хранить, фильтровать и анализировать данные с множества устройств. В этой статье мы рассмотрим, как настроить маршрутизатор Mikrotik для отправки логов на удалённый сервер rsyslog. Такое решение помогает оптимизировать мониторинг сети, быстро выявлять проблемы и поддерживать её безопасность.
В данной заметке, мы будем использовать сервер rsyslog на базе Debian 12. Если у вас еще не настроен сервер с Debian, то можете воспользоваться статьей на сайте Установка Debian 12 в качестве сервера.
Установка rsyslog
Для начала проверим, установлен ли в системе rsyslog:
dpkg -l | grep rsyslog
Если пакет установлен, вы увидите строку с именем rsyslog, если вывода нет, rsyslog не установлен.
Давайте исправим это:
apt update
apt install rsyslog
После установки служба должна автоматически запуститься. Для проверки используйте:
systemctl status rsyslog
Настройка rsyslog
Теперь нам необходимо настроить сервер на прием логов с удаленных источников. Для этого в rsyslog включим возможность слушать udp port 514.
Открываем конфигурацию rsyslog:
nano /etc/rsyslog.conf
и раскомментируем там строки:
module(load="imudp")
input(type="imudp" port="514")
Должно получиться как на картинке ниже:

Далее в этом же файле, в секции Rules добавим наше правило:
$template FILENAME,"/var/log/mikrotik/%fromhost-ip%.log"
if $fromhost-ip != '127.0.0.1' then ?FILENAME
& stop
Должно получиться как на картинке ниже:

При такой конфигурации правила логи от всех удалённых хостов, за исключением локального хоста (127.0.0.1), будут записываться в файлы, расположенные в /var/log/mikrotik/, с именами, зависящими от IP-адреса отправителя. Например, если лог пришёл от устройства с IP 192.168.1.1, файл будет /var/log/mikrotik/192.168.1.1.log. Логи от локального хоста будут игнорироваться и не записываться в этот каталог.
Сохраняем изменения и выходим из nano.
Далее настроим logrotate, для ротации лог файлов, чтобы они нам не забили весь диск.
Для этого создаем конфигурацию для logrotate:
nano /etc/logrotate.d/mikrotik
И добавляем в файл конфигурацию ниже:
/var/log/mikrotik/*.log {
daily
rotate 14
compress
missingok
notifempty
create 640 root adm
postrotate
systemctl restart rsyslog
endscript
}
Немного пояснений по конфигурации ротации лога:
- /var/log/mikrotik/*.log — указывает, что логротейт должен работать с лог-файлами в директории /var/log/mikrotik/, заканчивающимися на .log. То есть, все файлы с расширением .log в этой директории будут обрабатываться.
- daily — задает частоту ротации логов. В данном случае, логи будут ротироваться каждый день.
- rotate 14 — указывает количество старых логов, которые нужно хранить. После того как будет создано 14 архивов (старых файлов логов), старейшие будут удаляться. То есть, сохраняются 14 ежедневных архивов логов.
- compress — означает, что после ротации старые логи будут сжаты с использованием утилиты gzip (по умолчанию). Это позволяет экономить место на диске, так как сжатие логов уменьшает их размер.
- missingok — эта опция сообщает logrotate, что если один из лог-файлов отсутствует, то не следует генерировать ошибку. Это полезно, если файл лога временно недоступен или не существует.
- notifempty — эта опция указывает, что ротация не будет выполнена, если лог-файл пустой. То есть, если лог-файл не содержит данных, его ротация не произойдет.
Далее сохраняем изменения и выходим из nano.
Внимание!
Не забудьте создать указанные директории. В нашем примере /var/log/mikrotik
После этого перезапускаем rsyslog:
systemctl restart rsyslog
Настройка пересылки логов в Mikrotik
Теперь необходимо сделать настройки в Mikrotik. Для этого открываем WinBox и переходим в раздел System — Logging и там выбираем вкладку Actions. На этой вкладке два раза кликаем мышкой на строке remote и указываем IP-адрес нашего сервера с настроенным rsyslog:

Далее открываем вкладку Rules и добавляем необходимое правило хранения логов. В поле Actions выбираем remote:

На этом настройка отправки логов с Mikrotik на удаленный сервер завершена.
Помогла статья? Подписывайся на Telegram канал автора.
Анонсы всех статей, много другой полезной и интересной информации, которая не попадает на сайт.
Если у вас имеются вопросы, задавайте их в комментариях.