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

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

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Цели статьи

  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 адрес подключившегося к микротику и отправляет эту информацию в уведомлении.

В целом, никаких сложностей в этой настройке нет. У меня уже есть статьи по сбору логов с микротиков - отправка в elk stack и на удаленный rsyslog сервер. Сегодня я актуализирую эту информацию и опишу еще раз.

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

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

  1. Установка CentOS 8.
  2. Настройка CentOS 8.
  3. Установка и настройка zabbix сервера.

То же самое на Debian 10, если предпочитаете его:

  1. Установка Debian 10.
  2. Базовая настройка Debian.
  3. Установка и настройка zabbix на debian.

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

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

Включение snmp в zabbix

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

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

# yum install net-snmp-utils

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

# snmpwalk -v 2c -c public 10.1.3.111
Проверка 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 и устанавливаем на сервер мониторинга. Обратите внимание на вкладку Макросы в шаблоне. Там указаны дефолтные значения, которые используются в триггерах. Лично я немного поднял пороговые значения по температуре.

Макросы в шаблоне

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

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

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

Данные в мониторинге

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

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

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

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

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

$ModLoad imudp
$UDPServerRun 514

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

$template FILENAME,"/var/log/mikrotik/%fromhost-ip%.log"
if $fromhost-ip != '127.0.0.1' then ?FILENAME
& stop

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

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

/var/log/mikrotik/*.log {
	weekly
	rotate 12
	compress
	olddir /var/log/mikrotik/old
	missingok
	notifempty
	create 0640 root zabbix
}

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

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

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

# systemctl restart rsyslog

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

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

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

remote logging Mikrotik

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

Просмотр лог файла микротика

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

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

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

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

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

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

Итем для шаблона

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

Триггер на подключение
Mikrotik 10.1.3.110 auth {{ITEM.VALUE}.iregsub("account user (.*)via", "\1")}
{Template Mikrotik Logs:log[/var/log/mikrotik/10.1.3.111.log].str(logged in from,#1)}=1 and {Template Mikrotik Logs:log[/var/log/mikrotik/10.1.3.111.log].str(via winbox,#1)}=1

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

Мониторинг лог файла микротика

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

Уведомление о подключении к микротику

И еще одно после отключения.

Оповещение об отключении

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

Пример моего шаблона с двумя микротиками - zabbix-mikrotik-logs.xml. Если у вас много устройств, настройте автообнаружение лог файлов, чтобы автоматически создавать итемы и триггеры. Пример настройки автообнаружения в Zabbix можете посмотреть на примере мониторинга openvpn подключений. Там как раз показан очень похожий пример, когда анализируется список файлов в директории и передается в zabbix server.

На этом по мониторингу микротиков в Zabbix у меня все. По идее, рассмотрел все актуальные задачи по этой теме.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Если у вас есть замечания или рекомендации по настройке мониторинга Mikrotik, делитесь в комментариях. Так же интересно узнать, есть ли еще какие-то полезные метрики, которые я упустил. Имея на руках лог файлы, можно настроить мониторинг абсолютно всех действий с микротиками. Но лично я не придумал, какая еще информация может быть полезна.

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

Так же может быть полезным настройка оповещений в telegram.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

152 комментария

  1. В статье не сказано, что агент должен быть >=6.x.x

    Zabbix-agent должен работать в активном режиме

    • Кирилл

      При таком способе мониторинга подключений, когда к микротик будет выполнено подключение и триггер будет в состоянии "Problem expression", взять и выполнить ещё один или несколько входов, то эти авторизации не будут зарегистрированы. Если в 9 утра админ1 зайдёт в микротик через winbox, а выйдет из него в 17 часов, а админ2 будет подключяться к микротик в период времени с 9 до 17 уведомлений на его авторизации не будет.

  2. Сергей

    у меня триггер работает так:
    триггер создал в шаблоне zabbix server и важное значение /Zabbix server/
    find(/Zabbix server/log[/var/log/mikrotik/10.1.3.111.log],,,"logged in from")=1 and find(/Zabbix server/log[/var/log/mikrotik/10.1.3.111.log],,,"via winbox")=1

  3. Владимир

    Ну систему сделал такую же: rsyslog настроен на zabbix server (Debian 11). Логи собираются тут: /var/log/mikrotik/ . Вроде всё просто, статья простая и всё получилось, кроме уведомления о том, что пользователь вышел из winbox'a. Уведомление о заходе в winbox в zabbix отображается.

    192.168.0.1 - микротик
    192.168.0.60 - рабочая станция

    Вот лог cat /var/log/mikrotik/192.168.0.1.log:
    2023-04-24T09:33:31.415191+10:00 192.168.0.1 system,info,account user admin logged in from 192.168.0.60 via winbox
    2023-04-24T09:33:53.579211+10:00 192.168.0.1 system,info,account user admin logged in from 192.168.0.60 via telnet
    2023-04-24T09:34:12.898234+10:00 192.168.0.1 system,info,account user admin logged out from 192.168.0.60 via winbox
    2023-04-24T09:34:12.909044+10:00 192.168.0.1 system,info,account user admin logged out from 192.168.0.60 via telnet

    Вот такое выражение проблемы в триггере шаблона:

    find(/Template Mikrotik Logs/log[/var/log/mikrotik/192.168.0.1.log],#1,"like","logged in from")=1 and find(/Template Mikrotik Logs/log[/var/log/mikrotik/192.168.0.1.log],#1,"like","via winbox")=1

    Вот такое выражение восстановления в триггере шаблона:

    find(/Template Mikrotik Logs/log[/var/log/mikrotik/192.168.0.1.log],#1,"like","logged out from")=1 and find(/Template Mikrotik Logs/log[/var/log/mikrotik/192.168.0.1.log],#1,"like","via winbox")=1

    Кто знает как решить проблему, подскажите, пожалуйста.

    • Владимир

      Ну и надо добавить, что в истории проблемы в zabbix отображается лог как положено: и logged in и logged out .

      • Если в истории события о проблеме и о решении есть, значит триггер работает нормально. Надо смотреть, что с настройками самих оповещений.

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

      • Владимир

        Ума не приложу что не так. Уже по символам прошёлся в выражении восстановления триггера. Всё точно также как на скриншоте (кроме IP). И всё-равно нет проблемы "logged out from" при выходе из winbox'a в zabbix'e. Интересное явление.
        Ладно, буду разбираться, пытаться. Спасибо.

    • Сергей

      попробуй изменить Template Mikrotik Logs на Zabbix server

    • Михаил

      В логе у вас login через Winbox, а logout через telnet.
      В настройках уведомления у вас winbox и в login и logout.

  4. не нашёл самого главного загрузки интерфейсов

    • В стандартных шаблонах это есть. И триггеры на загрузку интерфейса более чем на 90%.

  5. Ссылки битые, не работают ((

  6. Дмитрий

    Никак не могу дать права агенту на чтение лог файлов
    Cannot open file "/var/log/mikrotik/xxx.log": [13] Permission denied

  7. Благодарю за статью. Помогла мне в настройке удаленного логирования на отдельную машину под линуксом.
    Теперь вот захотелось настроить логирование так, чтобы определенные события c файрвола (firewall) шли только на "удаленку", без дублирования локально. Пошел в правила в файрволе, выключил в нужном правиле "лог" и вуаля - пропал лог и "удаленный". Итить его колотить!
    В микроте на данный момент логирование настроено как-то так:
    /system logging
    add action=remote topics=firewall
    add action=remote topics=critical
    add action=remote topics=wireless
    add action=remote topics=error
    add action=remote topics=watchdog
    add action=remote topics=account
    add action=remote topics=system
    add action=remote disabled=yes topics=dhcp
    add action=remote topics=info
    add topics=firewall
    Логирование в правилах файрвола (галочка "Log" на вкладке "Action" правила) пока выключено - ничего на удаленку не пишет с файрвола, зараза.
    Не подскажете, как же его таки настроить?

  8. В новых редакциях Zabbix выражение для тригера должно выглядеть так:
    для проблемы
    find(/Mikrotik Logs/log[/var/log/mikrotik/192.168.0.1.log],,,"logged in from")=1 and find(/Mikrotik Logs/log[/var/log/mikrotik/192.168.0.1.log],,,"via winbox")=1

    для восстановления
    find(/Mikrotik Logs/log[/var/log/mikrotik/192.168.11.1.log],,,"logged out from")=1 and find(/Mikrotik Logs/log[/var/log/mikrotik/192.168.11.1.log],,,"via winbox")=1

  9. Битая ссылка на шаблоны

  10. Добрый день, подскажите как исправить данные по определению скорости порта в шаблонах MikroTik.
    Физические порты правильно считает, а в мостах и в туннелях отображает чушь.

    • Чушь какого рода? Что туда приходит?

      • В плане ,что скорость туннеля показывается 10 мбит или 100. Но в группе в теле уже пояснили, что виртуальный интерфейс всегда так будет показывать.

  11. Здравствуйте, не совсем по теме статьи... У меня несколько территориально разбросанных площадок. У каждой свой микрот и туннели к сторонним заказчикам, а сервера есть только на 1ой. Как то можно организовать пинги к заказчику, для понимания "качества" соединения от площадки до заказчика?

    • Пингами трудно определить качество соединения. Только его доступность.

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

      • Полностью с Вами согласен, собственно из-за чего "качество" в кавычках. Имел ввиду можно ли застваить микрот, что то пинговать и снимать инфу об этом на забикс.

        • Теоретически можно, но практически это будут какие-то костыли. Я бы не связывался. Например, можно скриптом на Mikrotik пинговать нужные адреса и выводить информацию с результатом в свой лог. А сам лог с Mikrotik отправлять по Syslog на сервер с Zabbix. Там уже мониторить лог по этим записям. Я такие штуки делал для мониторинга переключения внешних каналов связи.

  12. Алексей

    Подскажите, пожалуйста, а можно воспользоваться rsyslog.config, который стоит на этом же сервере с Zabbix-ом? Надо для этого что-то дополнительно настраивать или настройки будут принципиально разные?
    Спасибо.

    • Ничего не надо, локального rsyslog достаточно. Он на всех linux серверах одинаковый. Я частенько именно на Zabbix Server собираю syslog логи.

      • Алексей

        Да, спасибо.
        Сейчас настраиваю по вашей инструкции на Debian11.
        Вот первое обнаруженное расхождение (если вам интересна такая инфа)

        # provides UDP syslog reception
        #module(load="imudp")
        #input(type="imudp" port="514")

        # provides TCP syslog reception
        #module(load="imtcp")
        #input(type="imtcp" port="514")

  13. Александр

    Добрый день!
    Zabbix 5.2. Был подключен mikrotik когда канал был 30мб/с. Загрузка канала работала корректно. Сейчас увеличили скорость канала до 100Мб/с. И Zabbix часто говорит что 30мб/с загружены. Т.е. где-то запомнилось старое значение. пробовал удалить и заново создать Mikrotik в Zabbix, но это не помогло. Подскажите куда смотреть пожалуйста.

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

  14. Алексей

    "Теперь нам нужно добавить в систему само устройство Mikrotik. Делаем это как обычно..."
    Ну, сдрасте, приехали :D Лень было полностью статью оформить? :D

    • А что здесь не понятно? У меня есть статья про установку и настройку Zabbix. Там всё это есть. Если нет понимания, как добавлять узлы в мониторинг, то начинать надо не с этой статьи.

  15. Каким образом можно добавить regex в правило rsyslog?
    Само выражение и вывод сформирован на https://www.rsyslog.com/regex/ :

    $Template tpl,"%msg:R,ERE,0,DFLT:(user.*)--end%\n"
    *.* /path/to/file;tpl

    Суть regex чтобы в лог файл %fromhost-ip%.log записывалась строка вида "user admin logged in from 1.2.1.3 via telnet" и ничего более.
    Спасибо

  16. Здравствуйте. Возникла проблема в процессе создания триегра
    Не удалось добавить триггер
    Ошибочный параметр "/1/expression": некорректное выражение начиная с "{Template Mikrotik Logs:log[/var/log/mikrotik/192.168.10.1.log].str(logged in from,#1)}=1 and {Template Mikrotik Logs:log[/var/log/mikrotik/192.168.10.1.log].str(via winbox,#1)}=1".

    имя - Mikrotik 192.168.10.1 auth {{ITEM.VALUE}.iregsub("account user (.*)via", "\1")}

    Выражение проблемы
    {Template Mikrotik Logs:log[/var/log/mikrotik/192.168.10.1.log].str(logged in from,#1)}=1 and {Template Mikrotik Logs:log[/var/log/mikrotik/192.168.10.1.log].str(via winbox,#1)}=1

    Подскажите в чем мог ошибиться ?

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

      • Алексей

        Такая же ошибка.
        Похоже к сожалению данная часть статьи не подходит для новой версии Zabbix(((

        • 5.4 не LTS версия с поддержкой только пол года, так что я статьи не обновляю, иначе они на 5.0 не будут работать. В 5.4 синтаксис совершенно другой, копировать из статьи выражения триггеров не имеет смысла, они не заработают. Можно настроить всё на 5.0, обновить до 5.4 и экспортировать шаблон. Потом перенести в свой 5.4.

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

    • Аноним

      Как вы и писали в 5.4 многое поменяли для ознакомления
      https://www.zabbix.com/documentation/current/manual/introduction/whatsnew540

  17. В выражении триггера "Template Mikrotik Logs" указан некорректный ключ элемента данных "log[/var/log/mikrotik/10.1.3.111.log]".
    В чем может быть проблема?
    Айпи конечно я ставлю свой

  18. Подскажите, а как быть если сервер zabbiz на удаленной машине. И получается что он видит только айпи внешний,а за натом 5 микротиков,как их промаркировать или сделать чтоб они в заббиксе отдельно мониторились?

    • Варианта тут 2:
      1. Пробрасывать порты через nat для каждого устройства.
      2. Ставить внутри сети с микротиками zabbix proxy и собирать данные на неё. А она будет на основной сервер передавать.

    • Привет, Роман!
      Напиши на почту, подскажу! bite-byte@ya.ru

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

  20. Каким образом можно добавить regex в правило rsyslog?
    Само выражение и вывод сформирован на https://www.rsyslog.com/regex/ :

    $Template tpl,"%msg:R,ERE,0,DFLT:(user.*)--end%\n"
    *.* /path/to/file;tpl

    Суть regex чтобы в лог файл %fromhost-ip%.log записывалась строка вида "user admin logged in from 1.2.1.3 via telnet" и ничего более.
    Спасибо

  21. Всем привет. Получаю ошибку: Не удалось добавить триггер В выражении триггера "Mikrotik Logs" указан некорректный ключ элемента данных "log[/raid1/Shara/Backup/rsyslog/192.168.1.1/syslog.log]".

    • Забыл указать триггер.
      Выражение проблемы:
      {Mikrotik Logs:log[/raid1/Shara/Backup/rsyslog/192.168.1.1/syslog.log].str(logged in from,#1)}=1 and {Mikrotik Logs:log["/raid1/Shara/Backup/rsyslog/192.168.1.1/syslog.log"].str(via winbox,#1)}=1{Mikrotik Logs:log[/raid1/Shara/Backup/rsyslog/192.168.1.1/syslog.log].str(logged in from,#1)}=1 and {Mikrotik Logs:log["/raid1/Shara/Backup/rsyslog/192.168.1.1/syslog.log"].str(via winbox,#1)}=1

      Выражение восстановления:
      {Mikrotik Logs:log[/raid1/Shara/Backup/rsyslog/192.168.1.1/syslog.log].str(logged in from,#1)}=1 and {Mikrotik Logs:log["/raid1/Shara/Backup/rsyslog/192.168.1.1/syslog.log"].str(via winbox,#1)}=1

  22. Два элемента данных ("Device contact details" и "System contact details") не могут заполнять одно поле "Контактная информация" инвентарных данных узла сети, это может привести к конфликту.

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

  23. Алексей

    Владимир, добрый день!

    Большое спасибо вам за сайт в целом и за статью в частности. Материал сайта уже не раз оказывался нужным и полезным.
    Хотел обратить ваше внимание, что именно эта статья не показывается, если идти по шагам: Главная страница - Микротик - Эта статья.
    Какое-то время назад ознакомился с ней, сегодня захотел найти снова и получилось это не сразу. Только покопавшись в истории.

  24. Добрый день!
    Наблюдаю такую проблему при подключении данного шаблона. Хотя данные идут
    Timeout while connecting to "х.х.х.1:161"
    при этом на той же машине:
    snmpwalk -v 2c -c public х.х.х.1
    успешно получает ответ.
    Комьюнити прописано корректно. В логах messages zabbix-server и mikrotik никаких ошибок нет. И даже данные в latest приходят но не полностью.
    Таймаут прописан 30 секунд у сервера.
    От сервера до микрота 1 хоп.
    фаер и selinux потушены. Не понимаю куда копать.
    Есть ли идеи вдруг у кого?

    Сервер заббикса на гипервизоре

    • Как бы странно не было, и хотя перепробовал все. Помогло абсолютно безумное решение. Удалил хост и пересоздал заново.
      В дебаг режиме ошибок не нашел. Какой то сбой.

  25. snmpwalk -v 2c -c public x.x.x.x с Zabbix-сервера не работает. Сделал дубликат виртуальной машыны Zabbix-сервер, разместил в локальной сети - оттуда snmpwalk работает. Что еще открыть на Mikrotik для доступа по snmp извне ?

  26. Константин

    попробовал сделать как в статье мониторинг подключений (авторизаций) в Mikrotik, логи на syslog (он же zabbix server) пишутся, доступ на чтение у зайбикса есть, шаблон залил, поправил и к устройству подключил, но как заставить агента отдавать этот лог на зайбикс-сервер пока понять не смог...

    • Нужно создать айтем с логом и прикрепить его к хосту, где стоит zabbix-agent и находится лог файл. Там каких-то особых действий делать не надо. У меня несколько статей с мониторингом лог файлов.

      • Константин

        Получилось только когда привязал шаблон к хосту zabbix server, а не к хосту микротика (с которого идут логи). В статье указано: "Прикрепляйте шаблон к хосту с микротиком" это то и смутило, я даже попытался для хоста микротика создать интерфейс Агент (в дополнении к snmp), указал на нем IP zabbix server-а на котором и стоит единственный пока работающий агент, но не взлетело почему-то, а стоило только перенести шаблон на хост zabbix server и моментом заработало. Тестирую это все на версии zabbix 5.2 возможно в ней свои особенности...

        • Это была моя ошибка, поправил. Прикреплять шаблон с проверкой лог файла надо к хосту, на котором этот лог и лежит.

  27. Николай

    Здравствуйте, помогите пожалуйста решить проблему. Генеральный директор поручил мониторить и сохранять в отчетах все посещенные сайты и поисковые запросы сотрудников. У меня стоит роутер Mikrotik CCR1009-7G-1C-1S+PC. Я начинающий IT-инженер, начальник у меня в отпуске. Не подскажете, есть ли возможность мониторить всю эту информацию непосредственно через роутер? Если нет, то как это можно сделать?

    • Нет, сам микротик не умеет это делать. Необходим какой-то прокси сервер, который будет собирать статистику по посещенным сайтам. А сами пользователи должны выходить в интернет через этот прокси.

      Поисковые запросы отследить не получится, потому что все соединения сейчас зашифрованы и проходят через https. Вы можете увидеть только адрес сайта, куда пришел пользователь, но не содержимое, которое он получил.

      У меня есть описание шлюза ИКС, у него есть подобный функционал и он бесплатен для 10 пользователей. Можете потестировать - https://serveradmin.ru/nastrojka-internet-shlyuza-iks-s-filtracziej-https-trafika/

      Из бесплатных аналогов есть pfsense.

  28. Малинка

    Может кто подскажет как в Logging Actions в поле Src.Address прописать локальный ip микрота не руками, а автоматом? Через переменную или еще каким-то методом.
    Пример через CLI
    /system logging action add remote=172.16.1.1 src-address=10.52.101.1 name=zabbix target=remote bsd-syslog=yes
    /system logging add action=zabbix topics=system
    10.52.101.1 - локальный адрес микрота
    Подключаться к каждому микроту и запускать команду вручную меняя ip, когда этих микротов хренилион, хлопотно. Хотела запилить плейбук в Ансибле, но не догоняю как и через какую переменную в src-address закидывать локальный IP.

    • Я так сходу тоже не скажу. Тут наверное надо уже скрипт использовать. В скрипте забирать локальный адрес и второй командой прописывать action. Задача сводится к тому, как узнать в скрипте локальный адрес микрота. Но нужно еще учесть, что могут быть разные интерфейсы с локальным адресом. По хорошему, надо метить в микротах все локальные интерфейсы какой-то меткой в комментариях и по ней уже далее в скрипте определять ip адрес.

      Что-то вроде этого должно получиться, если смотреть адрес конкретного интерфейса:

      :local ip [/ip address get [find interface="bridge1-lan"] address ];
      :log warning "Local IP: $ip";
      /system logging action add remote=172.16.1.1 src-address=$ip name=zabbix target=remote bsd-syslog=yes

      Напиши потом решение, как в итоге получится сделать

      • Малинка

        Спасибочки, огромное! Обязательно отпишусь по результатам.

        • Малинка

          Правильно будет вот так:
          {
          :local ip [/ip address get [find interface=bridge] address];
          :local addip [:pick $ip 0 [:find $ip "/"]];
          :log warning "Local IP: $addip";
          /system logging action add remote=172.16.1.1 src-address=$addip name=zabbix target=remote bsd-syslog=yes
          /system logging add action=zabbix topics=system
          }

          • Не понял, что делает вот эта конструкция?

            :local addip [:pick $ip 0 [:find $ip "/"]];

            • Малинка

              Убирает маску. Если без этой конструкции, то в логе вывод Local IP будет например 10.45.101.1/24 и подстановка айпишника в src-address не произойдет, т.е. скрипт полностью не отработает.

              • Странно, у меня без маски выдавал ответ. Я проверял у себя.

                • Малинка

                  Хм... очень странно! /ip address print выводит address 10.45.101.1/24 network 10.45.101.0 interface bridge, и т.д. по остальным интерфейсам, т.е. все айпишники с префиксом маски. Соответственно запрос :local ip [/ip address get [find interface="bridge"] address ]; это тоже самое, только обращение непосредственно к бриджу, и вывод :log warning "Local IP: $ip"; так и выдаст в лог айпишник вместе с префиксом. Как у вас вывело без префикса огрооомная загадка, я бы даже сказала, мистика ))) Чтобы не быть голословной вот: https://wiki.mikrotik.com/wiki/Manual:Scripting-examples#Strip_netmask

  29. Валерий

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

    Вопрос: как отключить слежение за wifi интерфейсом, не отключая мониторинга других интерфейсов? Надоел этот спам. Если можно подробнее.

  30. Александр

    snmpwalk -v 2c -c zabbix x.x.x.x

    Все вроде работает, кроме ошибки :
    Timeout: No Response from x.x.x.x

    подскажите пожал, что может быть?

    • Текст ошибки явно говорит, что просто нет ответа на запрос. Причин этому может быть масса.

  31. Польгин

    У меня после всех манипуляци в логах микротика ошибка
    packet(v2) from: адрес сервера community: -- permission denied

  32. Здравствуйте, настроил мониторинг шлюза Mikrotik RB2011 в Zabbix и отправку событий в телеграмм. У меня есть две группы мониторинга в телеграмм одна для админов другая для пользователя. Вот для админов приходят все уведомления согласно шаблона Template Net Mikrotik SNMPv2 а как настроить чтобы пользователю приходили не все события заложенные в шаблоне а только определённые скажем доступность по ping.

    • Вам нужно в Zabbix, в разделе Настройка -> Действия создать отдельное действие для нужных вам триггеров. И там же указать получателей этих уведомлений. С помощью различных действий можно очень гибко управлять уведомлениями.

  33. Аноним

    Добавил шаблон на самом Заббикс-сервере,
    открываю триггеры и вижу ошибку:
    Cannot evaluate expression: "Cannot evaluate function "Zabbix server:log[/var/log/mikrotik/xxxxxxx.log].str(via winbox,#1)": item is not supported.".

    Заббикс Аплайнс 5.2.
    Логи на рсислог падают.
    Получается статья не работает?

  34. Подскажите пожалуйста, как поступать с cap интерфейсами, когда нужно монитроитить их трафик, но не хочется видеть мусор, когда трафик через интерфейсы не идет и микротик их отключает.

  35. Спасибо огромное!

  36. snmpwalk -v 2c -c zabbix 10.103.2.1

    Все вроде работает, кроме ошибки :
    Timeout: No Response from 10.103.2.1
    Возможно порт открить надо?

  37. Решил попробовать Zabbix. До этого использовал другие системы мониторинга. И сразу чтот туплю. Как добавить сбор данных через SNMPv3?

  38. Добрый день, нигде не нашел инфы по мониторингу Ipsec тоннелей в zabbix, инетресует возможность видеть состояние тоннеля active - inactive.

    • Я не проверял, отдает ли он это состояние по snmp. Надо смотреть. Если нет, то настраивать логирование и анализировать лог.

      • Таких микротиков у меня порядка 100 шт на коротых по 2 ipsec, анализил логов не будет ресурнозатратным?

        • Если 100 шутк, то тут надо более внимательно отнестись к решению задачи. Я самый простой вариант предложил, который пришел в голову, так как всегда настраиваю сбор логов с устройств. Но если у вас нет централизованного сбора логов, то это будет не самый простой вариант. Возможно скриптами все это сделать будет проще. Например вот так:
          https://github.com/gitpel/routeros-ipsec-snmp

    • Аноним

      Если для туннеля создан интерфейс, то его статус можно смотреть через соответствующие OID. В случае если интерфейс создается динамически, например когда клиент инициализирует подключение, то можно брать информацию о том, как давно лежит/работает интерфейс.

  39. Евгений

    Добрый день. При импортировании шаблона "template_module_generic_snmp_SNMPv2_EN.xml" происходит ошибка "Два элемента данных ("Device contact details" и "System contact details") не могут заполнять одно поле "Контактная информация" инвентарных данных узла сети, это может привести к конфликту." В шаблоне это строки 161-202. Нужно что-то в шаблоне поправить? Или в параметрах импорта надо что-то включить/выключить?

    • Как решили проблему? У меня так же.

      • Евгений

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

        • Мне нечего сказать, так как не было такой ошибки. Шаблон стандартный от разработчиков. Возможно он конфликтует с другим шаблоном, но это надо по месту разбираться.

          • Евгений

            Тогда, если вы не против, задам наводящий вопрос. Чтобы сузить круг поисков. Как вы считаете, эта ошибка может возникнуть при применении шаблона к одному и тому же узлу сети? Или не обязательно?

            • Евгений

              данная ошибка вылазит при ранее примененном шаблоне к хосту.
              Я решил данную ошибку удалив хост, и создав заново. Тогда при подключении шаблона Template Net Mikrotik SNMPv2 ошибок не вылазит.

    • Решение есть Удалите уже имеющийся шаблон Mikrotik**** Точного названия не вспомню, он единственный по этому имени

    • Андрей

      Удалять надо шаблон generic_snmp

  40. Здравствуйте!
    Для мониторинга удаленного микротика за тунелем или внешним надо добавить правило в фаервол, у меня это вызвало затык при мониторинге микротика за IPSec тунелем.
    /ip firewall filter add chain=input protocol=udp dst-port=161 action=accept
    в моем случае это правило стоит после правил разрешающих IPSec.

  41. Приветствую
    Есть микротик, одна из его функций - vpn сервер. На него подключается около 50 клиентов по l2tp. При подключении создается интерфейс и его состояние прекрасно отдается по snmp. Но проблема в том, что при переподключении vpn клиента создается новый интерфейс внутри микротика, с таким же именем но другим OID и соответственно в забиксе создается несколько item с одним именем
    Подскажите как можно поправить шаблон чтобы он выгребал данные не по snmpindex а по имени интерфейса?

    • Сделайте binding для l2tp интерфейсов, чтобы они не пересоздавались.

      Шаблон забирает инфу по snmp. Если snmp отдает имя интерфейса, то можно просто изменить ключ для итема.

      • Не совсем понял ваш совет. Вернее совсем не понял. Если вас не затруднит, то расскажите более подробно вашу мысль.
        Шаблон собирает данные по OID 1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX}
        Ключевым для каждого интерфейса является SNMPINDEX. И вот этот SNMPINDEX меняется при переподключении и как следствие создается каждый раз новые item в заббиксе

        • Я не то посоветовал в части snmp. Не понял, что меняется именно oid с сохранением того же самого имени. Тогда не знаю, что посоветовать, надо разбираться в шаблоне и в snmp выдаче.

          Попробуйте сделать binding для l2tp интерфейсов. Если не ошибаюсь, для подключений клиентов это можно сделать. Возможно, они не будут пересоздаваться после этого с новыми oid.

    • Алексей

      Всех приветствую! Столкнулся с той же проблемой... Может кому пригодиться!
      Советую: 1) В настройках Микротика - L2TP Server, уменьшить значение "Keepalive Timeout". 2) В Заббиксе - в шаблоне mikrotik - Discovery rule -Network Interfaces Discovery, уменьшить значение "Keep lost resources period".
      1-е сократит время удержания канала активным при потере связи, при переподключении до истечении данного времени, у интерфейса будет новый OID!
      2-е сократит время сохранения потерянных items-ов.

  42. Максим

    Можно ли через Zabbix мониторить загрузку сети, если используются роутеры TL-WR740N?

  43. Полезная ссылка по мониторингу микротиков через zabbix - https://mum.mikrotik.com/presentations/RU19M/presentation_7152_1568016869.pdf
    Добавляю, чтобы не забыть самому.

    • Александр

      Не знаете, каким образом можно получить ключ net.if.alias, который он использует на 17й странице?

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

    ----------------
    замечание по ведению собрания:
    какой такой упоминаете "хост"? сервер заббикса? просьба - пишите конкретно, пожалуйста, в стиле "мама мыла раму", не "она мыла её"

    что такое "мастер"? в отношении заббикса применимо при распределённом мониторинге

    а вопрос по сути статьи такой -
    как рекомендовано в статье, отключил я руками в заббиксе триггеры "Network Interfaces Discovery: Interface такой-то: Link down" для capsman интерфейсов
    так деактивированные триггеры опять сами включаются через какое-то время

    плюс (чтобы два раза не вставать) добавил в шаблон
    "and ({Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}71) "
    как написано в http://blog.mysoarer.ru/%D0%B8%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-wifi-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%BE%D0%B2-mikrotik-%D0%B8%D0%B7-%D1%82%D1%80%D0%B8%D0%B3%D0%B3%D0%B5%D1%80/
    тоже не помогает - сначала вроде работает, затем заббиксом кладётся болтяра и вот снова алармируют в заббиксе опустевшие интерфейсы капсмана

    • как говорится, "правильно заданный вопрос содержит в себе половину ответа"

      посмотрел что посылает snmp с моего mikrotik 2011 с подключенными точками capsman,
      а посылает он для созданного им интерфейса capsman единицу!
      IF-MIB::ifType.xx = INTEGER: other(1)

      для не-капсманового вифи посылает 71 как и указано в статье, которую я привел выше
      IF-MIB::ifType.zz = INTEGER: ieee80211(71)

      дописал в предложенный шаблон в прототип триггера и в "проблему" и в "восстановление"
      and ({Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}1) and ({Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}71)

      продолжаю наблюдения

      • всё работает ок
        в чем была проблема - когда много точек capsman, после перезагрузки головы они устраивают гонки кто вперед подключится, соответственно номера динамических интерфейсов выдаются первым встречным, поэтому zabbix взводит на триггер новые интерфейсы вместо старых

        • Это да, наблюдал такое.

          • А я вот не понимаю. Я отключил тригеры интерфейсов капсман. И что теперь, если у меня точка AP отвалится физически или с ней что-то произойдет я не получу уведомление? Зачем тогда это нужно, глупо же.
            Давно пытаюсь реализовать мониторинг работоспособности точек капсман и уже несколько недель бьюсь с этим.

            • Так вы смотрите внимательно, что именно отключаете. Помимо мониторинга интерфейсов, стандартный шаблон проверят в том числе доступность точек с помощью пинга. И на это отдельный триггер есть.

        • Это по идее должно вылечится через настройку CAPsMAN -> Provisioning -> FOO_BAR -> Name Format. По умолчанию стоит cap, что и приводит к "динамичности" при рестартах. После выбора identity/prefix identity имена интерфейсов должны "заморозится", при условии различных identity на точках доступа, конечно :))

          P.S. Сам не проверял, т.к. у меня только одна точка дома стоит, т.е. проблем с "динамикой" нет :D

      • добрый день, а вы могли бы полностью скинуть прототип триггера? пожалуйста

      • Доброго времени суток, ну и как удалось вам победить эту проблему? Вроде изменил прототипы тригеров но переодически начинают вылетать ошибки на cap интерфейсы.

    • Ссылка не работает( можете подробнее описать решение данной проблемы? Столкнулся с такой же бедой, после перезагрузки микротика тригеры на точки снова отрабатывают(

  45. Добрый день, есть ли возможность zabbixом собирать трафик через микротик с помощю Traffic Flow?

  46. Доброе время суток сломал себе голову все сделано по инструкции но zabbix 4.0 не видит логов упор.
    rsyslog логи соберет права на папку дал группа zabbix [ххх] Владелец zabbix [ххх]

  47. Сергей

    Здравствуйте!
    Вопрос Владимиру и другим посетителям:
    возможно приспособить Zabbix к изменению IP на ДНС-хостинге, в случае недоступности сайта (IHOR - мой случай), и переводу на сервер в другом дата-центре?

    • При чем тут система мониторинга к обеспечению высокой доступности?!

    • Да, это возможно, если у вас есть dns хостинг с поддержкой работы по api. Тогда достаточно будет настроить проверку работоспособности сайта через zabbix, на триггер повесить действие в виде запроса к dns хостингу по api с заменой А записи. Сейчас по-моему, даже некоторые бесплатные dns хостинги дают возможность api запросов.

      • Сергей

        Спасибо за ответ. В сети на эту тему с zabbix мало информации. Были сомнения.

        • Вообще, это не сложно сделать. Но обычно не делают, так как возникает много сопутствующих вопросов. Просто переключить запросы на второй сервер это пол дела. Надо еще как-то базу данных постоянно синхронизировать, файлы. Это уже инфраструктурный вопрос с множеством задач, где самое простое это настроить переключение.

          • Сергей

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

            Я как понимаю, в триггере действия нужно прописать:

            4.3.4 Установка выбранной версии зоны в качестве текущей
            Формат запроса на установку версии зоны в качестве текущей имеет вид:
            PUT https://api.nic.ru/dns-master/services//zones//revisions/
            Authorization: Bearer
            Параметры, передаваемые в запросе:
            - идентификатор услуги;
            - зона домена в Punycode;
            - номер ревизии;
            - токен доступа

            Пример запроса: PUT https://api.nic.ru/dns-master/services/MYSERVICE/zones/EXAMPLE.COM/revisions/3
            Authorization: Bearer 123123123123

  48. Алексей

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

    • Не понял вопроса.

      • Константин

        Поддерживаю предыдущего оратора. Сами логи хранятся непосредственно на Zabbix сервере. Тогда как у хостов свои ip адреса и никаких данных логов там нет. Этот элемент данных по моему можно привязать только непосредственно к узлу Zabbix server. Или есть какая-то хитрость?

        • Так все правильно. Шаблон с мониторингом лог файла прикрепляется к тому серверу, где лежат логи. В данном случае это zabbix сервер. А первый шаблон с метриками добавляется к хостам с микротиком.

          • Аноним

            Из текста это совершенно не очевидно. Особенно после того как вы описываете процесс настройки триггера а дальше говорите "Прикрепляйте шаблон к хосту с микротиком и проверяйте". Из логики читающего крепить шаблон с мониторингом логов нужно крепить к узлу микротика (что не верно). Отсюда и вопросы.

            • Александр

              Спасибо за пояснения, тоже наступил на эти грабли и ещё сомневался, а точно ли нужно к микротику привязывать?)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar