Pmonline.ru

Пром Онлайн
38 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Мониторинг серверов с помощью Zabbix

Мониторинг серверов с помощью Zabbix

Zabbix ( www.zabbix.com ) — это проект с открытым исходным кодом, но разработчики также предлагают и коммерческую поддержку. Zabbix поддерживает платформы UNIX, Linux, BSD, Mac OS X и Windows и рассчитан на большие системы. Zabbix создан Алексеем Владышевым и его компанией Zabbix SIA. Эта статья написана, когда Zabbix был версии 1.8.1, выпущенной в январе 2010 года. В момент написания статьи в большинстве дистрибутивов Linux в репозиториях содержалась предыдущая версия (1.6). Версия 1.8 существенно от нее отличается, и в этой статье будут упомянуты все основные функции. Вот их краткий список:

  • Распределенный мониторинг.
  • Клиенты для платформ Linux, BSD, Windows, Mac OS X и коммерческих UNIX.
  • Бэкенд в виде базы данных (MySQL, Oracle, PostgreSQL или SQLite).
  • Режим автоматического обнаружения.
  • Веб-интерфейс.
  • Оповещения по электронной почте, SMS или Jabber.
  • Поддержка как методов получения сообщений Zabbix-клиента — как poll, так и trap.
  • Поддержка SNMP.
  • Безагентный мониторинг (пинги, проверка портов и т.п.).
  • Графики.

Хотя рекомендуется устанавливать Zabbix из репозитория вашего дистрибутива Linux, но я соберу Zabbix версии 1.8.1 из исходников на Ubuntu 9.10, для серверной платформы, а бэкендом будет MySQL. Также покажу вам, как настроить Linux-клиента с базовыми функциями мониторинга Zabbix.

Программные требования

Если устанавливаете через графический менеджер пакетов, то имена пакетов — mysql-server, apache2, libapache2-mod-php5, php5-mysql, php5-gd, libmysqlclient15-dev, libsnmp-dev, libiksemel-dev и libcurl4-gnutls-dev.

Установка

Итак, мы собрали два бинарных агентских файла: zabbix_agentd и zabbix_agent. Последний предназначен для запуска агента из суперсервера, такого как inetd, а первый сам работает как демон. Рекомендуется использовать zabbix_agentd.

Настройка сервера и клиента

Zabbix хранит по отдельности настройки сервера и клиента. Примеры конфигурационных файлов лежат в каталоге zabbix-1.8.1/misc/conf. Создайте каталог /etc/zabbix, смените владельца на пользователя zabbix и скопируйте файлы zabbix_server.conf и zabbix_agentd.conf в этот каталог.

Нужно сделать совсем немного изменений в конфигурационные файлы, к тому же они очень хорошо самодокументированы. Главное, что нужно изменить, это два параметра в клиентском конфиге zabbix_agentd.conf, в строках Server= и Hostname= . Первый параметр задает адрес сервера, с которым нужно взаимодействовать, а второй определяет имя хоста клиента.

Еще в серверном конфиге zabbix_server.conf нужно поменять параметры DBUser и DBPassword, и скорее всего, больше ничего не потребуется. Если хотите произвести более тонкую настройку, обратитесь к документации Zabbix , там каждая переменная хорошо описана.

Инициализационные скрипты

В каталоге zabbix-1.8.1/misc/init.d расположено несколько примеров инициализационных скриптов. Скопируйте один из них в /etc/init.d и внесите соответствующие изменения. К примеру, для своей Ubuntu я взял скрипт из каталога debian. Как в серверном, так и в клиентском конфигурационных файлах мне пришлось изменить расположение бинарных файлов, с /home/zabbix/bin на /usr/local/sbin.

Веб-интерфейс Zabbix

Каталог zabbix-1.8.1/frontends/php содержит веб-интерфейс к Zabbix. Скопируйте эту структуру каталогов, например, в DocumentRoot веб-сервера Apache, и откройте соответствующий URL-адрес в своем веб-браузере. Перед вами должно открыться окно Zabbix Introduction (скриншот 1). Этот мастер проверит наличие всех необходимых зависимостей (время выполнения PHP, требования по памяти и т.п.), покажет лицензионное соглашение и проведет вас через все остальные шаги настройки сервера Zabbix.


Скриншот 1. Окно Zabbix Introduction

По завершении конфигурации системы отобразится окно логина. По умолчанию имя пользователя — Admin с паролем zabbix. Конечно, сразу после входа вам нужно поменять этот пароль. Панель веб-интерфейса состоит из двух рядов (см. скриншот 2).


Скриншот 2. Панели веб-интерфейса

Выберите Administration, затем Users. Теперь справа в выпадающем списке выберите Users вместо User Groups. Щелкните по пользователю admin. Отобразится страница настройки пользователя Admin (см. скриншот 3). Сначала поменяйте пароль. Также нужно прописать правильный адрес e-mail (нажмите кнопку Add рядом с надписью Media), потому что в дальнейшем мы настроим оповещения на этот адрес.


Скриншот 3. Страница настроек пользователя Admin

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

Добавляем клиента

На клиентскую машину нужно скопировать три файла: клиентский исполняемый файл zabbix_agentd в /usr/sbin, конфигурационный файл zabbix_agentd.conf в /etc/zabbix и скрипт инициализации. Отредактируйте как того требуется zabbix_agentd.conf, в частности присвойте параметру Server= адрес вашего Zabbix-сервера, а параметру Hostname= — имя этой машины. После этого можно запустить Zabbix-агента через скрипт.

Вернитесь на веб-страницу Zabbix-сервера и выберите на панели Настройка (Configuration) → Узлы сети (Hosts). Теперь справа вверху нажмите кнопку Создать узел сети (Create Host). Появится экран Конфигурация узлов сети (Hosts configuration screen, см. скриншот 4). Можно задать вашему хосту любое имя, но я рекомендую оставить короткое имя хоста (то, которое выдается командой hostname -s ), а не полное доменное имя. Добавьте хост в группу Linux servers, а в поле DNS имя (DNS name) запишите полное доменное имя. Можно, конечно, выбрать мониторинг по IP-адресу, но я верю, что мой DNS всегда будет работать правильно. Последнее, что нужно сделать на этом экране — это нажать кнопку Добавить (Add) в секции Соединенные шаблоны (Linked templates). Отметьте галочкой Template_Linux и нажмите Выбрать (Select) в нижней части этого выпадающего окна. Вернувшись на экран Конфигурация узла сети, нажмите Сохранить (Save). На вашем клиенте будут мониториться все элементы данных и триггеры, которые присутствуют в шаблоне Template_Linux.

Читайте так же:
Выбор акб для ибп


Скриншот 4. Конфигурация узлов сети

Структура мониторинга Zabbix начинается с Элементов данных (Items), они проверяют либо собирают данные. Затем идут триггеры (они отслеживают данные, храняющиеся в Элементах данных), а завершается цепочка Действиями (Actions) — e-mail, SMS или выполнение внешних скриптов.

Элементы данных (Items)

Элементы данных можно назвать «собирателями данных». Некоторые элементы данных уже встроены в бинарный файл агента, другие представляются пользовательскими скриптами. Сразу после установки Zabbix, вы сможете использовать большой набор всевозможных шаблонов, содержащих в себе элементы данных для проверки систем Linux, Solaris, MAC OS X и Windows.

Давайте взглянем на шаблон, который мы использовали с нашим первым клиентом. Введите «Template_Linux» в поле Поиск в правом верхнем углу веб-интерфейса. В результатах поиска вы увидите страницу со ссылками на Группы элементов данных, Элементы данных, Триггеры и Графики (Item Groups, Items, Triggers и Graphs) этого шаблона (см. скриншот 5). Нажмите на ссылку Элементы данных. Все эти элементы данных мониторятся на любом хосте, к которому применен шаблон Template_Linux.


Скриншот 5. Шаблон Template_Linux

Щелкните по элементу данных под названием Free disk space on /. Вы увидите подробности этого элемента данных (см. скриншот 6). Значение большинства полей интуитивно понятно. Самые важные среди них:

  • Описание (Description): это поле описывает суть проверки, в свободной форме. Обратите внимание, что в этом поле присутствует переменная $1. Zabbix подставляет вместо этой переменной значение первого поля в ключе (будет описано далее).
  • Тип (Type): тип Zabbix agent означает, что проверка будет выполнена самим агентом, работающим на клиенте, через определенные промежутки времени. Эта проверка встроена в исполняемый файл агента, примером таких проверок являются определение свободного пространства на диске, количество свободных/задействованных inode, либо внешний пользовательский скрипт. Другой тип элемента данных — Zabbix Trapper. Zabbix Trapper ведет себя как ловушка SNMP. Его значение обновляется только в том случае, когда клиент отправляет новые данные посредством утилиты zabbix_sender . К примеру, у вас есть задание cron, которое занимает 30 минут. По обычному сценарию, Zabbix-сервер бы ожидал ответа от клиента, выполняющего данный скрипт, и до этих пор не рвал бы соединение. Однако лучшим решением является добавление cron-задания так, чтобы программа zabbix_sender сама бы по получению нового значения отправляла бы его на Zabbix-сервер.

Также можно указать Zabbix’у, каков тип возвращаемых данных: текстовый, символьный или числовой, а также множитель для возвращаемого значения. Также вы можете указать, как долго будут сохраняться исторические данные и динамику изменений. В секции Группы элементов данных можно сгруппировывать схожие по смыслу проверки. К примеру, добавив элемент данных для проверки свободного места в другой точке монтирования, вы логично сможете добавить его в группу элементов данных Filesystem.

Triggers (Триггеры)

Щелкните по ссылке Триггеры (Triggers) в глобальных результатах поиска (скриншот 5). Триггер Zabbix отслеживает значения Элементов данных. Если значение превышает предопределенный порог, тогда ему назначается один из шести уровней важности. На скриншоте 7 отображены триггеры шаблона Template_Linux. Здесь отображены: уровень важности, статус, имя и выражение, которые, собственно, и составляет суть триггера.


Скриншот 7. Триггеры шаблона Template_Linux

Щелкните на триггере Low free disk space on Template_Linux volume /, и вы увидите окно Настройка триггеров (Configuration of Triggers) (см. скриншот 8).


Скриншот 8. Окно Настройка триггеров

Первое поле Имя (Name) должно описывать суть проблемы. К примеру, предложение «IMAP порт не отвечает на сервере123» вносит гораздо больше ясности, чем «Почта упала». Это тот текст, который вы захотите увидеть в электронном письме, на странице Zabbix или в SMS-сообщении, поэтому позаботьтесь о его ясности и информативности.

Поле Выражение (Expression) содержит имя наблюдаемого Элемента данных и граничное значение. К примеру, в данном случае выражение <10″ , что означает отслеживать машину с именем Template_Linux и его ключ vfs.fs.size[/,pfree] . Если последнее значение окажется меньше 10, тогда назначить триггеру важность Высокая (High). Нажмите Выбрать (Select). Здесь вы можете сменить выражение, по которому срабатывает триггер. Можно работать со средними, абсолютными значениями или максимальным значением за определенный период времени. Сейчас, однако, я оставлю триггер как есть, изменю лишь значение, по которому он срабатывает. Поэтому закрываем всплывающее окно Условие (Condition) и меняем граничное значение на 5% — изменяем в конце строки число 10 на 5. Сохраним изменения, нажав кнопку Сохранить (Save).

Действия (Actions)

Действия происходят при срабатывании триггера. Действием может быть сообщение электронной почты, SMS- или Jabber-сообщение, либо запуск внешнего скрипта. Давайте настроим отправку e-mail администратору (т.е. нам) в случае срабатывания любого триггера с важностью Чрезвычайная (Disaster). Выберите Настройка → Действия (Configuration → Actions), потом нажмите кнопку Создать действие (Create Action) в правой верхней части экрана. Появится окно Настройка действий (Configuration of Actions, см. скриншот 9). Введите в поле Имя (Name) что-нибудь информативное и нажмите кнопку Новый (New) в секции Условия действия (Action conditions). Выберите Важность триггера (Trigger severity) из появившейся секции Новое условие (New Condition) и поменяйте его значение с Информация (Information) на Чрезвычайная (Disaster). Нажмите кнопку Добавить (Add). Потом нажмите кнопку Новая (New) в другой секции — Операции действия (Action operations). Настройте отправку сообщений одному администратору Admin (см. скриншот 10). Нажмите Добавить (Add). Наконец, нажмите кнопку Сохранить (Save). Теперь при срабатывании любого триггера, важность которого установлена как Чрезвычайная, пользователю Admin будет отправлено электронное письмо. Можно создавать действия для отдельных триггеров и для отдельных хостов, а действие, которое мы только что создали, действует глобально. Не забывайте, что это всего лишь пример.


Скриншот 9. Окно Настройка действий
Скриншот 10. Настраиваем операции

Ежедневный мониторинг

Есть множество способов наблюдать за настроенными клиентами. По моему мнению, наиболее информативным окном является Мониторинг → Триггеры (убедитесь в том, что в выпадающих меню справа Группа (Group) и Узел сети (Host) выбрано все (all). В этом окне Zabbix показывает все активные триггеры, их уровень важности, дата последнего изменения (Возраст) и другие поля. Это окно можно рассматривать как список незавершенных дел системного администратора.

Вышел Zabbix 5.4: что нового?

В новом Zabbix 5.4: отчёты в PDF, улучшенная визуализация данных; поддержка токенов для доступа к прикладному интерфейсу, тегов для метрик, нового синтаксиса для сложных проблем и много чего ещё.

Zabbix — свободное ПО для мониторинга. Оно состоит из трёх частей: сервера для внутренних процессов, агентов для работы на стороне хостов и фронтенда для управления. Zabbix распространяется под лицензией GPLv2.

Что нового в Zabbix 5.4?

  • Появились PDF-отчёты: их можно планировать и отправлять пользователям. Ещё появилась новая роль для контроля доступа к этой функции.
  • Сделали новый синтаксис для триггерных выражений, вычисляемых и агрегатных метрик. Избавились от всех ограничений старого синтаксиса и сделали его проще.
  • Агрегатные метрики теперь могут выбирать данные по тегам и трафаретам хостов и ключам метрик.
  • Функционал экранов и досок объединили, появилась поддержка многостраничных досок.
  • Появилась поддержка именованных токенов для доступа к API, а к токену можно указать срок его действия.
  • Поддержка тегов на уровне метрик. Applications больше не поддерживаются.

Улучшили производительность и доступность:

  • Для поллеров больше не нужно подключение к базе данных
  • Появился кэш для более быстрой обработки trends
  • Поддержка более надёжного и плавного старта сервера в условиях получения и обработки огромного количества новых данных
  • Улучшили параллельную работу с данными на сервере и прокси

Улучшили безопасность:

  • Добавили поддержку всех протоколов шифрования SNMPv3.
  • Скрыли детали ошибки в случае неудачного подключения к интерфейсу.
  • Автозаполняемость отключили для полей с паролями и другой чувствительной информацией.
  • Добавили поддержка NTML аутентификации для WEB hooks.

Упростили работу и настройку мониторинга:

  • Добавили меню третьего уровня для лучшей навигации.
  • Сделали формы для операций массовых изменений и импорта проще.
  • Доступность метрик теперь зависит от доступности интерфейсов хоста.
  • Теперь можно использовать отрицательные фильтры для тегов в интерфейсе.
  • Добавили поддержку value maps на уровне шаблонов и хостов для независимости шаблонов.
  • Глобальные скрипты теперь можно использовать для алертов, интеграций и пользовательских команд.
  • Добавили поддержку обработки XML данных в препроцессинге и WEB hooks
  • CurlHttpRequest переименовали в HttpRequest в WEB hooks

Прочее:

  • Мониторинг кластеров VMWare
  • Поддержка Oracle в режиме кластера
  • Работа макроса для алертов
  • Более гранулярная настройка экспорта событий

Доступность официальных пакетов для актуальных версий следующих платформ:

  • Linux-дистрибутивы RHEL, CentOS, Debian, SuSE, Ubuntu, Raspbian на различных архитектурах
  • Систем виртуализации на базе VMWare, VirtualBox, Hyper-V, XEN
  • Docker
  • Агенты для всех платформ включая macOS и MSI для Windows agent

Интеграция с платформами:

  • Доступность в облачных платформах AWS, Azure, Google Cloud, Digital Ocean, IBM/RedHat Cloud, Linode, Yandex Cloud.
  • Интеграция с платформами службы поддержки Jira, Jira ServiceDesk, Redmine, ServiceNow, Zendesk, OTRS, Zammad, Solarwinds Service Desk, TOPdesk, SysAid, iTOP
  • Интеграция с системами оповещения пользователей Slack, Pushover, Discord, Telegram, VictorOps, Microsoft Teams, SINGNL4, Mattermost, OpsGenie, PagerDuty, iLert, Rocket.Chat, Signal, Express.ms
  • Новые шаблонные решения по мониторингу APC UPS, Hikvision, etcd, Hadoop, Zookeeper, Kafka, AMQ, HashiCorp Vault, MS Sharepoint, MS Exchange, smartctl, Gitlab, Jenkins, Apache Ignite

Для перехода с более ранних версий нужно установить новые бинарные файлы сервера/прокси и новый интерфейс. Zabbix автоматически обновит базу данных. Установка новых агентов не нужна.

Media UniX

freebsd команды, настройка, установка сервера и не только

zabbix и мониторинг трафика mikrotik

ubuntu server mikrotik snmp zabbix
Чтобы не утомлять читателя, сразу скажу, что в итоге получим график использования интерфейса mikrotik с помощью snmp в zabbix на ubuntu server.
В этой статье мы уже касались вопроса того, как узнать нужный параметр OID на mikrotik для последующего его мониторинга. Итак я хочу получить графики текущего трафика wireless интерфейсов mikrotik. Первым делом с помощью утилиты winbox подключаемся к настроенному mikrotik с запущенным snmp. Слева в столбце выбираем «New Terminal» и там выполняем команду:
interface print oid
ubuntu server mikrotik snmp interface

Увидим список интерфейсов с параметрами. Чтобы понять, какой из интерфейсов перед нами в терминал выведен, переключаемся в ubuntu server с установленным snmpwalk (там же у меня запущен zabbix server) и пробуем запросить значение OID. Например на изображении выше видно:
0 R name=.1.3.6.1.2.1.2.2.1.2.1 actual-mtu=.1.3.6.1.2.1.2.2.1.4.1
mac-address=.1.3.6.1.2.1.2.2.1.6.1 admin-status=.1.3.6.1.2.1.2.2.1.7.1
oper-status=.1.3.6.1.2.1.2.2.1.8.1 bytes-in=.1.3.6.1.2.1.31.1.1.1.6.1
packets-in=.1.3.6.1.2.1.31.1.1.1.7.1 discards-in=.1.3.6.1.2.1.2.2.1.13.1
errors-in=.1.3.6.1.2.1.2.2.1.14.1 bytes-out=.1.3.6.1.2.1.31.1.1.1.10.1
packets-out=.1.3.6.1.2.1.31.1.1.1.11.1
discards-out=.1.3.6.1.2.1.2.2.1.19.1 errors-out=.1.3.6.1.2.1.2.2.1.20.1

1 S name=.1.3.6.1.2.1.2.2.1.2.2 actual-mtu=.1.3.6.1.2.1.2.2.1.4.2
mac-address=.1.3.6.1.2.1.2.2.1.6.2 admin-status=.1.3.6.1.2.1.2.2.1.7.2
oper-status=.1.3.6.1.2.1.2.2.1.8.2 bytes-in=.1.3.6.1.2.1.31.1.1.1.6.2
packets-in=.1.3.6.1.2.1.31.1.1.1.7.2 discards-in=.1.3.6.1.2.1.2.2.1.13.2
errors-in=.1.3.6.1.2.1.2.2.1.14.2 bytes-out=.1.3.6.1.2.1.31.1.1.1.10.2
packets-out=.1.3.6.1.2.1.31.1.1.1.11.2
discards-out=.1.3.6.1.2.1.2.2.1.19.2 errors-out=.1.3.6.1.2.1.2.2.1.20.2

2 S name=.1.3.6.1.2.1.2.2.1.2.3 actual-mtu=.1.3.6.1.2.1.2.2.1.4.3
mac-address=.1.3.6.1.2.1.2.2.1.6.3 admin-status=.1.3.6.1.2.1.2.2.1.7.3
oper-status=.1.3.6.1.2.1.2.2.1.8.3 bytes-in=.1.3.6.1.2.1.31.1.1.1.6.3
packets-in=.1.3.6.1.2.1.31.1.1.1.7.3 discards-in=.1.3.6.1.2.1.2.2.1.13.3
errors-in=.1.3.6.1.2.1.2.2.1.14.3 bytes-out=.1.3.6.1.2.1.31.1.1.1.10.3
packets-out=.1.3.6.1.2.1.31.1.1.1.11.3

На самом деле интерфейсов больше, они в терминале mikrotik отобразятся ниже, я не стал их все выводить сюда.
В консоли ubuntu server и опросим name интерфейса из моего примера с цифрой 1 :
sudo snmpwalk -v2c -c public 10.36.21.31 .1.3.6.1.2.1.2.2.1.2.2

ubuntu server mikrotik snmp zabbix

Здесь:
public — данные для авторизации по snmp на mikrotik
10.36.21.31 — ip-адрес mikrotik
.1.3.6.1.2.1.2.2.1.2.2 — параметр из списка, полученного в терминале mikrotik при выполнении команды interface print oid
Увидим:
iso.3.6.1.2.1.2.2.1.2.2 = STRING: «ether2»
Получается, что это ether2. Для примера опросим .1.3.6.1.2.1.2.2.1.2.3
sudo snmpwalk -v2c -c public 10.36.21.31 .1.3.6.1.2.1.2.2.1.2.3
Видим:
iso.3.6.1.2.1.2.2.1.2.3 = STRING: «ether3»
Значит это интерфейс ether3.
Думаю идея понятна, таким образом я нашёл на mikrotik 2 точки wireless:
sudo snmpwalk -v2c -c public 10.36.21.31 .1.3.6.1.2.1.2.2.1.2.6
iso.3.6.1.2.1.2.2.1.2.6 = STRING: «wlan1»
sudo snmpwalk -v2c -c public 10.36.21.31 .1.3.6.1.2.1.2.2.1.2.7
iso.3.6.1.2.1.2.2.1.2.7 = STRING: «wlan2»
wlan1 — у меня это 2Ghz
wlan2 — у меня это 5Ghz
Удостовериться, что это wi-fi точки, можно перейдя в mikrotik в раздел «Interfaces», той же колонке, где запускали «New Terminal».
Теперь разберёмся на примере wlan2 (на wlan1) будет тот же самый смысл, главное не перепутать OID`ы.
Итак команда interface print oid в ubuntu server показала такие возможные варианты для запросов значений:
6 RS name=.1.3.6.1.2.1.2.2.1.2.7 actual-mtu=.1.3.6.1.2.1.2.2.1.4.7
mac-address=.1.3.6.1.2.1.2.2.1.6.7 admin-status=.1.3.6.1.2.1.2.2.1.7.7
oper-status=.1.3.6.1.2.1.2.2.1.8.7 bytes-in=.1.3.6.1.2.1.31.1.1.1.6.7
packets-in=.1.3.6.1.2.1.31.1.1.1.7.7 discards-in=.1.3.6.1.2.1.2.2.1.13.7
errors-in=.1.3.6.1.2.1.2.2.1.14.7 bytes-out=.1.3.6.1.2.1.31.1.1.1.10.7
packets-out=.1.3.6.1.2.1.31.1.1.1.11.7
discards-out=.1.3.6.1.2.1.2.2.1.19.7 errors-out=.1.3.6.1.2.1.2.2.1.20.7
Здесь меня интересуют bytes-in и bytes-out. Получим значение bytes-in:
sudo snmpwalk -v2c -c public 10.36.21.31 .1.3.6.1.2.1.31.1.1.1.6.7
получим:
iso.3.6.1.2.1.31.1.1.1.6.7 = Counter64: 398961550
и ещё получим bytes-out:
sudo snmpwalk -v2c -c public 10.36.21.31 .1.3.6.1.2.1.31.1.1.1.10.7
получил:
iso.3.6.1.2.1.31.1.1.1.10.7 = Counter64: 15838475674
Запросив значения этих параметров следующий раз, получим уже другие значения. Данные значит мы получаем, теперь надо добавить из отобразить в zabbix server. Хост c mikrotik у нас уже добавлен и мониторинг его по snmp настроен, поэтому можем сразу переходить к добавлению нового item к этому хосту. Для этого переходим в web-интерфейсе zabbix-server в раздел Configuration — Hosts, ищем строку с нашим хостом mikrotik и справа от него нажимаем на ссылку «items». Появляется страница со списком item, качающихся этого хоста. Жмём в правом верхнем углу «Create item»:

ubuntu server mikrotik snmp zabbix

И заполняем строки:
Name: wlan1-out-5ghz (можно произвольное своё)
Type: SNMP agent
Key: mikrotik.interface.traffic.out.5ghz (можно произвольный свой)
Host interface: ip-адрес mikrotik и порт snmp
SNMP OID: .1.3.6.1.2.1.31.1.1.1.10.7 (самая важная строка, будет меняться в зависимости о того, какие параметры с mikrotik мы хотим считывать)
Type of information: Numeric (float)
Units: bps
Update interval: 15s (частота опроса данных)

ubuntu server mikrotik snmp zabbix

Во вкладке Preprocessing, так же надо добавить две обработки.
1) change per second
2) custom multiplier = 8

ubuntu server mikrotik snmp zabbix

Сохраняем. Таким образом мы создали item с информацией о исходящем трафике на точке доступа 5Ghz. Точно так же надо создать item с информацией о входящем трафике. Самым важным параметром здесь будет верно указанный OID. Для входящего он будет .1.3.6.1.2.1.31.1.1.1.6.7 и именно его и надо указывать в SNMP OID при создании нового item.

ubuntu server mikrotik snmp zabbix

Осталось самое простое — создать график. В zabbix в настройках хоста mikrotik переходим в раздел Graphs и справа сверху нажимаем «Create graph»:

ubuntu server mikrotik snmp zabbix

Заполняем и выбираем items:

ubuntu server mikrotik snmp zabbix

Сохраняем и можем радоваться новым данным в системе мониторинга и новому графику.
Пример графика:

Мониторинг 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.

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

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

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

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

Подключаемся к микротику по 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 в Zabbix

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

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

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

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

Часть данных увидите сразу, а та, что поступает через правила автообнаружения, появится позже. Надо подождать. После того, как отработают все правила автообнаружения, рекомендую сходить на хост и поотключать то, что вам не нужно. К примеру, если у вас настроен 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 и добавляйте новое действие.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector