Zabbix: базовая терминология

После перерыва продолжаем наш цикл статей про zabbix. Для успешной работы необходимо определить несколько основных понятий. Это поможет быстрее "вьехать" в систему и начать работу. Ну и попутно я буду стараться объяснить принципы организации и работы системы мониторинга. Сразу оговорюсь, что большинство терминов будут даны в ключе работы с web-фронтендом, хотя, несомненно, относятся они больше к серверу. Особенностью (не будем спорить: достоинством или недостатком?) системы мониторинга zabbix является её управляемость через веб. Я постарался дать понятия в порядке убывания их важности, поэтому читать этот текст до конца вовсе необязательно :-)

Хост (Host) -- машина (сервер, рабочая станция) или сетевое устройство, которое мониторится. Для успешной работы на хосте должен быть установлен zabbix-агент (или оно должно быть доступно по протоколу SNMP) и он должен быть прописан в мониторинге. Прописывать можно вручную, а можно использовать функцию автоисследования. Для удобства может использоваться Группа хостов (Host Group) -- названия групп могут быть произвольными и отражать принадлежность организационную, территориальную или "религиозную". Группы могут пересекаться между собой и включать друг друга, например: Windows servers, Buhi или 4 etazh.

Айтем (Item) -- параметр, который мониторится на хосте. Айтемом может быть объём свободного места на диске, температура процессора, контрольная сумма файла или какое-то произвольное число, возвращаемое пользовательским плагином. Для удобства в некоторых айтемах можно задать единицу кратности (например 1000 или 1024) и они будут выводиться в понятных человеку кратных величинах (K, M, G). Также в айтеме задаётся интервал его опроса в секундах. Это позволяет более тонко отстроить систему мониторинга: наиболее важные параметры опрашивать чаще, менее важные -- реже. Тем самым снижается нагрузка как на сервер (который может опрашивать сотни хостов и тысячи параметров), так и на хосты с zabbix агентами (которые могут быть весьма и весьма дохлыми).

История значений айтемов хранится в базе данных zabbix -- и это ещё одна причина для оптимизации времени опросов. На основе выборки значений айтемов можно построить график или вывести их в форме таблицы за определённый период.

Естественно, что здесь я не буду описывать все возможные айтемы (тем более, что для разных ОС и платформ они различаются) и отсылаю любопытных к руководству пользователя.

Триггер (Trigger) -- порог айтема, переход через который вызывает срабатывание системы мониторинга. В триггере можно указать как значение и условие (больше, меньше), так и время (мгновенное значение, максимальное, минимальное или среднее за период в секундах). Аналогично айтему, это одно из самых важных понятий zabbix. Для триггера можно задать "серьёзность" и на её основании запрограммировать действия системы мониторинга: ничего не делать, отослать e-mail, отправить SMS, выпольнить скрипт и т.д. В web-интерфейсе есть несколько разных способов наглядно посмотреть текущее состояние триггеров: как всех, так и только сработавших. В zabbix триггеры имеют 6 уровней серьёзности: Not classified, Information, Warning, Average, High, Disaster. Это позволяет адекватно доносить оповещения о разных событиях.

Шаблон (Template) -- название говорит само за себя. Это один из самых мощных инструментов. Можно сделать какую-нибудь типовую конфигурацию в шаблоне, напихать айтемов и триггеров и подключать этот шаблон к хостам. В zabbix начиная с версии 1.4 появилась замечательная возможность "цеплять" к одному хосту несколько шаблонов. Таким образом, можно как из кубиков, лепить из типовых шаблонов вполне работоспособные конфигурации хостов для мониторинга. При установке по умолчанию в системе уже есть несколько дефолтных шаблонов: Template_AIX, Template_App_MySQL, Template_Cisco_2960, Template_Cisco_PIX, Template_Cisco_PIX_525, Template_FreeBSD, Template_Linux, Template_MacOS_X, Template_SNMPv1_Device, Template_SNMPv2_Device, Template_Solaris, Template_Standalone, Template_Windows. Их можно слегка переделать под свои нужды и использовать. Главным образом, переделка заключается в том, чтобы выбросить ненужные айтемы и триггеры. Надо сказать, что система позволяет клонировать как отдельные айтемы и триггеры, так и целые шаблоны, а также копировать айтемы и триггеры между шаблонами и хостами. Так, можно сделать определённый набор айтемов-триггеров на отдельном хосте, отладить их работу, потом создать пустой шаблон, скопировать эти айтемы и триггеры в него и распространить этот шаблон на все остальные хосты такого типа.

Пользователь (User) -- тоже вполне понятное определение. По умолчанию в системе есть пользователи Admin (пользователь с максимальными правами) и Guest (пользователь с минимальными правами). Пользователей можно включать в различные Пользовательские группы (User groups) -- в зависимости от этого будут меняться как их права по настройке системы мониторинга, так и приходящие им оповещения. Так, можно разделить администраторов Linux и Windows, чтобы каждая группа получала свои оповещения. Можно отдельно дать права начальнику -- только получать оповещения, но ничего не менять :-) . Вообще, управление полномочиями пользователей в zabbix устроено очень гибко и по этому поводу я также отсылаю к инструкциии. Говоря о пользователях, нельзя не сказать о таком понятии, как Медия (Media) -- или среда, по которой будут приходить оповещения. У каждого пользователя можно настроить несколько медий: адресов электронной почты, или номеров телефонов для SMS. Причём, в каждой из них отдельно настраивается, какой серьёзности оповещения на неё приходят и в какое время она работает. Например, можно сделать так, чтобы с 9.00 до 18.00 оповещения приходили на емайл, а с 18.00 до 9.00 только оповещения уровня Average и выше отсылались в виде СМСок. Для разграничения группового оповещения есть Действие (Action) -- в нём-то и задаётся: при каком событии (например, срабатывании триггера хоста или группы) какому пользователю или группе пользователей в каком формате (поля также настраиваются) присылать сообщения. И в этом случае сообщения будут доставляться по всем активными в данный момент медиям.

График (Graph) -- помимо простых графиков на каждый айтем (это само собой и встроено в систему), можно сделать сводные графики, на которых набросать несколько айтемов -- например загрузку процессоров нескольких машин. Очень удобно для анализа данных и поиска "узких мест" в системе.

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

Экран (Screen) -- это такой организационный элемент, на котором можно разместить несколько графиков, карт, текстовых данных, историй срабатывания триггеров. Грамотно составленный экран позволяет быстро ориентироваться в критических случаях, предоставляя пользователю всю необходимую информацию.

Отдельно можно сказать о Web-мониторинге, позволяющем отслеживать доступность сайтов и мониторить содержимое страниц (в том числе и закрытых паролями). Это позволяет, к примеру, подключать к мониторингу в zabbix другие средства мониторинга, отдающие свои результаты по HTTP.

Про zabbix можно рассказывать до бесконечности, но думаю, разумнее будет подвести черту и настойчиво порекомендовать изучить инструкцию пользователя -- она написана очень подробно и постоянно дописывается. Конечно, объём инструкции достаточно велик -- но кого же из linux-админов испугаешь километровой докой? ;-)