Что такое Zabbix
Zabbix был создан Алексеем Владышевым и в настоящее время активно разрабатывается и поддерживается компанией Zabbix SIA.
Zabbix — это распределенное решение для мониторинга корпоративного класса с открытым исходным кодом.
Zabbix — это программное обеспечение, которое отслеживает многочисленные параметры сети, а также состояние и целостность серверов, виртуальных машин, приложений, служб, баз данных, веб-сайтов, облака и многого другого. Zabbix использует гибкий механизм уведомлений, который позволяет пользователям настраивать оповещения по электронной почте практически для любого события. Это позволяет быстро реагировать на проблемы с сервером. Zabbix предлагает отличные возможности отчетности и визуализации данных на основе хранимых данных. Это делает Zabbix идеальным для планирования емкости.
Zabbix поддерживает как опрос, так и прием данных. Все отчеты и статистика Zabbix, а также параметры конфигурации доступны через веб-интерфейс. Веб-интерфейс обеспечивает возможность оценивать состояние вашей сети и здоровье ваших серверов из любого места. При правильной настройке Zabbix может играть важную роль в мониторинге ИТ-инфраструктуры. Это в равной степени справедливо как для небольших организаций с несколькими серверами, так и для крупных компаний с множеством серверов.
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 (как trapping, так и polling), IPMI, JMX, мониторинга VMware
- пользовательские проверки
- сбор нужных данных с заданными интервалами
- выполняется сервером/прокси и агентами
- вы можете определять очень гибкие пороги возникновения проблем, называемые триггерами, ссылаясь на значения из базы данных backend
Высоконастраиваемые оповещения
- отправку уведомлений можно настраивать для расписания эскалации, получателя и типа носителя
- уведомления можно сделать понятными и полезными с помощью макропеременных
- автоматические действия включают удаленные команды
Построение графиков в реальном времени
- по контролируемым элементам данных графики строятся немедленно с использованием встроенной функции построения графиков
- Zabbix может отслеживать путь имитируемых щелчков мышью на веб-сайте и проверять функциональность и время отклика
Широкие возможности визуализации
- возможность создавать пользовательские графики, объединяющие несколько элементов данных в одном представлении
- карты сети
- слайд-шоу в виде обзора в стиле панели
- отчеты
- высокоуровневое (бизнес-)представление контролируемых ресурсов
- данные хранятся в базе данных
- настраиваемая история
- встроенная процедура очистки
- добавляйте контролируемые устройства как узлы сети
- узлы сети начинают мониторинг после добавления в базу данных
- применяйте шаблоны к контролируемым устройствам
- группировка проверок в шаблонах
- шаблоны могут наследовать другие шаблоны
- автоматическое обнаружение сетевых устройств
- автоматическая регистрация агента
- обнаружение файловых систем, сетевых интерфейсов и SNMP OID
- веб-интерфейс на PHP
- доступен откуда угодно
- можно переходить по нему кликами
- журнал аудита
- Zabbix API предоставляет программируемый интерфейс к Zabbix для массовых операций, интеграции со сторонним ПО и других целей.
- безопасная аутентификация пользователей
- доступ некоторых пользователей можно ограничить определенными представлениями
Полнофункциональный и легко расширяемый агент
- разворачивается на контролируемых объектах
- может быть развернут как в Linux, так и в Windows
- написаны на C для высокой производительности и малого потребления памяти
- легко портируются
- удаленный мониторинг упрощается с использованием прокси Zabbix
Глоссарий
В этом разделе вы можете узнать значение некоторых терминов, commonly используемых в Zabbix.
- любое физическое или виртуальное устройство, приложение, служба или любая другая логически связанная совокупность контролируемых параметров.
- логическое объединение узлов сети. Группы узлов сети используются при назначении прав доступа к узлам сети для разных групп пользователей.
- определенная порция данных, которую вы хотите получать от узла сети, метрика данных.
- преобразование полученного значения метрики перед сохранением в базу данных.
- логическое выражение, которое определяет порог проблемы и используется для "оценки" данных, полученных в элементах данных.
Когда полученные данные выше порога, триггеры переходят из состояния Ok в состояние Problem. Когда полученные данные ниже порога, триггеры остаются в состоянии Ok или возвращаются в него.
- набор сущностей (элементы данных, триггеры, графики, правила низкоуровневого обнаружения, веб-сценарии), готовый к применению к одному или нескольким узлам сети.
Задача шаблонов — ускорить развертывание задач мониторинга на узле сети; также упростить массовое изменение задач мониторинга. Шаблоны связываются напрямую с отдельными узлами сети.
- логическое объединение шаблонов. Группы шаблонов используются при назначении прав доступа к шаблонам для разных групп пользователей.
- единичный факт, заслуживающий внимания, например изменение состояния триггера или выполнение обнаружения/авторегистрации агента.
- предопределенный маркер для события. Он может использоваться при корреляции событий, детализации прав доступа и т. д.
- метод гибкой и точной корреляции проблем с их устранением.
Например, вы можете определить, что проблема, сообщенная одним триггером, может быть устранена другим триггером, который может даже использовать другой метод сбора данных.
- триггер, находящийся в состоянии "Problem".
- возможности управления проблемами, предоставляемые Zabbix, такие как добавление комментария, подтверждение, изменение серьезности или ручное закрытие.
- предопределенный способ реагирования на событие.
Действие состоит из операций (например, отправки уведомления) и условий (когда выполняется операция)
- пользовательский сценарий выполнения операций в рамках действия; последовательность отправки уведомлений/выполнения удаленных команд.
- заполнитель переменной, который подставляет конкретное значение в зависимости от контекста.
- средство доставки уведомлений; канал доставки.
- сообщение о некотором событии, отправленное пользователю через выбранный канал доставки.
- предопределенная команда, которая автоматически выполняется на контролируемом узле сети при выполнении некоторого условия.
- один или несколько HTTP-запросов для проверки доступности веб-сайта.
- веб-интерфейс, предоставляемый Zabbix.
- настраиваемый раздел веб-интерфейса, отображающий сводки и визуализации важной информации в визуальных единицах, называемых виджетами.
- визуальная единица, отображающая информацию определенного типа и источника (сводку, карту, график, часы и т. д.), используемая на панели.
- Zabbix API позволяет использовать протокол JSON RPC для создания, обновления и получения объектов Zabbix (таких как узлы сети, элементы данных, графики и другие) или выполнения любых других пользовательских задач.
- центральный процесс программного обеспечения Zabbix, который выполняет мониторинг, взаимодействует с прокси Zabbix и агентами, вычисляет триггеры, отправляет уведомления; центральное хранилище данных.
- процесс, который может собирать данные от имени сервера Zabbix, снимая с сервера часть нагрузки на обработку.
- процесс, развернутый на контролируемых объектах для активного мониторинга локальных ресурсов и приложений.
- агент Zabbix нового поколения для активного мониторинга локальных ресурсов и приложений, позволяющий использовать пользовательские плагины для мониторинга.
Поскольку Zabbix agent 2 разделяет с Zabbix agent большую часть функциональности, термин "Zabbix agent" в документации обозначает оба варианта - Zabbix agent и Zabbix agent 2, если функциональное поведение одинаково. Zabbix agent 2 упоминается отдельно только там, где его функциональность отличается.
- поддержка зашифрованных коммуникаций между компонентами Zabbix (сервер, прокси, агент, утилиты zabbix_sender и zabbix_get) с использованием протокола Transport Layer Security (TLS).
- автоматизированный процесс, при котором сам агент Zabbix регистрируется как узел сети и начинает мониторинг.
- автоматическое обнаружение сетевых устройств.
- автоматическое обнаружение низкоуровневых сущностей на конкретном устройстве (например, файловых систем, сетевых интерфейсов и т. д.).
правило низкоуровневого обнаружения
- набор определений для автоматического обнаружения низкоуровневых сущностей на устройстве.
- метрика с определенными параметрами в виде переменных, готовая к низкоуровневому обнаружению. После низкоуровневого обнаружения переменные автоматически заменяются реальными обнаруженными параметрами, и метрика автоматически начинает собирать данные.
- триггер с определенными параметрами в виде переменных, готовый к низкоуровневому обнаружению. После низкоуровневого обнаружения переменные автоматически заменяются реальными обнаруженными параметрами, и триггер автоматически начинает оценивать данные.
Прототипы некоторых других сущностей Zabbix также используются в низкоуровневом обнаружении - прототипы графиков, прототипы узлов сети, прототипы групп узлов сети.