Андрей Смирнов
Время чтения: ~14 мин.
Просмотров: 207

07.09.2018 — Zabbix + rsyslog – мониторинг логов MikroTik

Мониторинг Mikrotik в Zabbix

Хочу подробно рассмотреть вопрос наблюдения за популярными сетевыми устройствами. Я расскажу, как настроить мониторинг устройств Mikrotik с помощью системы мониторинга Zabbix. За основу будет взят типовой шаблон, плюс мои доработки для мониторинга и оповещений логинов в систему.

Содержание:

  • 1 Цели статьи
  • 2 Введение
  • 3 Мониторинг Mikrotik в Zabbix по snmp
  • 4 Отправка логов Mikrotik в syslog
  • 5 Мониторинг подключений (авторизаций) в Mikrotik
  • 6 Заключение

Цели статьи

  1. Настроить мониторинг базовых метрик сетевых устройств Mikrotik.
  2. Настроить отправку основных логов на удаленный сервер.
  3. Анализировать логи mikrotik и отправлять уведомления в случае подключения к устройству.

Введение

За основу мониторинга Mikrotik я возьму стандартный шаблон Zabbix от разработчиков. Он очень качественно сделан. Забирает информацию по snmp. Итемы и триггеры настраиваются через автообнаружение. Вот основные метрики, которые в нем реализованы:

  1. Состояние процессоров (загрузка, температура).
  2. Статус и характеристика интерфейсов (трафик, активность, ошибки, тип, скорость).
  3. Хранилища (общий объем и используемый).
  4. Использование оперативной памяти.
  5. Проверка доступности пингом.
  6. Версия прошивки, модель, система, серийный номер, расположение, описание устройства.
  7. Время работы (uptime).

Для всех основных метрик есть графики. На все значимые события настроены триггеры:

  • Высокая температура процессора.
  • Изменение серийного номера, прошивки.
  • Сетевая недоступность по icmp.
  • Высокая загрузка памяти или процессора.
  • Окончание свободного места на хранилищах.
  • Уменьшилась скорость на интерфейсе.
  • Высокая утилизация интерфейса.
  • Большое количество ошибок на интерфейсе.
  • Интерфейс отключился.

Шаблон настолько хорош и полон, что я даже не придумал, чего в нем не хватает. По метрикам есть все. Для полного мониторинга Микротика мне не хватало только оповещений о том, что к нему кто-то подключился. Я реализовал это по своему, о чем расскажу далее подробно. В двух словах мониторинг подключений выглядит так:

  1. Mikrotik отправляет логи подключений на удаленный syslog сервер.
  2. На syslog сервере логи анализирует zabbix-agent.
  3. По определенному шаблону агент определяет имя и ip адрес подключившегося к микротику и отправляет эту информацию в уведомлении.

В целом, никаких сложностей в этой настройке нет.

Мониторинг Mikrotik в Zabbix по snmp

Стандартный шаблон собирает все метрики по snmp. Так что нам надо включить его на микротике. Для этого подключаемся к нему по Winbox и идем в раздел IP -> SNMP. Настраиваем работу snmp.

zabbix-mikrotik-04-min.png
Мониторинг Mikrotik в Zabbix по snmp

Мы включили snmp, выставили версию 2, разрешили подключаться только с ip адреса zabbix server — 10.1.3.29. Не забудьте указать адрес своего сервера.

Сходим теперь на zabbix-server и убедимся, что мы через него можем забирать информацию с mikrotik по snmp. Для этого подключимся к нему по ssh и воспользуемся утилитой snmpwalk. Если у вас ее нет, то поставить можно командой:

Подключаемся к микротику по snmp.

zabbix-mikrotik-05-min.png
Подключаемся к микротику по snmp.

Получите кучу значений в консоли. Если хотите удобно их просмотреть, направьте вывод команды в файл и почитайте его. Если подключение прошло успешно, то переходим в Web интерфейс Zabbix сервера.

Здесь нам нужно будет добавить несколько шаблонов. Для начала загрузите вот этот пак шаблонов — https://share.zabbix.com/official-templates/template-modules-pack и установите несколько штук из него:

  • template_module_generic_snmp_SNMPv2_EN.xml
  • template_module_interfaces_SNMPv2_EN.xml
  • 00template_module_icmp_ping__EN.xml

Вроде все. Но если вдруг чего-то будет не хватать, то при установке основного шаблона, он вам скажет об этом. Загружаем основной шаблон отсюда — https://share.zabbix.com/network_devices/mikrotik/template-net-mikrotik-snmpv2 и устанавливаем на сервер мониторинга. Обратите внимание на вкладку Макросы в шаблоне. Там указаны дефолтные значения, которые используются в триггерах. Лично я немного поднял пороговые значения по температуре.

zabbix-mikrotik-08-min.png

Теперь нам нужно добавить в систему само устройство Mikrotik. Делаем это как обычно, не забывая указать snmp интерфейс.

zabbix-mikrotik-06-min.png

И не забудьте ему подключить шаблон Template Net Mikrotik SNMPv2. После этого можно идти в Lates Data и проверять поступление информации с устройства в систему мониторинга.

zabbix-mikrotik-07-min.png

Часть данных увидите сразу, а та, что поступает через правила автообнаружения, появится позже. Надо подождать. После того, как отработают все правила автообнаружения, рекомендую сходить на хост и поотключать то, что вам не нужно. К примеру, если у вас настроен capsman, то в мониторинг с мастера попадут интерфейсы cap, которые отключаются, если к точке нет подключенных клиентов по wifi. В итоге будет ненужный спам от мониторинга с точек.

На этом по мониторингу базовых метрик в микротике все. Теперь займемся уведомлениями о подключениях к устройствам через Winbox.

Отправка логов Mikrotik в syslog

Первым делом настроим сбор логов с микротиков на любой syslog сервер. В моем случае это будет сам сервер мониторинга на базе rsyslog и centos 7, но это не принципиально. Главное, чтобы на нем был zabbix-agent, который будет отправлять логи микротиков на заббикс сервер.

Для этого в rsyslog включим возможность слушать udp port 514. Открываем конфиг /etc/rsyslog.conf и раскомментируем там строки:

Дальше в этом же файле в самом начале перечисления правил, добавляем свое.

Данное правило будет автоматически раскладывать все логи с удаленных устройств по файлам в директории /var/log/mikrotik с именами в виде IP адресов. При этом не будет создан лог 127.0.0.1.log, куда бы складывались все локальные лог файлы. В своей предыдущей статье я не учитывал этот нюанс, что приводило к дублированию всех локальных логов. Сейчас я это исправляю.

Сразу же настроим ротацию лог файлов, чтобы они не забили нам весь диск. Для этого создаем конфиг для logrotate в файле /etc/logrotate.d/mikrotik примерно следующего содержания:

Я ротирую файлы логов раз в неделю, сразу сжимаю и кладу их в директорию /var/log/mikrotik/old, где будут храниться 12 последних версий файла.

Не забудьте создать указанные директории и дать пользователю zabbix права на чтение. Потом проследите, чтобы у самих логов тоже были права на чтение для zabbix. Это важно, так как агент должен их читать.

После завершения настройки, надо перезапустить rsyslog.

Отправляемся на Mikrotik и настраиваем отправку логов на наш syslog сервер. Для этого переходите в раздел System -> Logging -> Actions и добавляйте новое действие.

zabbix-mikrotik-01-min.png

Дальше открывайте вкладку Rules и добавляйте темы логов, которые вы будете отправлять в Zabbix. Для мониторинга за логинами достаточно темы System.

zabbix-mikrotik-02-min.png

Чтобы проверить отправку логов, достаточно тут же в Mikrotik открыть новый терминал. Создастся событие в логе, который улетит на удаленный сервер. На сервере с rsyslog будет создан лог файл с содержимым.

zabbix-mikrotik-03-min.png

Если у вас так же, можно двигаться дальше. Если же логи не поступают на syslog сервер, разбирайтесь в чем может быть причина. Первым делом проверьте настройки firewall. Убедитесь, что доступ к udp порту 514 есть. Дальше проверьте, что ваш rsyslog сервер реально слушает этот порт.

Мониторинг подключений (авторизаций) в Mikrotik

Логи с устройств мы собрали в одном месте. Теперь будем их анализировать и отправлять уведомления при каждом подключении к Mikrotik через Winbox. Я для этого сделал отдельный шаблон, где созданы элементы данных типа Журнал (лог) для анализа лог файла от каждого устройства.

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

Я не стал делать в шаблоне автообнаружение. Настраивал это в системах до 10-ти точек и мне банально было лень это делать, хотя и не сложно. Я просто копировал и исправлял итемы и триггеры, меняя ip адреса устройств. Для автообнаружения надо скрипт на сервер класть, который будет передавать список логов в мониторинг. А если руками делать, то можно все на сервере в шаблоне добавлять.

Итак, создаем простой итем.

zabbix-mikrotik-09-min.png

К итему делаем триггер.

zabbix-mikrotik-10-min.png

Вот и все. Прикрепляйте шаблон к хосту с микротиком и проверяйте. В первую очередь смотрите, чтобы в Latest Data появилось содержимое лога.

zabbix-mikrotik-11-min.png

Если триггеры настроены правильно, то при каждом подключении по Winbox вы будете получать уведомление на почту.

zabbix-mikrotik-12-min.pngИ еще одно после отключения.

zabbix-mikrotik-13-min.png

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

Заключение

Мониторинг подключений и авторизаций в микротиках настроен в рамках построения простенькой самодельной системы информационной безопасности. Сюда можно будет добавить мониторинг за подключениями по ssh и openvpn. Затем свести все это в единый dashboard.

источник

Возникло желание собирать логи с роутера Mikrotik. Была нужна информация о подключенных по pptp абонентах и логи firewall для настройки. По-умолчанию, Mikrotik пишет все логи в лог журнал, который можно просмотреть через winbox. Стандартно, там хранятся последние 100 строк лога.

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Курс стоящий, все подробности читайте по ссылке.

Данная статья является частью единого цикла статьей про Mikrotik.

2014-09-24-18-43-08-Skrinshot-e`krana.png

Настраиваем удаленный сервер 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. Открывается окно настроек. В нем вводим адрес удаленного сервера сбора логов. Порт на свое усмотрение либо оставляем по-умолчанию, либо меняем на свой. Больше ничего добавлять не надо.

2014-09-24-18-59-49-Skrinshot-e`krana.png

Дальше в разделе Rules создаем необходимое правило хранения:

Все готово. Теперь все наши логи будут храниться на удаленном сервере. Необходимо не забыть настроить ротацию логов, дабы в один прекрасный день они не заняли все свободное место.

Если вы используете ELK Stack для централизованного сбора логов, то у меня есть статья по отправке логов mikrotik в elk stack.

Напоминаю, что данная статья является частью единого цикла статьей про Mikrotik.

Помогла статья? Есть возможность отблагодарить автора

Рекомендую полезные материалы по схожей тематике:

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте . Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.
  • Инструкция о том, как быстро выполнить настройку mikrotik.
  • Использование протокола Layer7 для блокировки сайтов средствами Микротик.
  • Настройка простых правил фаервола для защиты локальной сети.
  • Создание единой wifi сети из множества точек доступа mikrotik с помощью capsman.
  • 2 провайдера и 2 wan интерфейса для создания отказоустойчивой связи с интернет.

Сегодня расскажу один из методов как можно настроить мониторинг логов сетевых устройств на примере маршрутизаторов MikroTik. Это будет полезно для системных администраторов и компаний которые занимаются IT аутсорсингом. Такой метод можно использовать не только к данным устройствам но и к любому другому сетевому оборудованию или операционным системам, которые умеют отправлять логи на удаленный сервер.

Установка и настройка rsyslog

Итак, у нас есть Zabbix сервер который находится в облаке, он выступает PPTP сервером, и он же будет rsyslog сервером.

rsyslog%201.jpg

Будем считать, что Zabbix у вас уже функционирует и мониторит узлы, в том числе и маршрутизатор MikroTik по SNMP. Для начала идем на Zabbix сервер и проверим установлен ли у нас rsyslog командой «ls /etc/rsys*».

rsyslog%202.jpg

Видим, что его конфигурационный файл присутствует, значит он установлен. На многих версиях ubuntu он уже предустановлен, но бывают случаи, как было у меня что его нет, тогда его устанавливаем командой «apt install rsyslog».  После установки переходим в конфигурационный файл «nano /etc/rsyslog.conf» и настроим прием удаленных логов на наш сервер.

rsyslog%203.jpg

Раскомментируем строчки:

module(load=»imudp»)  — модуль для приема логов по udp.

input(type=»imudp» port=»514″) –udp порт который бут слушать наш rsyslog.

В принципе этого достаточно для приема удаленных логов, то тогда все устройства будут писать логи в один файл, и с ним будет очень сложно работать, не говоря уже о том, что к Zabbix прикрутить такой мониторинг будет невозможно. Для этого в rsyslog создадим правило фильтрации по IP адресам. То есть каждое устройство будет писать логи в свой отдельный файл. Для этого добавим в конец конфига rsyslog следующую строку, «if $fromhost-ip contains ‘192.168.155.16’ then /var/log/mikrotik.log».  Здесь говориться если у хоста ip 192.168.155.16 то его логи записываем в файл /var/log/mikrotik.log.

rsyslog%204.jpg

Теперь нам осталось перезагрузить rsyslog «/etc/init.d/rsyslog restart» и перейти к маршрутизатору MikroTik для настройки отправки логов.

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

Как видно по схеме сети наш роутер уже подключен по PPTP к Zabbix серверу, и отправлять логи мы будем на серый адрес VPN-сети 192.168.155.1. Их отправка настраивается в «System->logging»

rsyslog%205.jpg

На вкладке Rules видим типы сообщений в логах:

  • Critical
  • Error
  • Info
  • Warning

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

rsyslog%206.jpg

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

rsyslog%207.jpg

Видим файл создался, теперь посмотрим его содержимое.

rsyslog%208.jpg

Видим нижняя строчка как раз появилось, когда я менял место назначения логов.

Настройка отображения логов в Zabbix

Мы настроили rsyslog теперь можем собирать централизованно все логи с устройств в разные файлы и работать с ними, когда нам будет это нужно. Но согласитесь читать файлы очень неудобно. Тем более если у нас есть Zabbix то было бы глупо не прикрутить все это «добро» к нему, чтобы пользоваться единым web интерфейсом, да и триггеры к логам тоже было бы неплохо использовать. Переходим в настройки узла сети Zabbix сервера, так как логи пишутся на диск заббикса, то и добавлять элементы данных придется на нем, да это не очень эстетично, но лучшего я пока не придумал.

 rsyslog%209.jpg

  1. Имя элемента данных (называем его по имени клиента).
  2. Тип Zabbix агент (активный) это обязательно.
  3. Ключ — log[/var/log/mikrotik.log,,,100,skip,,] – указываем путь к файлу который будем мониторить и считывать с него данные.
  4. Тим информации – Журнал лог.

rsyslog%2010.jpg

Видим все работает, все приходит.

Настройка триггера на события в лог-файле маршрутизатора MikroTik

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

rsyslog%2011.jpg

Идем в настройку узла «Zabbix Server» и создаем там триггер с параметрами как указаны на картинке:

  1. Имя триггера
  2. Классификатор важности события
  3. Выражение добавляем, как указано в пунктах 3-3.4. Ищем слово «changed» в самых новых данных, приходящих в лог файл и если находим, то триггер срабатывает.
  4. Запрещаем авто закрытие проблемы.

Сохраняем и проверяем работу, отключим и включим правило в Firewall

rsyslog%2012.jpg

Видим пришло события и сработал триггер

rsyslog%2013.jpg

Как видем настройка получилась не сложная а результат очень даже впечатляющий так как мониторинг логов является обязательным для любой компании которая заботиться о безопасности и своевременой реакцией на события, zabbix нам как раз дает прекрасную возможность сделать это эффективно. Также советую ознакомиться с моей предыдущей статьей о мониторинге загрузки канала на оборудовании MikroTik c использованием того же zabbix, она прекрасно дополнит все, что было написано здесь.

P.S. Не забудьте настроить firewall на сервере (белый список или «серая» VPN-сеть), иначе 514 порт будет также доступен по белому IP, а это чревато плохими последствиями

На сегодня все! Всем спасибо за прочтения.

Автор as@oneweb.pro | Просмотров 9704

Используемые источники:

  • https://bookflow.ru/monitoring-mikrotik-v-zabbix/
  • https://serveradmin.ru/mikrotik-logirovanie-na-udalennyiy-server-rsyslog/
  • https://it.oneweb.pro/блог/zabbix-rsyslog-mikrotik/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации