Сегодня я расскажу о важной части системы мониторинга Zabbix — низкоуровневом обнаружении, или Low Level Discovery. Статья познакомит тебя с базовыми сведениями об этой интересной функции и поможет автоматизировать твою систему мониторинга и вывести ее на новый уровень.
Идея такой статьи родилась у меня, когда я вспомнил забавный эпизод из практики — впрочем, не то чтобы из ряда вон выходящий. Но прежде чем я им поделюсь, давай условимся, что ты уже развернул систему мониторинга Zabbix и подключил все необходимые хосты.
Не секрет, что правильно настроенный мониторинг в 99 случаях из 100 позволяет избежать крупной аварии в информационной системе. Авария может быть любого типа: от простых пятисотых ошибок на фронтенде до ужасающих отставаний репликации на серверах баз данных и до еще более ужасного выхода железа из строя. Во всех этих случаях нас спасает система мониторинга. Как показывает практика, грамотно настроенный мониторинг творит чудеса, бережет нервы и греет душу.
На начальном этапе развития системы все просто. Есть от двух до десяти серверов, и все настройки можно проставить вручную. А как быть, когда система постепенно, но неумолимо растет? Когда серверов уже не десять, а пятьдесят или сто? Справиться как раз и помогает механизм Low Level Discovery.
Низкоуровневое обнаружение (я буду сокращать до LLD) дает возможность автоматизировать создание метрик (элементов данных), хостов, триггеров и графиков для разных объектов в системе мониторинга. Как пример можно привести мониторинг файловых систем и разделов в Linux — низкоуровневое обнаружение уже идет в поставке Zabbix для этой ОС. Делать тут ничего не надо, достаточно завести нужные хосты в группу, и все.
Мониторинг сетевых интерфейсов в Zabbix — это тоже низкоуровневые обнаружения. Кстати, можно настроить автоматическое удаление объектов из мониторинга по результатам проводимых обнаружений. И администратор может определить собственные типы обнаружения — достаточно описать их в виде файла JSON.
Но вернемся к обещанной истории из практики. Работал со мной один коллега, начинающий администратор. Ему дали задачу: завести под мониторинг около 270 объектов в Zabbix и настроить по ним триггеры. Казалось бы, все просто. В тот же день спрашиваю его: «Ну как, успел завести, сколько осталось? Готовы ли триггеры?» В ответ слышу: «Сегодня заведу метрики! А завтра сделаю триггеры!»
Задачу при этом нужно было закрыть в тот же день и отчитаться перед начальством. Как оказалось, коллега делал эти объекты вручную по одному. Сказать, что я опешил, — ничего не сказать. Спросил его про LLD, и выяснилось, что он даже не знал о существовании такой вещи. После небольшого экскурса мы закрыли задачу за час вместо двух дней ручной работы.
А теперь я повторю этот экскурс для читателей «Хакера».
LLD появился в Zabbix где-то с версии 2.0. Эта техника применяется не только для автообнаружения на хостах, LLD еще очень хорошо разгружает работу сервера Zabbix. В случае активной проверки сервер Zabbix сам отправляет запрос на хост, чтобы получить метрику. Обычно запрос ставится в очередь наряду со всеми остальными запросами и обрабатывается в порядке очереди, но, если метрик много, сервер будет серьезно загружен. В случае с LLD в режиме проверки хост zabbix-trapper сам отправляет серверу список метрик, а спустя небольшое время — и сами метрики со значениями. То есть нагрузка выходит минимальная. Сервер сам решает, что принимать, а что нет, исходя из настроек.
Реализация технологии LLD на хосте следующая: используется связка «приложение — скрипт — сендер Zabbix — сервер Zabbix». Давай пройдемся по всем этапам, чтобы было понятнее.
Чтобы было наглядней, я подготовил для тебя небольшую графическую схему взаимодействия компонентов. Надеюсь, она тебе поможет.
В остальных вопросах ты можешь смело обращаться к документации Zabbix. Русскоязычная документация лежит в открытом доступе.
Чтобы ясно понимать принципы работы и взаимодействия компонентов в системе, всегда рисуй схему. Это поможет тебе увидеть полную картину работы системы и освежит память в случае, если ты давно не притрагивался к компонентам системы.
Что можно мониторить с помощью LLD? Да все что угодно! Главное — чтобы на хосте было большое количество объектов. Также желательно, чтобы объекты имели структуру. Хороший пример — мониторинг количества сообщений в очередях на сервере RabbitMQ. Общее количество очередей на сервере может быть больше ста штук. А из структуры объектов нам понадобятся только имя очереди на сервере и количество сообщений за последнюю минуту.
Итак, ставим себе задачу.
В этом примере сервер и хост Zabbix развернуты на системе Linux CentOS 7.2. Версия хоста и сервера — 3.4. Ты можешь использовать любой другой дистрибутив операционной системы на свое усмотрение. Версию Zabbix советую использовать выше 2.0.
Переходим к настройке LLD на сервере Zabbix. Необходимо будет настроить шаблон, а внутри него — обнаружение. Все просто.
Материалы из последних выпусков можно покупать отдельно только через два месяца после публикации. Чтобы продолжить чтение, необходимо купить подписку.
Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке
1 год5390 р. Экономия 1400 рублей! |
1 месяц720 р. 25-30 статей в месяц |
Уже подписан?
Читайте также
Последние новости