Викибаза знаний

Викибаза знаний Хостинг

О, кстати, еще есть нюанс – Микротик не умеет из коробки отправлять интересные строки логов на почту1)!

По умолчанию, логи MikroTik передаются в LibreNMS не совсем корректно:

Поэтому я решил заморочиться и научить syslog-ng правильно разбирать эти сообщения.

Хранить все ЛОГИ в одном месте иногда очень удобно, и вдобавок при перезагрузке микротика логи пропадают. Логи будем передавать на сервер с установленной операционной системой Linux.

1. Проверяем, установлен ли у нас Rsyslog. Способов как это сделать — очень много, но мы выбираем самый простой — проверить наличие конфигурационного.

Должно ответить что то вроде

Если не выдало этого — устанавливаем rsyslog

apt-get install rsyslog  (справедливо для тех ОС, где используется APT)

После установки переходим в конфигурационный файл

2. Настроим прием удаленных логов на наш сервер.
Раскомментируем строчки:

module(load=»imudp»)  — модуль для приема логов по udp.
input(type=»imudp» port=»514″) –udp порт который будет слушать наш rsyslog.

В принципе этого достаточно для приема удаленных логов, то тогда все устройства будут писать логи в один файл, и с ним будет очень сложно работать. Для этого в rsyslog создадим правило фильтрации по IP адресам. То есть каждое устройство будет писать логи в свой отдельный файл. Для этого добавим в конец конфига rsyslog следующую строку:

if $fromhost-ip contains ‘192.168.5.3’ then /var/log/mikrotik-office1.log

Здесь говориться если у хоста ip 192.168.5.3 то его логи записываем в файл /var/log/mikrotik-office1.log. Теперь нам осталось перезагрузить rsyslog

3. Настройка Mikrotik для отправки логов на syslog сервер

/system logging
/add action=remote topics=info
/add action=remote topics=error

Выгружаем конфиг system logging action находим нужный нам пункт это «remote» и указываем ip куда нам записывать логи

/system logging action set 3 remote = 192.168.5.1 src-address = 192.168.5.3

Все на этом настройка и отправка логов с микротика на сервер rsyslog завершена, можем проверить создался и наполняется ли файл данными, если нет, то просто создаем файл и еще раз проверяем.

Посмотреть можно командой:

или вывод «хвоста файла»
tail -f  /var/log/mikrotik-office1.log

Логи от разных устройств в локальной сети собираются в одном месте, на сервере логов, чтоб их было удобно анализировать. Одно из таких устройств – роутер микротик. Выполним настройку отправки логов на сервер и проверим результат.

Настройка выполняется на роутере RB750Gr3 c прошивкой v6.49 через WinBox.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Читайте также:  Полезные статьи. Как перенести домены в зонах .RU и .РФ к регистратору Beget. LTD Beget.

Настройка отправки логов.

Выбираем строчку: remote


Викибаза знаний

Remote Address: 192.168.5.15 — адрес сервера логов в локальной сети.

Удаленный порт 514 не изменяем, потому что, как правило, syslog протокол передается по этому порту в большинстве серверов логов.

ОК для сохранения настройки.

Через командную строку терминала:

Правило отправки логов.

Создаем новое правило нажав +


Викибаза знаний

Topics: !debug – все темы кроме debug (! – означает отрицание).

Action: remote — настроенное ранее действие отправки логов на удаленный сервер.

debug не выбран потому что он создает много мешающих логов калькуляций. Можно исключить другие не используемые логи. Можно выбрать конкретные логи, которые хотим просматривать.

Если выбрать в одном правиле три темы, то лог будет отправлен только при выполнении всех трех событий одновременно.


Викибаза знаний

Чтоб отправлялись логи с содержанием  хотя бы одной темы, для каждой темы нужно создавать отдельное правило.


Викибаза знаний

Чтоб не летело множество debug логов из какой-нибудь конкретной темы, например PPP хотим мониторить, нужно исключить debug из этой темы.


Викибаза знаний

Проверка приема логов.

Для проверки необходим сервер логов, подключенный в локальную сеть. Одно из быстрых и бесплатных решений для Windows – Syslog Watcher.

Недостаток бесплатной версии Syslog Watcher – можно добавить только 3 источника логов.

Запускаем программу от имени администратора.

Далее переходим в настройки.


Викибаза знаний

Создаем сетевой интерфейс UDP.


Викибаза знаний

Это все, что нужно для работы. Дополнительно можно указать другое место хранения логов. Подробная инструкция есть на сайте этого ПО.

Нажимаем кнопку «Start Server».

Выполняем любые действия в роутере, создающие логи или ждем пару минут, если роутер работает в локальной сети.

Далее смотрим, что прилетело в сервер логов.

Нажимаем кнопку «View» и выбираем время.

В списке источников на вкладке «Originators» микротик уже появился автоматически. Можно добавлять источники в ручную.


Викибаза знаний

Видим логи из роутера.


Викибаза знаний

В разных ЛВС используются разные серверы логов и данный вариант был представлен только для демонстрации отправки логов с роутера MikroTik.

Ротация логов

Для контроля над занимаемым логами местом и размером самих логов, используется утилита «logrotate», которая читает дополнительные конфигурации из папки «/etc/logrotate.d», куда и нужно добавить новую конфигурацию, открыв пустой файл sudo nano /etc/logrotate.d/syslog-ng-mk и введя в него следующее:

varlogmikrotikremote.log

rotate
10M
missingok
notifempty
delaycompress
compress
nocreate
postrotate
invoke-rc.d syslog-ng reload devnull
endscript

Читайте также:  «Авито» превращается в «убийцу» Ozon и «Яндекс.маркета» - CNews

Это будет обозначать, что:

Далее нужно только проверить конфиг sudo logrotate /etc/logrotate.conf —debug и все.

Дисклеймер

Последнее изменение: 2023/08/03 10:33 —

Настройка MikroTik

Тут все до жути банально – добавляем действие, причем, я предпочитаю использовать разные категории – к примеру, «local6» для роутеров, а «local7» для антенн.

Ну, и нужные правила – опять же, больше логов перешлем, чище будет жопа совесть.

/system logging action
add bsd-syslog=yes name=Syslog remote=192.168.0.245 syslog-facility=local6 target=remote
 
/system logging
add action=Syslog prefix=mk_log topics=info
add action=Syslog prefix=mk_log topics=critical
add action=Syslog prefix=mk_log topics=error
add action=Syslog prefix=mk_log topics=warning

Использование протокола BSD-syslog, на этом безрыбье2), обязательно, иначе не будет правильно передаваться важность события. Префикс тоже будет использоваться в дальнейшем и он должен быть у всех устройств одинаковый.

Связанные статьи

При отсутствии желания, или при отсутствии LibreNMS, или в каком еще случае, логи MikroTik можно собирать и просматривать гораздо проще, используя только syslog-ng и LogAnalyzer:

Ну, а для гурманов, вэлком ниже!

Сервер syslog-ng

Тут ничего нового:

При этом, rsyslog удалится автоматически! NG его полностью замещает.

Базовые настройки хранятся в файле «/etc/syslog-ng/syslog-ng.conf», а дополнительные принято складывать в папку «/etc/syslog-ng/conf.d/», поэтому нужно создать новый файл sudo nano /etc/syslog-ng/conf.d/mikrotik.conf и добавить в него конфиг3):

options
create-dirs ;
dir-group adm ;
dir-perm 0755 ;
group adm ;
perm 0644 ;
use-dns ;
use-fqdn ;
dns-cache ;
;
 

s_my_udp
network
transport udp
flags no-hostname
;
;
 

filter f_my_mikrotik
message ;
;
filter f_my_mail
message
or message ;
;
 

rewrite r_my_mikrotik
subst , , value ;
subst , , value ;
subst , , value ;
;
 

template t_my_mikrotik
template ;
;
 

destination d_my_mikrotik

template t_my_mikrotik
;
;
destination d_my_mail
smtp
host port
from
to
subject
body
;
;
 

log
s_my_udp ;
filter f_my_mikrotik ;
rewrite r_my_mikrotik ;
destination d_my_mikrotik ;
log
filter f_my_mail ;
destination d_my_mail ;
;
;

После сохранения файла, конфигурацию необходимо проверить sudo syslog-ng —syntax-only4) и перечитать sudo syslog-ng-ctl reload. Для рестарта демона можно использовать sudo systemctl restart syslog-ng.

#Global

Переписываем некоторые глобальные настройки5):

#Sources

Список фильтров. Первым мы отбираем из потока сообщения от определенных устройств. А вторым отбираем, что нужно отправлять по почте.

#Rewrites

Правила перезаписи. Сперва мы удаляем уже не нужную метку, а далее для удобства заменяем MAC-адреса читаемыми названиями. Последнее, кстати, мега удобно при просмотре логов!

#Templates

Шаблоны. Такой шаблон необходим, чтобы логи MikroTik правильно и, что главное, красиво отображались LogAnalyzer’ом в формате IETF-syslog.

#Destinations

Тут есть один нюанс – чтобы использовать русский текст в теме письма9), его необходимо закодировать в BASE6410), к примеру, используя этот сайт, и разместить внутри такой конструкции =?UTF-8?B?_________?=.

Читайте также:  Разработка и продвижение сайтов

#Log paths

Ну и напоследок собираем путь – тут он один, но с вложением – сперва сохраняем в файл, а потом отправляем по почте.

Используемые версии


Викибаза знаний

Последнее изменение: 2023/03/22 10:54 —

Конфигурация syslog-ng

Для начала, нужно открыть пустой файл конфигурации

sudo nano /etc/syslog-ng/conf.d/librenms.conf

и добавить следующую конфигурацию3), сохранить и закрыть

options
createdirs yes

 

source s_my_udp
network
transport udp
flags noparse

 

filter f_my_mikrotik
message
match
type pcre
flags storematches
value

 

rewrite r_my_mikrotik
set , value condition match , value
set , value condition match , value
set , value condition match , value
set , value condition match , value
setseverity
set , value
set , value

 

t_my_librenms

templateescape yes

 

destination d_my_librenms
program
t_my_librenms

# file( «/var/log/syslog-ng/debug.log»
# template( t_my_librenms )

destination d_my_general
file

 

source s_my_udp
junction
channel
filter f_my_mikrotik
rewrite
setfacility

rewrite r_my_mikrotik
destination d_my_librenms
flags

channel
parser
syslogparser

destination d_my_general
flags

 
# With love from Vladivostok.

В конце нужно перечитать конфигурацию

Если появились какие-то ошибки, то тут описаны методы их обнаружения.

В этом блоке, в принципе, и так все понятно.

В блоке источников он только один на порту 514/UDP и поднят флаг «no-parse», запрещающий автоматический анализ поступающих сообщений.

#Filters

Собственно, самое сердце этой затеи. Здесь мы ищем переданный MikroTik’ом, в виде топика, уровень («Level», «Severity») – «Info», «Warning», «Error» или «Critical» – и, заменяя его на цифровое значение, сохраняем во временной переменной «t_severity», а потом уже переносим в системный макрос, используя функцию «set-severity()».

Шаблон стандартный, рекомендованный авторами LibreNMS.

#Destanations

Направлений два – одно, для тех сообщений, которые содержат метку «mk_log», через специальный скрипт в LibreNMS, а второе, для всех остальных сообщений, в файл.

Ну, и на последок, собираем все вышеописанное вместе.

Тут два канала в «junction»5). По одному каналу, обрабатываются сообщения от MikroTik’а, а по второму – все остальные.

В первом канале:

Во втором канале:

Вообще, «junction» в данном контексте использовать бессмысленно, т.к. не используется его функционал, позволяющий временно разделить поток сообщений, по разному их обработать и свести опять в один. Можно было ограничиться просто двумя «channel» – кажется, так то же бы работало. Но сделал так, на будущее.

Просмотр логов

Смотреть журналы удобно локально утилитой «lnav»12) или через web с помощью LogAnalyzer.

Все остальное вопросов вызывать не должно.

/system logging action
add name=Syslog remote=192.168.0.5 target=remote
/system logging
add action=Syslog prefix=mk_log topics=info
add action=Syslog prefix=mk_log topics=critical
add action=Syslog prefix=mk_log topics=error
add action=Syslog prefix=mk_log topics=warning

Оцените статью
Хостинги