2 Требования

Аппаратное обеспечение

Память

Zabbix требуется и оперативная память, и физическая память на жестком диске. Отправной точкой могут быть 128 МБ оперативной памяти и 256 МБ свободного места на жестком диске. Впрочем, очевидно, что объем необходимой дисковой памяти зависит от количества наблюдаемых узлов сети и наблюдаемых параметров. Если вы планируете достаточно долго хранить историю наблюдаемых параметров, то потребуется по крайней мере несколько гигабайт для хранения данных истории в базе данных. Каждый процесс демона Zabbix требует несколько подключений к базе данных. Объем памяти требуемый каждым подключением к базе данных зависит от настроек базы данных.

Чем больше оперативной памяти у вас имеется, тем быстрее работает база данных (а следовательно, и Zabbix)!

CPU

Zabbix и особенно база данных может потребовать значительных процессорных ресурсов в зависимости от количества наблюдаемых параметров и выбранной базы данных.

Другое оборудование

Для использования SMS уведомлений встроенных в Zabbix потребуется последовательный порт передачи данных и GSM модем. Конвертер USB-to-serial также будет работать.

Примеры конфигураций оборудования

В таблице приводятся несколько вариантов аппаратных конфигураций:

Название Платформа CPU/Память База данных Наблюдаемые узлы сети
Маленькая CentOS Виртуальная машина MySQL InnoDB 20
Средняя CentOS 2 ядра CPU / 2ГБ MySQL InnoDB 500
Большая RedHat Enterprise Linux 4 ядра CPU / 8ГБ RAID10 MySQL InnoDB или PostgreSQL >1000
Очень большая RedHat Enterprise Linux 8 ядер CPU / 16ГБ Быстрый RAID10 MySQL InnoDB или PostgreSQL >10000

Фактически параметры конфигурации зависят от количества активных элементов данных и частоты обновления этих элементов. Настоятельно рекомендуем производить запуск базы данных на отдельном сервере для крупных установок.

Поддерживаемые платформы

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

Zabbix протестирован на следующих платформах:

  • Linux
  • IBM AIX
  • FreeBSD
  • NetBSD
  • OpenBSD
  • HP-UX
  • Mac OS X
  • Solaris
  • Windows: все версии для настольных компьютеров и серверов начиная с XP (только Zabbix агент)

Также Zabbix может работать и на других Unix-подобных операционных системах.

Zabbix отключает дампы памяти, если скомпилирован с шифрованием и не запустится, если система не позволяет отключение дампов памяти.

Программное обеспечение

Zabbix построен на современном веб-сервере Apache, ведущих СУБД, и языке сценариев PHP.

Системы управления базами данных
Программа Версия Комментарии
MySQL 5.5.62 - 8.0.x Требуется, если MySQL используется как основная база данных Zabbix'а. Требуется InnoDB engine.
MariaDB (10.0.37 или более новая) также работает с Zabbix.
Мы рекомендуем использовать библиотеку MariaDB Connector/C для создания сервера/прокси независимо от того, используете ли вы сервер базы данных MySQL или MariaDB.
Oracle 11.2 или более новая Требуется, если Oracle используется как основная база данных Zabbix'а.
PostgreSQL 9.2.24 или более новая Требуется, если PostgreSQL используется как основная база данных Zabbix'а.
Предлагаем использовать PostgreSQL по крайней мере версии 8.3, который показывает очень хорошую производительность VACUUM.
TimescaleDB 1.0 или новее, OSS (бесплатная) версия Требуется, если TimescaleDB используется как база данных Zabbix'а.
SQLite 3.3.5 или более новая Поддерживается только на стороне Zabbix прокси. Требуется, если SQLite используется базой данных Zabbix прокси.
Веб-интерфейс

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

Приложение Версия Комментарии
Apache 1.3.12 или более поздняя
PHP 7.2.5 или более поздняя
Расширения PHP:
gd 2.0.28 или более поздняя Расширение PHP GD должен поддерживать формат PNG (--with-png-dir), JPEG (--with-jpeg-dir) изображения и FreeType 2 (--with-freetype-dir).
bcmath php-bcmath (--enable-bcmath)
ctype php-ctype (--enable-ctype)
libXML 2.6.15 или более поздняя php-xml или php5-dom, если поставляется как отдельный пакет от поставщика.
xmlreader php-xmlreader, если поставляется как отдельный пакет от поставщика.
xmlwriter php-xmlwriter, если поставляется как отдельный пакет от поставщика.
session php-session, если поставляется как отдельный пакет от поставщика.
sockets php-net-socket (--enable-sockets). Требуется для поддержки пользовательских скриптов.
mbstring php-mbstring (--enable-mbstring)
gettext php-gettext (--with-gettext). Требуется для работы переводов.
ldap php-ldap. Требуется только, если в веб-интерфейсе используется LDAP аутентификация.
mysqli Требуется, если используется MySQL в качестве базы для Zabbix.
oci8 Требуется, если используется Oracle в качестве базы для Zabbix.
pgsql Требуется, если используется PostgresSQL в качестве базы для Zabbix.

Также Zabbix может работать и с предыдущими версиями Apache, MySQL, Oracle, и PostgreSQL.

Для шрифтов, кроме DejaVu, который установлен по умолчанию, нужна функция PHP imagerotate. Если функция не установлена, то эти шрифты могут неправильно отображаться при отображении графика. Эта функция доступна только если PHP скомпилирован вместе с GD, которого нет для Debian и для некоторых других дистрибутивов.

Веб-браузер на стороне клиента

Cookies и Java Script должны быть включены.
Поддерживаются последние версии Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari и Opera.

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

Всё еще, страницы помещенные в Zabbix фреймы будут иметь доступ к веб-интерфейсу Zabbix (посредством JavaScript), если страница, которая помещена во фрейм и веб-интерфейс Zabbix располагаются на одном домене. Такая страница как http://secure-zabbix.com/cms/page.html, если помещена в комплексные экраны на http://secure-zabbix.com/zabbix/, будет иметь полный доступ к Zabbix посредством JS.

Сервер

Обязательные требования нужны всегда. Тогда как опциональные требования требуется только для поддержки определенных функций.

Требование Статус Описание
libpcre Обязательно PCRE библиотека требуется для поддержки PCRE совместимых регулярных выражений.
Наименование может отличаться в зависимости от GNU/Linux дистрибутива, например 'libpcre3' или 'libpcre1'. Обратите внимание, что необходима именно PCRE(v8.X), тогда как PCRE2(v10.X) библиотека не используется.
libevent Требуется для массового сбора метрик и IPMI мониторинга. Версия 1.4 или более новая.
Обратите внимание, что для Zabbix прокси это требование опциональное, и нужно только для IPMI мониторинга.
libpthread Требуется для поддержки мьютексов (mutex) и блокировок чтения-записи (read-write).
zlib Требуется для поддержки сжатия.
OpenIPMI Опционально Требуется для поддержки IPMI
libssh2 Требуется для поддержки SSH. Версия 1.0 или более новая.
fping Требуется для элементов данных ICMP пинг.
libcurl Требуется для веб-мониторинга, мониторинга VMware, SMTP аутентификации, элементов данных Zabbix агента web.page.*, элментов данных HTTP агента и Elasticsearch (если используется). Рекомендуется версия 7.28.0 или новее.
Для SMTP аутентификации, требуется версия 7.20.0 или выше. Для Elasticsearch требуется версия 7.28.0 или новее.
libxml2 Требуется для мониторинга VMware и предобработки XML XPath.
net-snmp Требуется для поддержки SNMP. Версия 5.3.0 или новее.
GnuTLS, OpenSSL or LibreSSL Требуется при использовании шифрования.
Java gateway

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

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

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

Однако, если вы хотите использовать другие версии этих зависимостей (например, если вы готовите пакет для определенного дистрибутива Linux), ниже приведен список версий библиотек, для которых подтверждена работоспособность Java gateway. Zabbix может также работать с другими версиями этих библиотек.

Следующая таблица содержит список JAR файлов, которые поставляются вместе в Java gateway в оригинальном коде:

Библиотека Лицензия Веб сайт Комментарии
logback-core-0.9.27.jar EPL 1.0, LGPL 2.1 http://logback.qos.ch/ Протестировано с версиями 0.9.27, 1.0.13, и 1.1.1.
logback-classic-0.9.27.jar EPL 1.0, LGPL 2.1 http://logback.qos.ch/ Протестировано с версиями 0.9.27, 1.0.13, и 1.1.1.
slf4j-api-1.6.1.jar MIT License http://www.slf4j.org/ Протестировано с версиями 1.6.1, 1.6.6, и 1.7.6.
android-json-4.3_r3.1.jar Apache License 2.0 https://android.googlesource.com/platform/libcore/+/master/json Протестировано с версиями 2.3.3_r1.1 и 4.3_r3.1. Обратитесь к файлу src/zabbix_java/lib/README для получения инструкций по созданию JAR файла.

Java gateway компилируется и запускается при наличии Java версии 1.6 или выше. Если вы готовите прекомпилированную версию Zabbix gateway для использования ее другими, то рекомендуется использовать для компиляции Java 1.6, в этом случае Zabbix gateway будет работать на всех версиях Java вплоть до самой последней.

Размер базы данных

Данные конфигурации Zabbix требуют фиксированное количество дискового пространства и сильно не увеличиваются.

Размер базы данных Zabbix в основном зависит от следующих переменных, которые определяют объем хранимых данных истории:

  • Количество обрабатываемых запросов в секунду

Это среднее количество новых значений, которые Zabbix сервер получает каждую секунду. Например: Если имеется 3000 элементов данных с интервалом проверки 60 секунд, то количество обрабатываемых запросов за секунду рассчитывается 3000/60 = 50.

Это означает, что каждую секунду в базу данных Zabbix добавляется 50 новых записей.

  • Настройки очистки истории в базе данных

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

Таким образом, если требуется сохранение 30 дней истории и каждую секунду в базу данных добавляется 50 новых записей, общее количество значений будет равно примерно (30*24*3600)* 50 = 129.600.000 или около 130М значений.

В зависимости от типа базы данных, типа полученных значений (с плавающей точкой, целочисленный, строки, файлы журналов и т.д.) может потребоваться от 40 байт до сотен байт дискового пространства для хранения значения. Обычно одно значение занимает около 90 байт по числовым элементам данных2. В нашем случае это означает, что 130M значений потребуют 130M * 90 байт = 10.9ГБ дискового пространства.

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

  • Настройки очистки динамики изменений в базе данных

Zabbix хранит ежечасную статистику значений max/min/avg/count для каждого элемента данных в таблице trends. Эти данные используются для отслеживания динамики изменений и для графиков при отображении большого периода времени. Период в 1 час не является настраиваемым.

Базе данных Zabbix, в зависимости от типа базы данных, требуется около 90 байт на один элемент. Предположим, что если требуется хранить динамику изменений в течении 5 лет. Значения 3000 элементов данных потребуют 3000*24*365* 90 = 2.2ГБ за год, или 11ГБ за 5 лет.

  • Настройки очистки событий в базе данных

Каждое событие требует около 250 байт дискового пространства1. Сложно точно оценить количество событий, ежедневно генерируемых Zabbix сервером. В самом худшем случае, мы можем предположить, что Zabbix генерирует одно событие в секунду.

По каждому событию восстановления создается запись в event_recovery. Обычно большая часть событий восстанавливается, поэтому мы можем предположить, что в event_recovery будет по одной записи по каждому событию. Это означает дополнительные 80 байт по каждому событию.

Опционально, у событий могут быть теги, каждая запись тега требует приблизительно 100 байт дискового пространства1. Количество тегов по каждому событию (#теги) зависит от конфигурации. Таким образом каждая запись потребует дополнительно #теги * 100 байт дискового пространства2.

Это означает, что для того, чтобы хранить события 3 года, потребуется 3*365*24*3600* (250 + 80 + #теги * 100) = ~30ГБ+#теги*100Б дискового пространства.

1 Больше, когда имеются не-ASCII имена событий, тегов и значения.

2 Приблизительные размеры основаны на MySQL и могут отличаться для других баз данных.

Представленная ниже таблица содержит формулы для расчета требуемого пространства жесткого диска для системы мониторинга Zabbix:

Параметр Формула для расчета занимаемого места(в байтах)
Конфигурация Zabbix Фиксированный размер. Ориентировочно 10МБ или меньше.
История дней*(элементов/частота обновления)*24*3600*байт
элементы : количество элементов данных
дней : количество дней хранения истории
частота обновления : среднее значение периода проверки элементов данных
байт : количество байт, требуемых для одного значения, зависит от типа базы данных, около 90 байт
Динамика изменений дней*(элементов/3600)*24*3600*байт
элементов : количество элементов данных
дней : количество дней хранения динамики изменений
байт : количество байт, требуемых для одного значения, зависит от типа базы данных, около 90 байт.
События дней*событий*24*3600*байт
событий : количество событий в секунду. Одно (1) событие в худшем случае.
дней : количество дней хранения событий
байт : количество байт, требуемых для одного значения, зависит от типа базы данных, обычно примерно 330 + среднее количество тегов по каждому событию * 100 байт.

Общее количество требуемого места на жестком диске рассчитывается:
Конфигурация + История + Динамика изменений + События
После установки Zabbix такое дисковое пространство более НЕ будет использовано сразу. Размер базы данных будет постепенно увеличиваться и остановится по достижении определенного момента, зависящего от настроек очистки базы данных.

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

Синхронизация времени

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

Если время не синхронизировано, Zabbix будет конвертировать штампы времени собранных данных на время Zabbix сервера путем получения штампов времени клиента/сервера после установки соединения для передачи данных и корректировки штампов времени у полученных значений элементов данных при помощи разницы между клиент-сервер временем. Чтобы не усложнять работу и избежать возможные сложности, задержка в соединении игнорируется. По этой причине задержка в соединении добавляется к штампам времени полученных данных с активных подключений (активный агент, активный прокси, sender) и вычитается из штампов времени полученных данных с пассивных подключений (пассивный прокси). Все остальные проверки выполняются по времени сервера и их штампы времени не корректируются.