Открыть сервис

Система мониторинга Zabbix

Система мониторинга Zabbix — это программное обеспечение с открытым исходным кодом (Open Source), предназначенное для централизованного мониторинга состояния и производительности различных компонентов ИТ-инфраструктуры: серверов, сетевых устройств, баз данных, приложений, облачных сервисов и интернета вещей (IoT). Zabbix позволяет собирать данные о работе устройств (метрики), анализировать их в реальном времени, выявлять отклонения от заданных параметров и оповещать администраторов о возникновении нештатных ситуаций. Система разрабатывается и поддерживается одноимённой компанией Zabbix LLC, зарегистрированной в Латвии, и распространяется под лицензией GNU General Public License версии 2 (GPLv2). Zabbix является одним из наиболее распространённых решений для мониторинга в мире, особенно в России и странах СНГ, благодаря своей функциональности, масштабируемости и отсутствию затрат на лицензирование.

История

Разработка Zabbix была начата в 1998 году российским инженером Алексеем Владиславовым. Первая стабильная версия (1.0) была выпущена в 2004 году. Изначально проект создавался как внутренняя разработка для нужд телекоммуникационной компании, где работал Владиславов, но вскоре был опубликован как Open Source-проект. Ключевыми этапами развития стали:

  • 2004 год: Релиз Zabbix 1.0. Система поддерживала базовые возможности мониторинга сетевых устройств и серверов по протоколам SNMP, ICMP и через агента.
  • 2008 год: Выход версии 1.6, которая принесла поддержку баз данных (MySQL, PostgreSQL, Oracle, SQLite), улучшенный веб-интерфейс и систему шаблонов.
  • 2010 год: Релиз Zabbix 1.8, который стал первым по-настоящему массовым релизом. В него были добавлены распределённый мониторинг (прокси), автоматическое обнаружение устройств и улучшенный механизм оповещений.
  • 2014 год: Выход Zabbix 2.2 с поддержкой веб-мониторинга, системы бизнес-логики (SLA) и интеграции через API.
  • 2016 год: Релиз Zabbix 3.0, который ввёл поддержку протокола HTTP/2, улучшенную визуализацию (карты, графики) и систему глобальных макросов.
  • 2020 год: Выход Zabbix 5.0 — версия с длительным сроком поддержки (LTS), которая стала эталоном стабильности. В неё были добавлены встроенные шаблоны для популярных технологий (Kubernetes, Docker, AWS, Azure).
  • 2022 год: Релиз Zabbix 6.0 LTS, который представил новый интерфейс на основе JavaScript, поддержку протокола MQTT для IoT, а также улучшенную интеграцию с системами управления конфигурациями (Ansible, SaltStack).
  • 2024 год: Выход Zabbix 7.0 LTS, который стал последней стабильной версией на момент написания статьи. В неё были добавлены поддержка протокола HTTP/3, улучшенная работа с кластерами баз данных, а также встроенный инструмент для анализа производительности (Performance Analysis).

Архитектура

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

Сервер (Zabbix Server)

Центральный компонент, который отвечает за сбор данных, их обработку, запуск проверок и отправку оповещений. Сервер хранит всю конфигурацию и исторические данные в реляционной базе данных (MySQL, PostgreSQL, Oracle, TimescaleDB). Он может работать как на физическом сервере, так и в контейнеризированной среде (Docker, Kubernetes).

Прокси (Zabbix Proxy)

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

Агент (Zabbix Agent)

Небольшая программа, устанавливаемая на мониторируемые устройства (серверы, рабочие станции, виртуальные машины). Агент собирает локальные метрики (загрузка CPU, использование памяти, дисковое пространство, состояние процессов) и передаёт их серверу или прокси. Агент может работать в двух режимах:

  • Пассивный режим: сервер опрашивает агента по запросу (по умолчанию используется порт 10050/TCP).
  • Активный режим: агент сам отправляет данные на сервер (по умолчанию используется порт 10051/TCP).

Веб-интерфейс (Frontend)

Графическая оболочка, написанная на PHP и JavaScript, которая предоставляет доступ к данным мониторинга через браузер. Веб-интерфейс позволяет настраивать систему, просматривать дашборды, создавать отчёты, управлять оповещениями и администрировать пользователей. Начиная с версии 6.0, интерфейс был полностью переработан с использованием фреймворка React.

База данных (Database)

Хранилище для конфигурации, истории событий и трендов (агрегированных данных). Zabbix поддерживает несколько СУБД: MySQL, MariaDB, PostgreSQL, Oracle Database и TimescaleDB (расширение для PostgreSQL, оптимизированное для временных рядов). Выбор базы данных влияет на производительность и масштабируемость системы.

Функциональные возможности

Сбор данных

Zabbix поддерживает множество протоколов и методов сбора данных:

  • SNMP (Simple Network Management Protocol): для мониторинга сетевых устройств (коммутаторы, маршрутизаторы, принтеры).
  • IPMI (Intelligent Platform Management Interface): для мониторинга аппаратного состояния серверов (температура, напряжение, состояние вентиляторов).
  • JMX (Java Management Extensions): для мониторинга Java-приложений (например, Tomcat, JBoss).
  • HTTP/HTTPS: для веб-мониторинга (проверка доступности сайтов, времени отклика, кодов ответа).
  • SSH и Telnet: для выполнения команд на удалённых устройствах.
  • ODBC (Open Database Connectivity): для мониторинга баз данных (SQL-запросы).
  • MQTT и Modbus: для мониторинга устройств интернета вещей (IoT) и промышленного оборудования.
  • Пользовательские скрипты: возможность запуска произвольных скриптов на сервере или агенте.

Оповещения (Alerting)

Zabbix позволяет настраивать автоматические оповещения при возникновении проблем. Поддерживаются различные каналы:

  • Email: отправка сообщений на почтовые ящики.
  • SMS: отправка через SMS-шлюзы.
  • Мессенджеры: Telegram, Slack, Microsoft Teams, Discord (через вебхуки).
  • Системы управления инцидентами: PagerDuty, Opsgenie, ServiceNow.
  • Собственные скрипты: возможность интеграции с любыми внешними системами через выполнение shell-скриптов или Python-программ.

Визуализация

Система предоставляет широкий набор инструментов для визуализации данных:

  • Дашборды: настраиваемые панели с виджетами (графики, таблицы, карты, индикаторы).
  • Карты сети (Network Maps): графическое отображение топологии сети и состояния устройств.
  • Графики: линейные, столбчатые, круговые диаграммы, а также гистограммы.
  • Слайд-шоу: автоматическая смена дашбордов для отображения на больших экранах (NOC-панели).

Отчёты

Zabbix позволяет генерировать отчёты по различным параметрам:

  • Отчёты по SLA (Service Level Agreement): оценка доступности и времени безотказной работы.
  • Отчёты по проблемам: список всех инцидентов за определённый период.
  • Отчёты по трендам: анализ долгосрочной динамики метрик (например, рост использования дискового пространства).

Классификация и типы мониторинга

Zabbix поддерживает два основных подхода к мониторингу:

Активный мониторинг

Сервер (или прокси) самостоятельно инициирует подключение к мониторируемому устройству и запрашивает данные. Этот метод используется для SNMP, ICMP (ping), HTTP-проверок и пассивного режима агента. Активный мониторинг требует, чтобы устройство было доступно по сети.

Пассивный мониторинг

Агент (или другое устройство) самостоятельно отправляет данные на сервер. Этот метод используется в активном режиме агента, а также для сбора данных через траппы SNMP (SNMP Traps). Пассивный мониторинг позволяет снизить нагрузку на сервер и упрощает настройку для устройств за NAT или брандмауэрами.

Применение

Zabbix используется в самых разных отраслях и сценариях:

  • ИТ-инфраструктура: мониторинг серверов (Linux, Windows, FreeBSD), сетевых устройств (Cisco, Juniper, MikroTik), систем хранения данных (NetApp, Dell EMC).
  • Веб-хостинг и облачные сервисы: мониторинг доступности и производительности веб-сайтов, баз данных (MySQL, PostgreSQL, MongoDB), балансировщиков нагрузки (Nginx, HAProxy).
  • Промышленность и IoT: мониторинг датчиков, контроллеров (PLC), оборудования по протоколам Modbus и MQTT.
  • Телекоммуникации: мониторинг базовых станций, VoIP-шлюзов, коммутаторов.
  • Государственные и корпоративные системы: мониторинг критически важных информационных систем, в том числе в рамках требований к импортозамещению. В России Zabbix активно используется в государственных органах, банках и на предприятиях ОПК.

Преимущества и недостатки

Преимущества

  • Открытый исходный код: отсутствие затрат на лицензирование, возможность модификации.
  • Масштабируемость: поддержка распределённого мониторинга через прокси, что позволяет обслуживать инфраструктуру из десятков тысяч устройств.
  • Гибкость: широкий выбор протоколов, возможность написания собственных скриптов и шаблонов.
  • Большое сообщество: наличие тысяч готовых шаблонов для популярных технологий, активная поддержка на форумах и в профессиональных сообществах (включая русскоязычные).
  • Русскоязычная документация: полная документация переведена на русский язык, что упрощает внедрение в российских компаниях.

Недостатки

  • Сложность настройки: для эффективного использования требуется глубокое понимание архитектуры и принципов работы системы.
  • Высокие требования к базе данных: при большом объёме данных (более 10 000 метрик в секунду) требуется тюнинг СУБД и использование специализированных решений (TimescaleDB, кластеризация).
  • Отсутствие встроенной поддержки некоторых современных технологий: например, мониторинг контейнеров (Docker, Kubernetes) требует установки дополнительных шаблонов или агентов.
  • Устаревший дизайн веб-интерфейса (до версии 6.0): предыдущие версии имели интерфейс, который считался неудобным и визуально устаревшим.

Интересные факты

  • Zabbix является одним из немногих Open Source-проектов, который имеет сертификацию для работы с государственными информационными системами в России (включён в Единый реестр российских программ для электронных вычислительных машин и баз данных).
  • Компания Zabbix LLC регулярно проводит конференции Zabbix Conference, в том числе в Москве, где собираются специалисты по мониторингу.
  • Максимальная зафиксированная производительность системы — более 1,5 миллиона новых метрик в секунду (на кластере из нескольких серверов с TimescaleDB).
  • Zabbix используется в таких крупных компаниях, как «Сбербанк», «Ростелеком», «Яндекс», «Лаборатория Касперского» и многих других.

Источники

  • Официальная документация Zabbix (zabbix.com/documentation)
  • Книга «Zabbix: практическое руководство» (авторы: Алексей Владиславов, Дмитрий Поляков)
  • Статья «История развития Zabbix» на Habr.com
  • Материалы конференции Zabbix Conference 2023
  • Единый реестр российских программ для электронных вычислительных машин и баз данных (reestr.digital.gov.ru)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →