Zabbix правило обнаружения

Низкоуровневое обнаружение в ZABBIX: правила LLD

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

Процесс создания шаблонов мониторинга на основе LLD я разобью на две статьи. В первой (то есть в этой) расскажу конкретно про обнаружение, а во второй про все остальное.

Если вам интересна тематика ZABBIX, рекомендую обратиться к основной статье — Система мониторинга ZABBIX, в ней вы найдете дополнительную информацию.

Низкоуровневое обнаружение в ZABBIX: правила LLD

В официальной документации эта тема 1 рассмотрена подробно, но на мой взгляд примеры слишком узкие (штатное обнаружение файловых систем, snmp OID’ов и сетевых интерфейсов) и обсуждение вопроса начинается совсем не с того конца. По поводу пользовательских правил обнаружения присутствует лишь небольшая «приписка» в самом конце с примером скрипта на perl (!).

Мне же хочется рассмотреть вопрос значительно шире, но в то же время на конкретных примерах. Я расскажу об LLD на основе задачи анализа данных производительности дисковой подсистемы Linux-серверов. Метрики производительности буду получать утилитой iostat (пакет sysstat). Пример вывода данных:

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

Для тех, кто ещё не знает о чем идет речь, небольшое пояснение на основе простого примера:

у вас есть сервер, на сервере один жесткий диск. Вам нужно отслеживать набор метрик этого диска. Вы без труда создаете шаблон, наполняете его ключами данных, триггерами и прочими элементами и ставите на мониторинг. Далее вам нужно мониторить второй сервер, на котором два диска (разумеется с разными именами). Перед вами встает задача написать новый или дополнить существующий шаблон ещё одним диском с точно такими же метриками. А что, если потом у вас появится сервер с 10 дисками или более?

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

Для создания правила обнаружения необходимо зайти в шаблон мониторинга (или создать новый, если его ещё нет) — Правила обнаружения — Создать правило обнаружения:

Подавляющее большинство параметров произвольные и вы можете выбрать для них любые значения, но все же я поясню некоторые моменты:

  • Имя — любое на ваш вкус;
  • Тип — только Zabbix агент;
  • Ключ — выберите любой, но потом вы должны использовать это же имя ключа в конфигурации агента Zabbix;
  • Интервал обновлений — не выставляйте слишком маленький интервал, ведь аппаратная конфигурация сервера обычно меняется редко. Для отладки можете использовать значение в 60 сек., чтобы не ждать слишком долго;
  • Фильтр — имя макроса, которое будет использоваться для извлечения имен блочных устройств (актуально для моего примера. У вас это может быть что-то другое, например имена сетевых интерфейсов). Макрос должен быть заключен в <#>, в имени допускается использование символов A-Z , 0-9 , _;

Нажимайте Сохранить и на этом этапе работы на стороне сервера Zabbix завершены, в следующих статьях мы сюда ещё вернемся.

Агент должен возвращать серверу набор отслеживаемых элементов в формате json (список блочных устройств, если опираться на мой пример). Это главное и единственное требование. Каким образом вы это реализуете уже не так важно. Данные в человекочитаемом виде могут выглядеть так:

blog.bissquit.com

Допустим, мы хотим настроить обнаружение для локальной сети с IP диапазоном 192.168.1.1-192.168.1.255.

В нашем случае мы хотим получить:

Установим правило обнаружения в сети для нашего диапазона IP адресов.

Zabbix будет пытаться обнаружить узлы сети в диапазоне IP адресов 192.168.1.1-192.168.1.255, пытаясь подключиться к Zabbix агенту и получить значение ключа system.uname. Полученное значение от агента может быть использовано для создания различных действий для разных операционных систем. Например, присоединить шаблон Windows_Template к Windows серверам, шаблон Linux_Template к Linux серверам.

Правило будет выполняться каждые 10 минут (600 секунд).

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

Определим действие для добавления новых обнаруженных Linux серверов в соответвующие группы/шаблоны.

Это действие выполняется если:

Это действие будет выполнять следующие операции:

Определим действие для добавления новых обнаруженных Windows серверов в соответвующие группы/шаблоны.

Определим действия для удаления потерянных серверов.

Сервер будет удален из мониторинга, если сервис “Zabbix агент” будет ‘Недоступен’ на протяжении более 24 часов (86400 секунд).

www.zabbix.com

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

При наличии настроенного должным образом сетевого обнаружения вы сможете:

Обнаружение сетевых устройств в Zabbix базируется на основе следующей информации:

Обнаружение НЕ предусматривает:

В основном обнаружение устройств сети состоит из двух этапов: обнаружение и действия.

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

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

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

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

События обнаружения могут быть основой соответствующих действий, таких как:

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

Узел сети добавляется, если выбрана операция Добавить узел сети. Узел сети также добавляется, даже если операция Добавить узел сети пропущена, если вы выбрали операции приводящие к действиям над узлом сети. Такие операции, как:

При добавлении узлов сети, имя узла сети является результатом обратного преобразования или IP адресом, в случае, если обратное преобразование неудачно. Преобразование выполняется на строне Zabbix сервера или Zabbix прокси, в зависимости от того, кто выполняет обнаружение. Если преобразование неудачно на прокси, оно не повторяется на стороне сервера. Если узел сети с таким же именем уже существует, следующий узел сети получит приставку к имени _2, затем _3 и так далее.

Созданные узлы сети добавляются в группу Discovered hosts (по умолчанию, настраивается в Администрирование > Общие > Прочие). Если вы желаете, чтобы узлы сети добавлялись в другую группу, добавьте операцию Удалить из групп узлов сети (укажите “Discovered hosts”) и также добавьте операцию Добавить в группы узлов сети (укажите другую группу узлов сети), так как узел сети должен принадлежать по крайней мере одной группе узлов сети.

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

Создание интерфейсов при добавлении узлов сети

Когда узлы сети добавляются в результате сетевого обнаружения, они получают интерфейсы созданные в соответствии со следующими правилами:

www.zabbix.com

Список правил низкоуровневого обнаружения в шаблонах можно найти, нажав на Обнаружение напротив требуемого шаблона, в Настройка > Шаблоны.

Список правил низкоуровневого обнаружения в узлах сети можно найти, нажав на Обнаружение напротив требуемого узла сети, в Настройка > Узлы сети.

Здесь отображается список существующих правил низкоуровневого обнаружения.

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

Опции массового редактирования

Кнопки ниже списка предлагают некоторые опции массового редактирования:

Для использования этих опций, отметьте соответствующие правила обнаружения, затем нажмите на требуемую кнопку.

www.zabbix.com

Начиная с Zabbix 2.2.0 узлы сети обнаруженные разными zabbix прокси всегда воспринимаются как разные узлы сети. До тех пор пока разрешено осуществлять поиск по совпадающим IP диапазонам в разных подсетях, изменение прокси для подсети уже находящейся под наблюдением усложняется тем, что все изменения необходимо также применить ко всем уже обнаруженным узлам сети. Примерный план для замены прокси в правиле обнаружения:

Допустим, мы хотим настроить обнаружение для локальной сети, имеющей диапазон IP адресов 192.168.1.1-192.168.1.254.

В нашем сценарии мы хотим получить:

Добавим правило обнаружения в сети для нашего диапазона IP адресов.

Zabbix будет пытаться обнаружить узлы сети в диапазоне IP адресов 192.168.1.1-192.168.1.254, пытаясь подключиться к Zabbix агенту и получить значение ключа system.uname. Полученное значение от агента можно использовать для выполнения различных действий для разных операционных систем. Например, присоединение шаблона Template OS Windows к Windows серверам, шаблона Template OS Linux к Linux серверам.

Правило будет выполняться каждые 10 минут (600 секунд).

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

Определим действие для добавления обнаруженных Linux серверов в соответвующие группы/шаблоны.

Это действие активируется, если:

Это действие будет выполнять следующие операции:

Зададим действие для добавления обнаруженных Windows серверов в соответвующие группы/шаблоны.

Зададим действие для удаления потерянных серверов.

Сервер будет удален из конфигурации, если сервис “Zabbix агент” ‘Недоступен’ на протяжении более чем 24 часов (86400 секунд).

www.zabbix.com