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

Система прав доступа

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

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

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

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

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

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

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

Глоссарий

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

узел сети

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

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

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

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

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

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

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

триггер

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

Когда полученные данные превышают порог, триггеры переходят из состояния 'Ok' в состояние 'Problem'. Когда полученные данные ниже порога, триггеры остаются в состоянии/возвращаются в состояние 'Ok'.

шаблон

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

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

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

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

событие

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

тег события

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

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

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

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

проблема

- триггер, находящийся в состоянии "Problem".

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

- параметры управления проблемой, предоставляемые 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 также используются в обнаружении низкого уровня — прототипы графиков, прототипы узлов сети, прототипы групп узлов сети.