В данной заметке хочу с вами поделится простым рецептом передачи логов Mikrotik на удаленный сервер по протоколу syslog.
Что даст нам возможность хранить логи с нашего маршрутизатора, анализировать их и т.п.
Тем самым мы сможем оставить в логе самого Mikotik только критически значимые для нас данные, которые нам помогут быстрее разобраться с какой-либо проблемой на устройстве.
Удаленный сервер с syslog в рамках этой заметки будет использоваться FreeBSD, но если вы используете linux отличия будут небольшие в конфигурации syslog.conf или rsyslog.conf
Syslog (англ. system log — системный журнал) — стандарт отправки и регистрации сообщений о происходящих в системе событиях (то есть создания событийных журналов), использующийся в компьютерных сетях, работающих по протоколу IP. Термином «syslog» называют как ныне стандартизированный сетевой протокол syslog, так и программное обеспечение (приложение, библиотеку), которое занимается отправкой и получением системных сообщений.
Небольшая предыстория.
Организовал на маршрутизаторе Mikrotik RB3011UiAS контроллер CAPsMAN и после этого лог в Winbox стал представлять такое:
99,9% в логах стали записи о регистрации пользователей на wi-fi точках.
Можно конечно подавить логи CAPsMAN, но если будут проблемы с ним, то будет сложно их решать без логов.
В общем решил вывести логи CAPsMAN на удаленную машину, по данному примеру вы сможете дальше вывести остальные нужные вам логи.
Как выше упоминал удаленный сервер с операционной системой FreeBSD.
Перед тем как начать, убедитесь, что трафик UDP на 514 порт беспрепятственно ходит с Mikrotitik в сторону нашего сервера.
- IP адрес Mikrotik 192.168.6.2
- IP адрес сервера 192.168.6.20
Настройку в Mikrotik будем делать в консоли (Winbox или SSH)
Создаем действие (action)
system logging action add bsd-syslog=yes name=CapsRemote remote=192.168.6.20 syslog-facility=local5 target=remote
- Где указываем, что мы используем syslog FreeBSD (bsd-syslog=yes)
- Даем имя CapsRemote
- Указываем адрес удаленного сервера (remote=192.168.6.20)
- Указываем syslog-facility=local5 (Далее будем с помощью этого разбирать лог в syslog.conf)
- Указываем цель как удаленный (target=remote)
Создаем правило (Rule)
system logging add topics=caps action=CapsRemote
- Где указываем, что обрабатывать только сообщения CAPsMAN (topics=caps)
- И применяем ранее созданное действие CapsRemote
Уберем вывод caps в общий лог Mikrotik
Узнаем ID топика info:
system logging print Flags: X - disabled, I - invalid, * - default # TOPICS ACTION 5 info memory 6 warning memory 7 error memory 9 caps CapsRemote
Запрещаем топику caps отправлять данные в info с помощью символа отрицания «!«:
system logging set numbers=5 topics=info,!caps
Сделаем еще раз вывод топиков:
system logging print Flags: X - disabled, I - invalid, * - default # TOPICS ACTION 5 info memory !caps 6 warning memory 7 error memory 9 caps CapsRemote
Видим, что из info исключен caps
Настраиваем syslog на прием логов Mikrotik
В начало конфигурационного файла /etc/syslog.conf вписываем следующие строки:
+192.168.6.2 local5.* /var/log/mikrotik/caps.log +* +@
Где 192.168.6.2 — адрес нашего Mikrotik
Создадим директорию для нашего лога:
mkdir /var/log/mikrotik
Перезапустим syslogd
/etc/rc.d/syslogd restart
Должен создаться лог-файл:
# less /var/log/mikrotik/caps.log Feb 27 11:19:46 <local5.info> 192.168.6.2 18:F0:E4:FF:EC:09@cap15 connected, signal strength -66 Feb 27 11:19:46 <local5.info> 192.168.6.2 18:F0:E4:FF:EC:09@cap13 disconnected, registered to other interface Feb 27 11:20:25 <local5.info> 192.168.6.2 80:82:23:6D:6C:08@cap11 connected, signal strength -55 Feb 27 11:20:25 <local5.info> 192.168.6.2 80:82:23:6D:6C:08@cap7 disconnected, registered to other interface Feb 27 11:20:26 <local5.info> 192.168.6.2 20:47:DA:33:B1:01@cap9 connected, signal strength -62 Feb 27 11:21:28 <local5.info> 192.168.6.2 CC:78:5F:AC:FC:71@cap19 connected, signal strength -58 Feb 27 11:21:28 <local5.info> 192.168.6.2 CC:78:5F:AC:FC:71@cap7 disconnected, registered to other interface Feb 27 11:21:33 <local5.info> 192.168.6.2 80:82:23:6D:6C:08@cap9 connected, signal strength -73 Feb 27 11:21:39 <local5.info> 192.168.6.2 80:82:23:6D:6C:08@cap9 disconnected, received deauth: 4-way handshake timeout (15) Feb 27 11:21:40 <local5.info> 192.168.6.2 80:82:23:6D:6C:08@cap11 reassociating Feb 27 11:21:40 <local5.info> 192.168.6.2 80:82:23:6D:6C:08@cap11 connected, signal strength -76 Feb 27 11:21:44 <local5.info> 192.168.6.2 D4:38:9C:03:24:21@cap17 connected, signal strength -61 Feb 27 11:21:44 <local5.info> 192.168.6.2 D4:38:9C:03:24:21@cap5 disconnected, received deauth: class 3 frame received (7) Feb 27 11:23:02 <local5.info> 192.168.6.2 80:82:23:6D:6C:08@cap5 connected, signal strength -77
В логе на самом Mikrotik данная информация не дублируется, то что нам и нужно.
Настроим ротацию лога
# vi /etc/newsyslog.conf /var/log/mikrotik/caps.log 600 7 * @T00 JC
Будем ежедневно архивировать (bz2 архив) логи, срок хранения 7 дней
Перезапустим newsyslog
# /etc/rc.d/newsyslog restart
Собственно все:)
Если что непонятно — оставляйте комментарии.