Возникло желание собирать логи с роутера Mikrotik. Была нужна информация о подключенных по pptp абонентах и логи firewall для настройки. По-умолчанию, Mikrotik пишет все логи в лог журнал, который можно просмотреть через winbox. Стандартно, там хранятся последние 100 строк лога.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Данная статья является частью единого цикла статьей про Mikrotik.
Настраиваем удаленный сервер rsyslog
У меня в хозяйстве имелся сервер Debian. Решил хранить логи с микротиков именно на нем. В составе Debian уже имеется сервис сбора логов с удаленных источников rsyslog. Необходимо только включить в нем необходимый функционал. Правим файл /etc/rsyslog.conf:
Раскомментируем строки
# provides UDP syslog reception $ModLoad imudp $UDPServerRun 514
чтобы получать логи по UDP, либо
# provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
чтобы получать логи по TCP
И в секцию RULES добавим несколько строк для удобного хранения файлов логов от разных удаленных источников:
# Зададим шаблон создания имен файлов (на основании IP адреса клиента) $template FILENAME,"/var/log/!remote/%fromhost-ip%/syslog.log"
# Укажем сохранять сообщения от любого источника (*) с любым приоритетом (*) в файл, заданный шаблоном # Например, клиенты (10.0.0.2,10.0.0.3...) будут раскладываться в соответствующие каталоги /var/log/10.0.0.2/syslog.log *.* ?FILENAME
Перезапускаем rsyslog для применения настроек:
/etc/init.d/rsyslog restart
Теперь наш сервер готов принимать логи с удаленных источников. Хранить он их будет в папке /var/log/!remote Для каждого источника будет создана папка с именем IP адреса этого источника.
Настраиваем пересылку логов в Mikrotik
Теперь настраиваем в роутере хранение логов на удаленном сервере. Для этого заходим в раздел System -> Logging, выбираем закладку Actions, два раза щелкаем по строчке remote. Открывается окно настроек. В нем вводим адрес удаленного сервера сбора логов. Порт на свое усмотрение либо оставляем по-умолчанию, либо меняем на свой. Больше ничего добавлять не надо.
Дальше в разделе Rules создаем необходимое правило хранения:
Все готово. Теперь все наши логи будут храниться на удаленном сервере. Необходимо не забыть настроить ротацию логов, дабы в один прекрасный день они не заняли все свободное место.
Если вы используете ELK Stack для централизованного сбора логов, то у меня есть статья по отправке логов mikrotik в elk stack.
Напоминаю, что данная статья является частью единого цикла статьей про Mikrotik.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.Рекомендую полезные материалы по схожей тематике:
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
- Инструкция о том, как быстро выполнить настройку mikrotik.
- Использование протокола Layer7 для блокировки сайтов средствами Микротик.
- Настройка простых правил фаервола для защиты локальной сети.
- Создание единой wifi сети из множества точек доступа mikrotik с помощью capsman.
- 2 провайдера и 2 wan интерфейса для создания отказоустойчивой связи с интернет.
Цитата:
"# Укажем сохранять сообщения от любого источника (*) с любым приоритетом (*) в файл, заданный шаблоном
# Например, клиенты (10.0.0.2,10.0.0.3...) будут раскладываться в соответствующие каталоги /var/log/10.0.0.2/syslog.log
*.* ?FILENAME"
Приветствую. Значит, настроил логирование с микротика на серверок по вашей статье. Вроде работает. Но несть несколько "НО"
К примеру, после включения вышепроцитированной опции на сервере начало "срать" везде, где только можно: например, появился "дубль" syslog по пути "/var/log/!remote/127.0.0.1/syslog.log" - а он там и нафиг не нужен был, тем более дубль "/var/log/syslog".
Далее, записи от микрота дублируются в том же "/var/log/syslog", а это тоже, мягко говоря, лишнее. По вашей статье я, к сожалению, не могу разобраться, что там и где "позакрывать", чтобы подавить лишнее "логирование".
Я так понимаю в конфиге "rsyslog.conf" надо чего-то где-то попрописывать, чтобы отключить или подавить ненужное?
У меня есть более свежая статья по этой теме. Лучше посмотреть решение там:
https://serveradmin.ru/monitoring-mikrotik-v-zabbix/
Благодарю. По новой статейке настроил. Хотя ликбеза по синтаксису rsyslog.conf и logrotate*.* мне это не отменяет. Далеко не все там "интуитивно" понятно - с переменными, с их созданием, с их использованием в разных местах конфига, отличия в использовании системных переменных от пользовательских и пр., и пр...
В догонку скрипт, с помощью которого можно организовать удалённое логирование событий при падении аплинка. Когда скрипт замечает что аплинк упал, он начинает писать логи событий в файл, а когда аплинк поднимется отправляет их в лог, в том числе и удаленно, если удалённое логирование настроено. Для работы скрипта в имени интерфейса, который является аплинком должно быть слово uplink. Например так: ether3 uplink
А какой в этом смысл, если эти же аплинки можно мониторить по snmp? У меня есть статья.
Мониторить по snmp можно, но опрашивать девайс, допустим каждую секунду - не комильфо. А если интерфейс флапает. Этот скрипт проверяет состояние интерфейса раз в 300 миллисекунд. Изначально цель была именно мониторить кратковременные падения-подъёмы интерфейсов.
Хороший способ мониторить флапы интерфейса - это трапы на вышестоящем девайсе.
Скрипт, кстати, вставился криво. Там как минимум две строки кривые. Если интересно, могу, допустим на почту, прислать нормальный текст скрипта.
Если есть задача в таких частых проверках, то наверно имеет право на жизнь. Но как себя само устройство чувствует с такими частыми проверками, особенно если интерфейсов много?
Движок сайта не позволяет нормально вставлять код. Я поправил руками.
Тестил скрипт на 5-ти портовом Микротике. Загрузка проца менее 1%.
Кривость строк в скрипте сохранилась. Это ссылка на нормальный текст скрипта.
https://github.com/kuzma73/repo1/blob/master/uplinkMonitorServerAdmin.txt
Здравствуйте, можете дать ссылку на эту статью?
Добрый день.
настроил пересылку логов на киви syslog server. теперь вопрос как просматривать в удобоваримом формате. возможно реализовать подсчет трафика, а также кто куда ходил и сколько скачал с помощью логов микротика ?
Эти вопросы должны решаться не хранилищем логов. Нужен какой-то софт, который все это будет обрабатывать, складывать в базу данных и формировать отчеты. Мне такие инструменты, тем более бесплатные, не известны.
Добрый день.
Спасибо за статью. Вопрос:
Как быть с падением аплинка на микротике. Пока аплинк лежит, логи на удалённый сервер естественно не приходят. Но нет ли возможности получить все пропущенные события, когда аплинк поднимется?
Не знаю, не прорабатывал этот момент. Возможно как-то через скрипт это можно реализовать. Логи же он все равно локально пишет. Но задача на первый взгляд не простая.
Добрый день.
Настроил сбор логов в сети 192.168.65.0/24 все прекрасно работает. Так же имеется микротик в сети другого офиса 192.168.70.0/24, впн туннел настроен, пинги идут. Но логи не отправляются на сервер rsyslog 192.168.65.93. Не подскажете в чем может быть причина?
В чем угодно :) Так разве скажешь. Настройки firewall в первую очередь проверяйте. Дальше в rsyslog смотрите, нет ли там ограничение на прием по ip адресам.
В фаерволе разрешающие входящие правила для порта и ip были добавлены, получилось только после того, как добавил правильно в NAT (chain dstnat, dst.port 514, action=netmap 192.168.65.93 to ports 514). Я думал, что и без него микротик должен отправлять пакеты.
Можно ли копить статистику на самом роутере и выкачивать её на внешний ресур только по необходимости, раз в неделю например? Или просматривать логи прямо на роутере?
Добрый день!
Подскажите поднял на CentOS Syslog в настройках указал только две строки:
$template FILENAME,"/var/log/!remote/%fromhost-ip%/syslog.log"
*.* ?FILENAME
В Mikrotik указал какие логи слать на удаленный сервер и тишина ничего не падает...514 порт на CentOs открыт не подскажите куда копать?
Вопрос снят )
Я рекомендую почитать вот эту статью https://serveradmin.ru/nastroyka-syslog-ng-dlya-tsentralizovannogo-sbora-logov/ про сервер сбора логов. Там более правильно все организовано. Настройка микротик будет такая же, как в этой статье, а сам сервер делать по другой.
Что это за херня в /etc/rsyslog.conf как настроен то вообще? Скиньте полный конфиг данного примера