Mikrotik: отправляем логи на удаленную машину

В данной заметке хочу с вами поделится простым рецептом передачи логов Mikrotik на удаленный сервер по протоколу syslog.
Что даст нам возможность хранить логи с нашего маршрутизатора, анализировать их и т.п.
Тем самым мы сможем оставить в логе самого Mikotik только критически значимые для нас данные, которые нам помогут быстрее разобраться с какой-либо проблемой на устройстве.
Удаленный сервер с syslog в рамках этой заметки будет использоваться FreeBSD, но если вы используете linux отличия будут небольшие в конфигурации syslog.conf или rsyslog.conf 

Syslog (англ. system log — системный журнал) — стандарт отправки и регистрации сообщений о происходящих в системе событиях (то есть создания событийных журналов), использующийся в компьютерных сетях, работающих по протоколу IP. Термином «syslog» называют как ныне стандартизированный сетевой протокол syslog, так и программное обеспечение (приложение, библиотеку), которое занимается отправкой и получением системных сообщений.wikipedia.org

Небольшая предыстория.
Организовал на маршрутизаторе Mikrotik RB3011UiAS контроллер CAPsMAN и после этого лог в Winbox стал представлять такое:
Mikrotik: отправляем логи на удаленную машину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

Собственно все:)
Если что непонятно — оставляйте комментарии.

Рейтинг
( 2 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания применять.

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.