Что такое 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 API предоставляет программируемый интерфейс к Zabbix для массовых операций, интеграции со сторонним ПО и других целей.

Система разрешений

  • безопасная аутентификация пользователей
  • для некоторых пользователей можно ограничить доступ к определенным представлениям

Полнофункциональный и легко расширяемый агент

  • развертывается на контролируемых объектах
  • может быть развернут как в Linux, так и в Windows

Двоичные демоны

  • написаны на C для высокой производительности и небольшого потребления памяти
  • легко портируются

Готовность к сложным средам

  • удаленный мониторинг упрощается с использованием прокси Zabbix

Глоссарий

В этом разделе вы можете узнать значение некоторых терминов, часто используемых в Zabbix.

узел сети

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

группа узлов сети

- логическое объединение узлов сети. Группы узлов сети используются при назначении прав доступа к узлам сети для разных групп пользователей.

элемент данных

- определенная часть данных, которую необходимо получить от узла сети, то есть метрика данных.

предобработка значений

- преобразование полученного значения метрики перед сохранением в базу данных.

триггер

- логическое выражение, определяющее порог проблемы и используемое для «оценки» данных, полученных в элементах данных.

Когда полученные данные превышают порог, триггеры переходят из состояния ОК в состояние Проблема. Когда полученные данные ниже порога, триггеры остаются в состоянии ОК или возвращаются в него.

шаблон

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

Шаблоны предназначены для ускорения развертывания задач мониторинга на узле сети, а также для упрощения массового изменения задач мониторинга. Шаблоны напрямую связываются с отдельными узлами сети.

группа шаблонов

- логическое объединение шаблонов. Группы шаблонов используются при назначении прав доступа к шаблонам для разных групп пользователей.

событие

- единичное возникновение чего-либо, заслуживающего внимания, например изменение состояния триггера или выполнение обнаружения/автоматической регистрации агента.

тег события

- предварительно определенный маркер события. Он может использоваться для корреляции событий, детальной настройки разрешений и т. д.

корреляция событий

- метод гибкого и точного сопоставления проблем с их устранением.

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

проблема

- триггер, находящийся в состоянии «Проблема».

обновление проблемы

- предоставляемые Zabbix возможности управления проблемами, такие как добавление комментария, подтверждение, изменение важности или закрытие вручную.

действие

- предварительно определенный способ реагирования на событие.

Действие состоит из операций (например, отправки уведомления) и условий (когда выполняется операция).

эскалация

- пользовательский сценарий выполнения операций в рамках действия; последовательность отправки уведомлений/выполнения удаленных команд.

макрос

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

медиа

- средство доставки уведомлений; канал доставки.

уведомление

- сообщение о некотором событии, отправленное пользователю через выбранный канал медиа.

удаленная команда

- предварительно определенная команда, автоматически выполняемая на контролируемом узле сети при выполнении определенного условия.

веб-сценарий

- один или несколько HTTP-запросов для проверки доступности веб-сайта.

веб-интерфейс

- веб-интерфейс, предоставляемый Zabbix.

панель

- настраиваемый раздел веб-интерфейса, отображающий сводную информацию и визуализации важных данных в визуальных элементах, называемых виджетами.

виджет

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

Zabbix API

- Zabbix API позволяет использовать протокол JSON RPC для создания, обновления и получения объектов Zabbix (например, узлов сети, элементов данных, графиков и других объектов), а также для выполнения любых других пользовательских задач.

сервер Zabbix

- центральный процесс программного обеспечения Zabbix, выполняющий мониторинг, взаимодействующий с прокси и агентами Zabbix, вычисляющий триггеры и отправляющий уведомления; центральное хранилище данных.

прокси Zabbix

- процесс, который может собирать данные от имени сервера Zabbix, снижая нагрузку на сервер.

агент Zabbix

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

агент Zabbix 2

- агент Zabbix нового поколения для активного контроля локальных ресурсов и приложений, позволяющий использовать пользовательские плагины для мониторинга.

Поскольку агент Zabbix 2 обладает большей частью функциональности агента Zabbix, термин «агент Zabbix» в документации обозначает оба варианта — агент Zabbix и агент Zabbix 2, если их функциональное поведение совпадает. Агент Zabbix 2 упоминается отдельно только в тех случаях, когда его функциональность отличается.

шифрование

- поддержка зашифрованного обмена данными между компонентами Zabbix (сервером, прокси, агентом, утилитами zabbix_sender и zabbix_get) с использованием протокола Transport Layer Security (TLS).

автоматическая регистрация агента

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

обнаружение сети

- автоматизированное обнаружение сетевых устройств.

низкоуровневое обнаружение

- автоматизированное обнаружение низкоуровневых сущностей на определенном устройстве (например, файловых систем, сетевых интерфейсов и т. д.).

правило низкоуровневого обнаружения

- набор определений для автоматизированного обнаружения низкоуровневых сущностей на устройстве.

прототип элемента данных

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

прототип триггера

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

Прототипы некоторых других сущностей Zabbix также используются в низкоуровневом обнаружении — прототипы графиков, прототипы узлов сети и прототипы групп узлов сети.