Что такое Zabbix
Zabbix был создан Алексеем Владишевым и в настоящее время активно развивается и поддерживается компанией Zabbix SIA.
Zabbix — это распределённое решение корпоративного класса для мониторинга с открытым исходным кодом.
Zabbix — это программное обеспечение, которое отслеживает многочисленные параметры сети, а также состояние и целостность серверов, виртуальных машин, приложений, сервисов, баз данных, веб-сайтов, облачной инфраструктуры и многого другого. Zabbix использует гибкий механизм уведомлений, который позволяет пользователям настраивать оповещения по электронной почте практически для любого события. Это позволяет быстро реагировать на проблемы сервера. Zabbix предлагает отличные возможности создания отчётов и визуализации данных на основе сохранённых данных. Это делает Zabbix идеальным решением для планирования мощностей.
Zabbix поддерживает как опрос, так и получение данных в режиме trapper. Все отчёты и статистика Zabbix, а также параметры конфигурации, доступны через веб-интерфейс. Веб-интерфейс обеспечивает возможность оценивать состояние вашей сети и работоспособность ваших серверов из любого места. При правильной настройке Zabbix может играть важную роль в мониторинге IT-инфраструктуры. Это в равной степени справедливо как для небольших организаций с несколькими серверами, так и для крупных компаний с множеством серверов.
Zabbix распространяется бесплатно. Zabbix написан и распространяется по лицензии AGPL-3.0. Это означает, что его исходный код свободно распространяется и доступен широкой общественности.
Доступна коммерческая поддержка, предоставляемая компанией Zabbix и её партнёрами по всему миру.
Подробнее о возможностях Zabbix.
Пользователи Zabbix
Многие организации разного масштаба по всему миру используют Zabbix в качестве основной платформы мониторинга.
Архитектура
Zabbix состоит из нескольких основных программных компонентов. Их назначение описано ниже.
Сервер
Сервер Zabbix — это центральный компонент, на который агенты отправляют информацию о доступности, целостности и статистике. Сервер является центральным хранилищем, в котором сохраняются все данные конфигурации, статистики и эксплуатации.
Хранение базы данных
Вся информация о конфигурации, а также данные, собранные Zabbix, хранятся в базе данных.
Веб-интерфейс
Для удобного доступа к Zabbix из любого места и с любой платформы предусмотрен веб-интерфейс. Он является частью сервера Zabbix и обычно (но не обязательно) работает на той же физической машине, что и сервер.
Прокси
Прокси Zabbix может собирать данные о производительности и доступности от имени сервера Zabbix. Прокси является необязательной частью развертывания Zabbix; однако он может быть очень полезен для распределения нагрузки одного сервера Zabbix.
Агент
Агенты Zabbix разворачиваются на объектах мониторинга для активного мониторинга локальных ресурсов и приложений и передачи собранных данных на Zabbix сервер. Начиная с Zabbix 4.4, доступны два типа агентов: Zabbix agent (легковесный, поддерживается на многих платформах, написан на C) и Zabbix agent 2 (дополнительно гибкий, легко расширяется с помощью плагинов, написан на Go).
Поток данных
Кроме того, важно сделать шаг назад и взглянуть на общий поток данных в Zabbix. Чтобы создать элемент данных, который собирает данные, сначала необходимо создать узел сети. Если перейти к другой стороне спектра Zabbix, то для создания триггера сначала необходимо иметь элемент данных. Для создания действия необходим триггер. Таким образом, если вы хотите получать оповещение о том, что загрузка CPU слишком высока на Server X, сначала необходимо создать запись узла сети для Server X, затем элемент данных для мониторинга его CPU, затем триггер, который срабатывает, если загрузка CPU слишком высока, и после этого действие, которое отправит вам электронное письмо. Хотя это может показаться большим количеством шагов, при использовании шаблонов это совсем не так. Однако благодаря такой архитектуре можно создать очень гибкую конфигурацию.
Возможности
Zabbix — это высокоинтегрированное решение для мониторинга сети, предлагающее множество возможностей в одном пакете.
- проверки доступности и производительности
- поддержка SNMP (как trapper, так и polling), IPMI, JMX, мониторинга VMware
- пользовательские проверки
- сбор необходимых данных с произвольными интервалами
- выполняется сервером/прокси и агентами
- вы можете определять очень гибкие пороги проблем, называемые триггерами, с использованием значений из внутренней базы данных
Широкие возможности настройки оповещений
- отправку уведомлений можно настраивать по расписанию эскалации, получателю, типу медиа
- уведомления можно сделать содержательными и полезными с помощью макропеременных
- автоматические действия включают удалённые команды
Построение графиков в реальном времени
- отслеживаемые элементы данных немедленно отображаются на графиках с использованием встроенной функциональности построения графиков
- Zabbix может отслеживать последовательность имитируемых щелчков мышью на веб-сайте и проверять функциональность и время отклика
Широкие возможности визуализации
- возможность создавать пользовательские графики, объединяющие несколько элементов данных в одном представлении
- карты сети
- слайд-шоу в стиле панели мониторинга
- отчёты
- высокоуровневое (бизнес-) представление отслеживаемых ресурсов
- данные хранятся в базе данных
- настраиваемая история
- встроенная процедура очистки устаревших данных
- добавление отслеживаемых устройств как узлов сети
- узлы сети начинают отслеживаться после добавления в базу данных
- применение шаблонов к отслеживаемым устройствам
- группировка проверок в шаблонах
- шаблоны могут наследовать другие шаблоны
- автоматическое обнаружение сетевых устройств
- авторегистрация агента
- обнаружение файловых систем, сетевых интерфейсов и SNMP OID
- веб-интерфейс на PHP
- доступен откуда угодно
- удобная навигация по интерфейсу
- журнал аудита
- Zabbix API предоставляет программируемый интерфейс к Zabbix для массовых операций, интеграции со сторонним программным обеспечением и других целей.
- безопасная аутентификация пользователей
- для определённых пользователей можно ограничить доступ определёнными представлениями
Полнофункциональный и легко расширяемый агент
- развёртывается на целевых системах мониторинга
- может быть развёрнут как на Linux, так и на Windows
- написаны на C для высокой производительности и малого потребления памяти
- легко портируются
- удалённый мониторинг упрощается благодаря использованию прокси Zabbix
Глоссарий
В этом разделе вы можете узнать значение некоторых терминов, часто используемых в Zabbix.
- любое физическое или виртуальное устройство, приложение, служба или любая другая логически связанная совокупность контролируемых параметров.
- логическая группировка узлов сети. Группы узлов сети используются при назначении прав доступа к узлам сети для различных групп пользователей.
- определённая единица данных, которую вы хотите получать от узла сети, метрика данных.
- преобразование полученного значения метрики перед сохранением в базу данных.
- логическое выражение, определяющее порог проблемы и используемое для "оценки" данных, полученных в элементах данных.
Когда полученные данные превышают порог, триггеры переходят из состояния 'Ok' в состояние 'Problem'. Когда полученные данные ниже порога, триггеры остаются в состоянии/возвращаются в состояние 'Ok'.
- набор сущностей (элементов данных, триггеров, графиков, правил обнаружения низкого уровня, веб-сценариев), готовый к применению к одному или нескольким узлам сети.
Назначение шаблонов — ускорить развертывание задач мониторинга на узле сети, а также упростить массовое внесение изменений в задачи мониторинга. Шаблоны привязываются непосредственно к отдельным узлам сети.
- логическая группировка шаблонов. Группы шаблонов используются при назначении прав доступа к шаблонам для различных групп пользователей.
- единичный случай чего-либо, заслуживающего внимания, например изменение состояния триггера или выполнение обнаружения/авторегистрации агента.
- предопределённая метка для события. Она может использоваться в корреляции событий, детализации прав доступа и т. д.
- метод гибкого и точного сопоставления проблем с их устранением.
Например, вы можете определить, что проблема, о которой сообщил один триггер, может быть устранена другим триггером, который может даже использовать другой метод сбора данных.
- триггер, находящийся в состоянии "Problem".
- параметры управления проблемой, предоставляемые Zabbix, такие как добавление комментария, подтверждение, изменение важности или ручное закрытие.
- предопределённый способ реагирования на событие.
Действие состоит из операций (например, отправки уведомления) и условий (когда выполняется операция)
- пользовательский сценарий выполнения операций в рамках действия; последовательность отправки уведомлений/выполнения удалённых команд.
- заполнитель переменной, который разрешается в конкретное значение в зависимости от контекста.
- средство доставки уведомлений; канал доставки.
- сообщение о каком-либо событии, отправленное пользователю через выбранный канал оповещения.
- предопределённая команда, которая автоматически выполняется на контролируемом узле сети при выполнении некоторого условия.
- один или несколько HTTP-запросов для проверки доступности веб-сайта.
- веб-интерфейс, поставляемый с Zabbix.
- настраиваемый раздел веб-интерфейса, отображающий сводки и визуализации важной информации в визуальных блоках, называемых виджетами.
- визуальный блок, отображающий информацию определённого вида и источника (сводку, карту, график, часы и т. д.), используемый на панели мониторинга.
- Zabbix API позволяет использовать протокол JSON RPC для создания, обновления и получения объектов Zabbix (таких как узлы сети, элементы данных, графики и другие) или выполнения любых других пользовательских задач.
- центральный процесс программного обеспечения Zabbix, который выполняет мониторинг, взаимодействует с прокси Zabbix и агентами, вычисляет триггеры, отправляет уведомления; центральное хранилище данных.
- процесс, который может собирать данные от имени сервера Zabbix, снимая часть нагрузки по обработке с сервера.
- процесс, развернутый на объектах мониторинга для активного мониторинга локальных ресурсов и приложений.
- новое поколение агента Zabbix для активного мониторинга локальных ресурсов и приложений, позволяющее использовать пользовательские плагины для мониторинга.
Поскольку агент Zabbix 2 разделяет значительную часть функциональности с агентом Zabbix, термин "агент Zabbix" в документации обозначает оба варианта — агент Zabbix и агент Zabbix 2, если функциональное поведение одинаково. Агент Zabbix 2 отдельно упоминается только там, где его функциональность отличается.
- поддержка шифрованного обмена данными между компонентами Zabbix (сервер, прокси, агент, утилиты zabbix_sender и zabbix_get) с использованием протокола Transport Layer Security (TLS).
- автоматизированный процесс, при котором сам агент Zabbix регистрируется как узел сети и начинает мониторинг.
- автоматическое обнаружение сетевых устройств.
- автоматическое обнаружение низкоуровневых сущностей на конкретном устройстве (например, файловых систем, сетевых интерфейсов и т. д.).
правило обнаружения низкого уровня
- набор определений для автоматического обнаружения низкоуровневых сущностей на устройстве.
- метрика с определёнными параметрами в качестве переменных, готовая для обнаружения низкого уровня. После обнаружения низкого уровня переменные автоматически подставляются реальными обнаруженными параметрами, и метрика автоматически начинает собирать данные.
- триггер с определёнными параметрами в качестве переменных, готовый для обнаружения низкого уровня. После обнаружения низкого уровня переменные автоматически подставляются реальными обнаруженными параметрами, и триггер автоматически начинает оценивать данные.
Прототипы некоторых других сущностей Zabbix также используются в обнаружении низкого уровня — прототипы графиков, прототипы узлов сети, прототипы групп узлов сети.