Системное администрирование неэффективно без автоматизированных средств мониторинга, позволяющих своевременно реагировать на нештатные ситуации и отслеживать динамику работы сервисов. При малом количестве серверов часто применяются скрипты, написанные под конкретные нужды, но с ростом инфраструктуры такой подход начинает вызывать множество проблем. И тут на помощь приходят уже готовые инструменты, один из которых — Zabbix.
Zabbix — это мощная система мониторинга и отслеживания производительности ИТ-инфраструктуры, которая позволяет организациям контролировать состояние и работоспособность сетей, серверов, облачных сервисов, виртуальных машин и других ИТ компонентов.
Zabbix представляет собой программное обеспечение с открытым исходным кодом, которое собирает метрики и статистику с различных устройств и приложений посредством своих агентов, встроенных проверок и протоколов, таких как SNMP. Эти данные затем агрегируются, визуализируются и анализируются с помощью веб-интерфейса Zabbix.
Мониторинг ИТ-инфраструктуры имеет важнейшее значение для обеспечения бесперебойной работы бизнес-процессов любой компании. Без надлежащего мониторинга ИТ-команды могут не знать о проблемах в инфраструктуре до тех пор, пока они не приведут к сбоям, что может иметь серьезные последствия. Мониторинг позволяет:
- Предотвратить и минимизировать время простоя за счет раннего предупреждения о неполадках;
- Оптимизировать производительность ИТ-инфраструктуры;
- Сэкономить на обслуживании за счет предсказуемого обслуживания вместо аварийного ремонта;
- Обеспечить соответствие SLA и стандартам отрасли.
Таким образом, мониторинг критически важен для поддержания эффективности, надежности и безопасности ИТ на высоком уровне.

Система состоит из четырёх основных компонентов:
- Сервер мониторинга, который собирает и обрабатывает данные от всех агентов.
- Прокси сервер, выполняющий те же функции, но с последующей отправкой на центральный сервер.
- Веб-интерфейс для мониторинга.
- Агент, собирающий данные на физическом сервере.
Для работы необходима одна из нескольких возможных вариантов баз данных, которая должна быть предварительно настроена (это происходит автоматически, с помощью готовых скриптов):
- MySQL;
- Oracle;
- PostgreSQL;
- SQLite;
- IBM DB2.
- TimescaleDB
Поддерживаемые операционные системы (сервер и агент): OpenBSD, Linux, FreeBSD, NetBSD, OpenBSD, AIX, Power8, HP-UX, Solaris, Mac OS X. Также существуют агенты для ОС Windows, начиная с 2000.
Краткая история
Zabbix — это инструмент сетевого мониторинга с открытым исходным кодом, который помогает контролировать и отслеживать производительность и доступность сетевых служб, серверов и сетевого оборудования. Он был создан в 1998 году Алексеем Владишевым, разработчиком программного обеспечения из Латвии, и с тех пор стал популярным среди ИТ-специалистов по всему миру.
29 выпуск SDCast в августе 2015 немного пролил свет на то, как всё происходило. Zabbix был создан Алексеем для нужд банка. В те времена он был написан на языке Perl. Позднее проект был сильно переработан, в частности — переписан на C и PHP, изменилась его архитектура. В 2001 году Zabbix открыл исходные коды под свободной лицензией GPL, а стабильная версия 1.0 была выпущена спустя три года, в 2004.
Zabbix был разработан как гибкое и масштабируемое решение для мониторинга сети, которое можно было бы настроить в соответствии с потребностями любой организации. Первоначальная версия Zabbix включала базовые возможности мониторинга серверов, сетевых устройств и приложений, а также поддержку протоколов SNMP, JMX и IPMI. В 2005 была создана компания Zabbix SIA, занимающаяся оказанием платных технических услуг, связанных с ПО.
За прошедшие годы Zabbix претерпел множество изменений и усовершенствований. Выпуск версии 2.0 в 2012 году стал важной вехой для программного обеспечения. Она включала в себя значительные улучшения производительности и переработанный пользовательский интерфейс, который облегчил пользователям мониторинг их сетей.
В 2014 году была выпущена версия Zabbix 2.2, в которой была добавлена поддержка автоматического обнаружения сетевых устройств и улучшена визуализация сетевых данных. Версия 2.4, выпущенная в 2015 году, добавила поддержку гибкого оповещения, позволяя пользователям настраивать индивидуальные уведомления на основе определенных сетевых событий.
Zabbix 3.0 был выпущен в 2016 году и включал ряд значительных обновлений. В ней была добавлена поддержка шифрованной связи между серверами и агентами Zabbix, а также улучшена поддержка Docker и других технологий контейнеризации. Версия 3.2, выпущенная в 2017 году, добавила поддержку мониторинга VMware и улучшила поддержку настроек высокой доступности.
В 2018 году была выпущена версия Zabbix 4.0. Она включала ряд улучшений производительности и новых функций, таких как поддержка мониторинга операционных систем Windows и macOS и улучшенная визуализация сетевых данных. Zabbix 4.2, выпущенный в 2019 году, добавил поддержку метрик Prometheus и повысил производительность обнаружения сети.
Одним из крупных релизов Zabbix является версия 5.0, которая была выпущена в 2020 году. Он включает в себя ряд новых функций, таких как поддержка графиков, основанных на времени, улучшенная поддержка данных JSON и улучшенная интеграция с Grafana.
В целом, Zabbix имеет долгую и богатую историю развития, с множеством крупных обновлений и улучшений на протяжении многих лет. Он стал популярным выбором для мониторинга сети и широко используется организациями всех размеров по всему миру.
Согласно политике выпуска релизов, команда Zabbix выпускает новую стабильную версию каждые шесть месяцев.
По состоянию на март 2023 года последней стабильной версией является Zabbix 6.4.0, выпущенная 6 февраля 2023 года.
В целом, рекомендуется регулярно проверять веб-сайт Zabbix на наличие последних стабильных и тестовых версий.
Преимущества и недостатки Zabbix
Преимущества Zabbix
Вот некоторые преимущества использования Zabbix для мониторинга ИТ-инфраструктуры:
- Повышение прозрачности ИТ-инфраструктуры. Zabbix предоставляет широкие возможности мониторинга, позволяя ИТ-специалистам отслеживать каждый аспект своей инфраструктуры. Сюда входят серверы, сети, приложения и сервисы. С помощью Zabbix ИТ-команды могут быстро выявлять потенциальные проблемы и принимать меры по их устранению до того, как они станут серьезными проблемами.
- Повышение производительности и времени работы систем. Мониторинг Zabbix обеспечивает отслеживание в реальном времени таких показателей производительности системы, как использование процессора, памяти, пропускной способности сети и дискового пространства. Это помогает ИТ-командам выявить узкие места в производительности и оптимизировать работу системы для обеспечения максимальной работоспособности.
- Сокращение времени простоя и сопутствующих расходов. Zabbix предоставляет возможности проактивного мониторинга и оповещения, позволяя ИТ-командам выявлять потенциальные проблемы до того, как они приведут к простою. Это помогает снизить сопутствующие расходы, связанные с простоем, такие как потерянный доход, неудовлетворенность клиентов и ущерб репутации.
- Повышенная безопасность благодаря проактивному мониторингу и оповещению. Zabbix помогает ИТ-командам обнаруживать угрозы безопасности и аномалии путем мониторинга системных журналов, сетевого трафика и других показателей, связанных с безопасностью. С помощью Zabbix ИТ-команды могут настроить оповещения для уведомления о потенциальных угрозах безопасности, что позволяет им принимать упреждающие меры для защиты своих систем.
- Масштабируемость. Zabbix масштабируется от небольших до крупных предприятий. Это позволяет организациям использовать Zabbix для мониторинга растущей ИТ-инфраструктуры.
Недостатки Zabbix
Используя возможности мониторинга Zabbix, ИТ-команды могут обеспечить бесперебойную и эффективную работу своей инфраструктуры.
Недостатки Zabbix
Как и любая другая система, Zabbix имеет свои недостатки. Вот некоторые из них:
- Сложность настройки и использования. Настройка Zabbix может потребовать времени из-за сложности процесса, особенно для тех, кто только начинает знакомиться с инструментами мониторинга. Сложность возникает из-за необходимости понимания различных компонентов, таких как хосты, элементы, триггеры и действия, а также настройки шаблонов и параметров мониторинга. Пользователям может потребоваться работать с множеством меню и настроек, чтобы достичь нужных конфигураций мониторинга, что может быть сложно, особенно на начальном этапе внедрения.
- Требовательность к ресурсам. Мониторинг большого количества устройств или настройка множества проверок в Zabbix может потребовать значительных ресурсов системы. Хотя Zabbix способен обрабатывать обширные задачи мониторинга, неправильная конфигурация или недостаточное выделение ресурсов может нагрузить систему, повлиять на общую производительность. Это требование ресурсов может привести к увеличенному использованию ЦП или памяти, что в свою очередь может сказаться на отзывчивости системы мониторинга и вызвать задержки или пробелы в сборе данных.
- Документация. Несмотря на улучшение документации Zabbix, некоторые пользователи сталкиваются с проблемами в понимании или глубине описания в определенных областях. Хотя основные функции могут быть достаточно подробно описаны, более сложные настройки или менее часто используемые возможности могут быть менее полно описаны в документации. Это может затруднить пользователям внедрение расширенных настроек или устранение проблем без достаточного руководства из предоставленной документации.
- Проблемы с интерфейсом пользователя (UI/UX). Интерфейс пользователя Zabbix может быть воспринят пользователями как менее интуитивный или устаревший по сравнению с другими инструментами мониторинга. Некоторые пользователи могут считать интерфейс менее удобным для работы или устаревшим по дизайну и навигации. Для начинающих или тех, кто не знаком с интерфейсом Zabbix, поиск и настройка параметров может потребовать больше времени и усилий, что может вызвать более крутой кривой обучения по сравнению с инструментами с более интуитивными интерфейсами.
- Ограничения поддержки. Хотя у Zabbix есть активное сообщество, для официальной поддержки может потребоваться платная подписка. Для небольших организаций или проектов с ограниченным бюджетом доступ к официальным службам поддержки может быть финансово затруднительным. Это ограничение может ограничить доступ к прямой помощи от экспертов Zabbix, что может повлиять на своевременное решение проблем или получение руководства по сложным настройкам.
Возможности Zabbix
В систему мониторинга уже встроен ряд стандартных метрик:
- нагрузка на процессор, в том числе отдельными процессами;
- объём свободной оперативной памяти;
- активность жёсткого диска;
- объём свободной физической памяти;
- сетевая активность;
- пинг.
А также прочие проверки общего назначения и для самых распространённых сервисов, таких как веб-сервер, СУБД, SSH, Telnet, VMware, NTP, POP, SMTP, FTP и других.
Чтобы задать реакцию при отклонении каких-либо метрик от нормы, используются специальные условия — триггеры. Например, если пинг отсутствует пять минут, выводится уведомление администратору и выполняется команда перезапуска сервиса.
Для выхода из нештатной ситуации применяются отдельные условия, поэтому незначительное улучшение метрики не является достаточным для устранения неполадки. Например, если свободного места на жёстком диске осталось меньше 10%, сработает аварийный триггер и чтобы он выключился, значение должно превышать 30%.
Если готового функционала недостаточно, то можно использовать свой — настроить реакцию на определённый вывод команд (чтение выходного потока от утилит), либо написать дополнение, используя API.
Проверки
Установка агента не является обязательной, всего на выбор администратора есть 17 способов осуществления сбора информации с сервера.
- Zabbix agent — сервер сам опрашивает агента, подключаясь к нему с нужным интервалом.
- Zabbix agent (active) — агент подключается к серверу и отправляет информацию.
- Simple check — различные простые проверки (например, пинг).
- SNMP agent (версии 1-3, trap) — сбор данных по SNMP протоколу.
- Zabbix Internal — сбор информации с самого сервера Zabbix для проверки его состояния.
- Zabbix trapper — сбор данных с трапперов, которые являются мостом между некими сервисами и Zabbix (принимают данные по сети из сторонних приложений, чтобы транспортировать их на сервер мониторинга).
- Zabbix aggregate — проверка, при которой происходит сбор совокупной информации из базы данных.
- External check — внешняя проверка, при которой запускается исполняемый файл и считывается стандартный вывод.
- Zabbix database monitor — сбор данных из базы через ODBC.
- IPMI agent — сбор данных через интерфейс IPMI.
- SSH agent — Zabbix подключается по SSH и выполняет заданные команды, считывая стандартный вывод.
- TELNET agent — делает то же самое, что и SSH agent, но по протоколу TELNET.
- JMX agent — сбор информации через технологию JMX (наблюдение за Java машиной).
- Calculate — вычисления на основе различных данных (других проверок, их исторических значений).
Для стандартных проверок Zabbix уже имеет шаблоны определения состояния, что упрощает их создание. Помимо перечисленного, есть проверка доступности веб-сервера, когда система мониторинга имитирует запросы браузера.
Агент Zabbix способен собирать различную информацию, отражающую текущее состояние физического сервера. Например:
- CPU idle time — время простоя (когда процессор не выполняет никаких операций).
- CPU interrupt timer — время, затрачиваемое на обработку прерываний от оборудования.
- CPU iowait time — время ожидания запрошенных ресурсов.
- CPU nice time — время, потраченное на обслуживание процессов с изменёнными приоритетами.
- Interrupts per second — количество прерываний от оборудования в секунду.
- Processor load — загруженность ядра процессора.
- Host boot time — время, за которое происходит включение физического сервера.
- Host local time — значение локального времени на сервере.
- System uptime — время непрерывной работы сервера.
- Available memory — объём свободного дискового пространства.
- Free swap space — объём свободного места подкачки.
- Free swap space in % — то же самое, только в процентах.
- Total memory — общий объём дискового пространства.
- Total swap space — общий объём системы подкачки.
И многие другие метрики.
Триггеры
Триггеры в Zabbix — это, по сути, правила или условия, заданные для обнаружения и реагирования на определенные события или проблемы в контролируемой системе. Они служат для непрерывной оценки данных, собранных из различных источников, таких как серверы, приложения или сетевые устройства, и запускают действия или предупреждения на основе заранее определенных критериев.

Триггеры представляют собой логические выражения, цель которых — обрабатывать накопленные данные. Их можно составлять как вручную, так и с помощью конструктора. Есть функция тестирования триггеров на произвольных значениях. Для составления триггеров используются операторы Zabbix, подставляющие необходимые данные, в том числе из конкретной проверки или за заданный интервал времени.
Устанавливается реакция на сработавшие условия, её важность, критерии выхода (снятия предупреждения).
Ключевые аспекты триггеров
- Выражения (Expressions): Триггеры определяются выражениями, которые объединяют различные параметры, такие как значения элементов, функции и логические операторы. Эти выражения оценивают собранные данные и генерируют предупреждения, когда выполняется заданное условие.
- Уровни серьезности (Severity Levels): Триггеры связаны с уровнями серьезности, которые определяют важность проблемы. Уровни серьезности варьируются от Информации до Катастрофы, что помогает классифицировать и решать проблемы в зависимости от их критичности.
- Зависимости (Dependencies): Триггеры могут зависеть от других триггеров или событий, что позволяет создавать более сложные механизмы оповещения. Зависимость помогает избежать излишних оповещений, учитывая состояние связанных триггеров перед генерацией оповещения.
- Действия (Actions): Как только триггер срабатывает (т.е. его условие выполнено), запускаются предварительно определенные действия. Эти действия могут включать в себя отправку уведомлений, запуск сценариев или инициирование других автоматизированных ответов.
Принцип работы триггеров
- Установка условий: Пользователи определяют условия триггера, используя значения элементов (например, использование ЦП, объем дискового пространства, задержки сети) и устанавливают пороги или диапазоны, сигнализирующие о проблеме.
- Оценка данных: Zabbix постоянно собирает данные с мониторируемых элементов и оценивает их с помощью выражений триггера. Если условие, заданное выражением триггера, выполнено, триггер срабатывает.
- Генерация оповещений: При срабатывании триггера Zabbix создает оповещения на основе уровня серьезности, связанного с триггером. Эти оповещения могут быть в виде уведомлений, электронных писем или других настроенных действий.
- Разрешение: После того как условие триггера разрешено (значения элементов возвращаются к нормальным или условие больше не выполняется), Zabbix подтверждает разрешение, отмечает триггер как разрешенный и прекращает генерацию оповещений по этой проблеме.
Практическое применение триггеров
- Мониторинг ресурсов: Триггеры могут отслеживать ресурсы системы, такие как ЦП, память, дисковое пространство, и предупреждать о достижении критических уровней.
- Доступность сервисов: Триггеры могут проверять доступность сервисов и оповещать о их недоступности или проблемах с ними.
- Метрики производительности: Триггеры могут отслеживать метрики производительности, такие как время ответа, задержки или уровень ошибок, и предупреждать о значительных отклонениях от установленных порогов.
Кратко говоря, триггеры играют важную роль в Zabbix, постоянно оценивая собранные данные и генерируя оповещения, когда выполняются определенные условия, что помогает в активном выявлении и решении проблем в мониторируемой среде.
Прогнозирование
У триггеров есть довольно полезная возможность — функции предугадывания будущих значений и того, когда они возникнут по времени. Для составления прогноза используются исторические данные, проанализировав которые, триггер может выявить возможные проблемы в будущем, выдав соответствующее уведомление. Таким образом, можно заранее предупреждать возникающие проблемы, например, пики нагрузки на оборудование или заканчивающееся место на жёстком диске. Данная функциональность была добавлена в обновлении 3.0, выпущенным в феврале 2016.
Низкоуровневое обнаружение
Оно предназначается для автоматического создания элементов и триггеров, чтобы отслеживать состояние различных систем наблюдаемого сервера.
Zabbix умеет обнаруживать:
- файловые системы;
- сетевые интерфейсы;
- процессоры и их ядра;
- распространённые OID, используемые SNMP;
- наличие ODBC;
- службы Windows.
Если этого мало, то имеется возможность задать свои типы обнаружения, используя формат JSON.
Прокси Zabbix
Прокси Zabbix используют в тех случаях, когда инфраструктура достаточно велика, чтобы на одиночный сервер ложилась слишком большая нагрузка. Прокси выступает в роли промежуточного звена, собирающего данные с агентов, как это делает основной сервер. Затем данные из буфера отправляются на центральный сервер.
Но это не единственная причина, по которой может понадобится использование прокси. Он так же нужен, если некоторые агенты находятся в значительно отдалённых местах, что сказывается на величине пинга и их доступности, либо по каким-то причинам ограничены локальной сетью.
Интерфейс
Взаимодействие пользователей с самой системой мониторинга происходит через веб-панель, на которой сгруппированы все элементы управления. На главном экране отображается основная информация: состояние узлов сети и индикаторы состояния триггеров.
Узлы сети — это серверы, с которых снимается информация. У каждого узла есть элементы — отслеживаемые параметры, на изменение которых, собственно, и реагирует система. Каждому параметру можно задать свой интервал обновления и скорость изменения (например, чтобы сообщение о проблеме выводилось только после N проваленных проверок). Для каждого узла не обязательно выставлять свои параметры. Если они одинаковые, то оптимальным решением является использование шаблонов, которые наследуют все серверы.

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



Управление системой так же осуществляется через веб интерфейс: именно там создаются и настраиваются группы, серверы, сбор параметров, триггеры и прочее. Возможно создание множества аккаунтов с разными уровнями доступа.


Заключение
Мониторинг ИТ-инфраструктуры имеет решающее значение для обеспечения оптимальной производительности систем и предотвращения простоев. Без эффективного мониторинга проблемы могут остаться незамеченными, что приведет к снижению производительности, потере доходов и потенциальным инцидентам безопасности.
Zabbix — это мощный инструмент для мониторинга ИТ-инфраструктуры, предлагающий целый ряд возможностей и преимуществ. Благодаря поддержке множества платформ и технологий, мониторингу в режиме реального времени, настраиваемым оповещениям, визуализации данных и отчетности, а также масштабируемости, Zabbix предоставляет широкие возможности мониторинга.
Использование Zabbix для мониторинга ИТ-инфраструктуры позволяет повысить прозрачность ИТ-инфраструктуры, улучшить производительность и время работы системы, сократить время простоя и сопутствующие расходы, а также повысить безопасность благодаря проактивному мониторингу и оповещениям. Эти преимущества делают Zabbix отличным выбором для целого ряда отраслей и организаций, включая поставщиков ИТ-услуг, медицинские учреждения, финансовые организации, учебные заведения и государственные учреждения.
Чтобы начать работу с Zabbix, организации могут загрузить и установить программное обеспечение, настроить его для своей ИТ-инфраструктуры, создать и настроить шаблоны мониторинга, а также настроить оповещения и отчеты. Благодаря удобному интерфейсу и обширной документации Zabbix доступен как опытным ИТ-специалистам, так и новичкам в области мониторинга ИТ-инфраструктуры.
Мы рассмотрели основные возможности пакета Zabbix. На текущий момент он является многофункциональной системой мониторинга, в которой есть все для полноценного наблюдения за ИТ-инфраструктурой предприятия, включая мониторинг сети, серверов и приложений. Система уже может конкурировать с продуктами таких монстров, как HP, IBM, Microsoft и другими. В одной из следующих статей мы рассмотрим сферы применения и возможности Zabbix по сравнению с Microsoft SCOM.
В статье использовались изображения с официального сайта Zabbix.
Мониторинг в Zabbix: Часто задаваемые вопросы (FAQ)
Что такое Zabbix?
Zabbix — это решение для мониторинга с открытым исходным кодом, которое используется для мониторинга различных аспектов IT-инфраструктуры, таких как серверы, сети, приложения и услуги.
Какие преимущества предоставляет Zabbix для мониторинга?
Zabbix предлагает несколько преимуществ для мониторинга, таких как широкий спектр вариантов мониторинга, настраиваемые панели управления, гибкое оповещение и возможности автоматизации. Он также предлагает возможность интеграции с другими инструментами и системами мониторинга.
Какие типы мониторинга поддерживает Zabbix?
Zabbix поддерживает мониторинг различных аспектов IT-инфраструктуры, включая мониторинг серверов, сетей, приложений и услуг, а также мониторинг производительности и мониторинг доступности.
Как настроить мониторинг в Zabbix?
Настройка мониторинга в Zabbix включает в себя несколько шагов, включая добавление устройств для мониторинга, настройку параметров мониторинга и настройку оповещений для предупреждения об отказах или проблемах в системе.
Какие возможности предоставляет Zabbix для оповещения об аномалиях и отказах?
Zabbix предлагает гибкие опции оповещения для предупреждения об аномалиях и отказах, такие как оповещения по электронной почте, SMS, Slack, Telegram и другие. Он также предлагает настраиваемые правила оповещения для определения разных уровней приоритетов и методов оповещения.
Какие виды отчетов можно получить в Zabbix?
Zabbix предоставляет различные виды отчетов, включая отчеты о производительности, отчеты о доступности, отчеты о событиях и отчеты о трендах. Он также позволяет создавать настраиваемые отчеты на основе собранных данных.

