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

Система состоит из четырёх основных компонентов:
- Сервер мониторинга, который собирает и обрабатывает данные от всех агентов.
- Прокси сервер, выполняющий те же функции, но с последующей отправкой на центральный сервер.
- Веб-интерфейс для мониторинга.
- Агент, собирающий данные на физическом сервере.
Для работы необходима одна из нескольких возможных вариантов баз данных, которая должна быть предварительно настроена (это происходит автоматически, с помощью готовых скриптов):
- 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
В систему мониторинга уже встроен ряд стандартных метрик:
- нагрузка на процессор, в том числе отдельными процессами;
- объём свободной оперативной памяти;
- активность жёсткого диска;
- объём свободной физической памяти;
- сетевая активность;
- пинг.
А также прочие проверки общего назначения и для самых распространённых сервисов, таких как веб-сервер, СУБД, 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, подставляющие необходимые данные, в том числе из конкретной проверки или за заданный интервал времени.
Устанавливается реакция на сработавшие условия, её важность, критерии выхода (снятия предупреждения).
Прогнозирование
У триггеров есть довольно полезная возможность — функции предугадывания будущих значений и того, когда они возникнут по времени. Для составления прогноза используются исторические данные, проанализировав которые, триггер может выявить возможные проблемы в будущем, выдав соответствующее уведомление. Таким образом, можно заранее предупреждать возникающие проблемы, например, пики нагрузки на оборудование или заканчивающееся место на жёстком диске. Данная функциональность была добавлена в обновлении 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 предоставляет различные виды отчетов, включая отчеты о производительности, отчеты о доступности, отчеты о событиях и отчеты о трендах. Он также позволяет создавать настраиваемые отчеты на основе собранных данных.