В любом хосте, состоящем более чем из одного сервера, администратору необходимо иметь перед глазами полную картину происходящего. Для упрощения этой задачи в крупных сетях применяются системы мониторинга. К таким системам относится универсальный инструмент Zabbix, который способен отслеживать динамику работы серверов и сетевого оборудования, быстро реагировать на внештатные ситуации и предупреждать возможные проблемы с нагрузкой. Система мониторинга Zabbix также может собирать статистику в указанной рабочей среде и действовать в определенных случаях заданным образом.

Как работает Zabbix, и его архитектура

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

  • сервер - ядро, хранящее в себе все данные системы, включая статистические, оперативные и конфигурационные. Дистанционно управляет сетевыми сервисами, оповещает администратора о возникающих проблемах с оборудованием, находящимся под наблюдением;
  • прокси-сервис, работающий от имени сервера и собирающий данные о доступности и производительности устройств. Данные при этом сохраняются в буфер и загружаются на сервер в отдельную БД (MySQL, PostgreSQL, SQLite или Oracle). Прокси-сервис необходим для снижения нагрузки на сервер, на процессор и на жесткий диск;
  • агент - программа (демон), которая активно отслеживает работу локальных ресурсов (накопителей, оперативной памяти, процессора) и приложений и собирает статистику по ним. Отражение текущего состояния физического сервера осуществляются Zabbix-агентом при помощи таких метрик, как загруженность ядра (Processor load), время ожидания ресурсов (CPU io wait time), объем системы подкачки (Total swap space).
  • веб-интерфейс, который является частью сервера системы и часто запускается на том же физическом узле, что и Zabbix.

Архитектура ZABBIX

Основная логическая единица архитектуры Zabbix - это узлы сети (host), сервера, находящиеся под наблюдением. Каждому серверу присваивается описание и адрес - dns или ip. Допустимо применять оба, причем с возможностью выбирать, что использовать для соединения. Узлы можно объединять в группы, например, по веб-серверам или серверам баз данных, для вывода только определенных серверов при наблюдении. При этом каждый узел имеет несколько элементов данных (items) - параметров, по которым ведется мониторинг.

Сбор совокупности данных системой Zabbix проводится наиболее часто следующими способами:

  • Zabbix agent (Zabbix-агент) - когда сервер собирает информацию у агента самостоятельно, подключаясь по определенному интервалу;
  • Simple check (Простые проверки) - простые операции, в том числе пинг;
  • Zabbix trapper (Zabbix-траппер) — сбор информации с трапперов, представляющих собой мосты между используемыми сервисами и самой системой.
  • Zabbix aggregate (Zabbix-комплекс) - процесс, предусматривающий сбор совокупной информации из базы данных;
  • SSH agent (SSH-агент) - система подключается по SSH, работает с использованием указанных команд;
  • Calculate (Вычисление) - проверки, которые система производит, сопоставляя имеющиеся данные, в том числе после предыдущих сборов.

Функционал Zabbix включает в себя общие проверки для наиболее распространенных сервисов - СУБД, SSH, Telnet, VMware, NTP, POP, SMTP, FTP. Если стандартных настроек системы недостаточно, их можно изменить самостоятельно или же пользоваться дополнением через API. Также к стандартным функциям системы относятся: контроль нагрузки на процессор - касается и общих, и отдельных процессов; сбор данных об объеме свободной оперативной и физической памяти; мониторинг активности жесткого диска и мониторинг сетевой активности; пинг для проверки доступности узлов в сети.

У проверок есть заданные шаблоны (Templates), которые упрощают создание новых вычислений. Есть несколько типов шаблонов - стандартизированные шаблоны для сетевых устройств, настройка шаблонов HTTP, настройка шаблонов IPMI, настройка шаблонов ODBC.

Для обработки данных в Zabbix используются триггеры - логические выражения со значениями FALSE, TRUE и UNKNOWN, которые можно создать вручную и протестировать на произвольных значениях перед использованием. У каждого триггера существует уровень серьезности угрозы, который маркируется цветом и передается звуковым оповещением в веб-интерфейсе. Например:

  • не классифицировано (Not classified) - серый;
  • информация (Information) - светло-синий;
  • предупреждение (Warning) - жёлтый;
  • средняя (Average) - оранжевый;
  • высокая (High) - светло-красный;
  • чрезвычайная (Disaster) - красный.

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

Действия (Action) - представляет собой заданную реакцию на событие (Event). Действие может устанавливаться автоматически или вручную как для одного из событий, так и для целой группы. Параметры действий:

  • Name - имя действия;
  • Event source - источник события. Источниками событий служат обнаружение (Discovery Events), авторегистрация (Auto registration Events) или заданный триггер (Trigger Events);
  • Enable escalations - разрешение на эскалацию событий;
  • Period - период времени для шага эскалации, указывается в секундах;
  • Default subject - указывается, кто извещается по умолчанию;
  • Default message - стандартный текст сообщения;
  • Recovery message - текст уведомления после решения проблемы;
  • Recovery subject - субъект, которого извещают после операции;
  • Status - статус действия, может быть «активно» и «запрещено».

После отработки триггера для последующих автоматических действий применяются операции. Пользователь может указать для событий операцию или группу операций. Выделяют следующие параметры операций: Step - при эскалации событий; Operation type - действия на определенном шаге, например, «Send message» или «Execute command»; Event Source - источник событий; Send message to - отдельное сообщение (Single user) или групповое (User group); Default message - текст по умолчанию; Subject - кого оповещает система; Message - текст сообщения; Remote command - команда для удаленного управления.

Установка и настройка Zabbix

Система Zabbix отличается простотой установки и настройки. Ее сервер, прокси и агент написаны на С#, веб-интерфейс - на PHP. При этом установка Zabbix Server и Zabbix Proxy возможна только на Linux- системах, а Zabbix-агент - практически на любых ОС и платформах.

Инсталляционный пакет Zabbix Server состоит из:

  • бинарника zabbix_server (обычно работает как сервис);
  • MySQL (MariaDB)/PostgreSQL базы данных;
  • веб-сервера Apache2/Nginx с обработчиком PHP;
  • файлов самого frontend сайта (.php, .js, .css)

Схема установки Zabbix включает этапы:

  • установка Zabbix Server в Linux (Ubuntu, CentOS) через пакетный менеджер. Для этого потребуется выбрать на странице загрузки https://www.zabbix.com/download репозиторий, подходящий для дистрибутива, например: Zabbix Version (4.4) - OS Distribution (Ubuntu) - OS Version (18.04 Bionic) - Database (MySQL) - Веб сервер (Nginx или Apache), который нужно скачать и добавить

# wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1+debian10_all.deb

# dpkg -i zabbix-release_4.4-1+bionic_all.deb

# apt update

  • затем устанавливаются необходимые пакеты (# apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent), создается база данных и устанавливаются права пользователя (mysql -uroot mysql create database zabbix character set utf8 collate utf8_bin; mysql grant all privileges on zabbix.* to zabbix@localhost identified by 'ВашПароль'; mysql quit;);
  • далее проводится импорт базы данных zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p Zabbix и выполняется добавление службы в автозапуск (# systemctl enable zabbix-server zabbix-agent nginx php7.2-fpm

# systemctl restart zabbix-server zabbix-agent nginx php7.2-fpm);

Настройка веб-интерфейса Zabbix проводится так. В браузере открывается указанный ранее URL-адрес zabbix-сервера (к примеру, указанный домен). Нужно прописать его у себя в hosts файле или на DNS сервере). При этом важно открыть оба порта, который система Zabbix использует по умолчанию - TCP 10050 (порт пассивного агента, по нему zabbix сервер опрашивает клиентов) и TCP 10051 (порт, на котором zabbix сервер получает данные от клиентов - активный агент). 

Какую версию выбрать. Что нового в Zabbix 5.0.

На сегодняшний день востребованными являются версии Zabbix 4.2, Zabbix 4.4 и Zabbix 5.0. Версия Zabbix 4.2 имеет возможности:

  • высокочастотного мониторинга с помощью троттлинга, который обеспечивает масштабирование и повышение NVPS, что означает более быстрое обнаружение проблем и направление оповещений без большой нагрузки на Zabbix;
  • сбора данных с помощью HTTP-агента;
  • поддержки сбора данных от Prometheus Pro;
  • предобработки, которая поддерживает валидацию и JavaScript, что позволяет трансформировать любые собираемые данные;
  • предобработки на стороне прокси, которая обеспечивает более эффективное масштабирование с помощью прокси;
  • улучшенного управления тегами - мета-информацией на уровне событий и проблем, с которыми удобно работать, поскольку теги поддерживаются и на уровне шаблонов, и на уровне узлов сети.

Zabbix 4.4 оснащена:

  • новым Zabbix агентом;
  • системой Webhook для поддержки оповещений и уведомлений, что позволяет интегрироваться с внешними системами;
  • системой поддержки Timescale DB;
  • встроенной базой знаний для метрик и триггеров, видимой для пользователей Zabbix. Например, пользователи могут использовать описание элементов данных и триггеров в Monitoring Latest data.
  • новым стандартом для шаблонов.

LTS-релиз Zabbix 5.0, который будет поддерживаться в течение 5 лет, отличается от версий 4.2 и 4.4 следующими характеристиками:

  • поддержкой HTTP-прокси для webhook, который позволяет сделать соединения с Zabbix сервера на внешние более управляемыми и безопасными;
  • возможностью выбирать, какие именно проверки должны быть доступны на определенном агенте. Например, можно ограничить количество проверок, фактически создав белые и черные списки, определить поддерживаемые ключи;
  • возможностью выбора алгоритмов шифрования для всех компонентов Zabbix, во избежание использования небезопасных шифров для TLS-соединений. Это важно для мониторинга сред, для которых применяются определенные стандарты безопасности.
  • поддержкой шифрованных соединений с базой данных. На данный момент доступно шифрованное соединение с PostgreSQL и MySQL;
  • переходом с MD5 на SHA256 для хранения хэшей паролей пользователей в базе данных, поскольку на данный момент это наиболее безопасный алгоритм;
  • поддержкой секретных пользовательских макросов для хранения любой конфиденциальной информации (паролей и API-токенов) к которой не имеют доступа конечные пользователи.
  • поддержкой SAML для обеспечения единой точки аутентификации у надежного поставщика идентификационных услуг, что обеспечивает хранение пользовательских учетных данных в границах брандмауэра. Поддержка SAML позволяет интегрировать Zabbix с различными локальными и облачными поставщиками идентификационных услуг, такими как Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, а также Azure, AWS или Google Cloud Platform.

Кроме того, Zabbix 5.0 имеет оптимизированный для широких экранов пользовательский интерфейс, обеспечивает возможность копирования виджетов с панели и экспорта графиков, фильтрацию по тегам, поддержку модулей для расширения интерфейса Zabbix, поддержку пользовательских макросов для IPMI для имени пользователя и пароля.

Все перечисленные факторы делают Zabbix 5.0 оптимальным и предпочтительным решением для организации систем мониторинга.

Сколько стоить развернуть Zabbix

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

Расценки на данные работы составляют от 82 000 до 737 000 рублей.

Почему стоит выбрать Zabbix, в чем его преимущества

Выбор в пользу Zabbix позволяют сделать его возможности:

  • автоматического обнаружения серверов и сетевых устройств;
  • low-level мониторинга и распределенного мониторинга, мониторинга без администратора;
  • поддержки и захвата механизмов;
  • отправки по e-mail уведомлений о предопределенных событиях;
  • контроля ресурсов и записи лог-файлов аудита.

По сравнению с другими системами мониторинга, Zabbix позволяет осуществлять конфигурирование системы посредством API, а также через интерфейс, обеспечивает возможность хранения настроек в БД, что позволяет применять все вносимые в конфигурацию изменения «на лету», имеет качественные средства визуализации и выполняет хранение истории, благодаря чему существенно упрощается ряд задач, связанных с мониторингом. Кроме прочего, Zabbix обладает мощной поддержкой параметров пользователя, таких как оповещения, пороги, реакции, а также поддержкой мониторинга логов и JMX в своей базовой комплектации.

Руководство по программному обеспечению Zabbix https://www.zabbix.com/documentation/current/ru/manual