Zabbix требуется и оперативная память, и физическая память на жестком диске. Отправной точкой могут быть 128 МБ оперативной памяти и 256 МБ свободного места на жестком диске. Впрочем, очевидно, что объем необходимой дисковой памяти зависит от количества наблюдаемых узлов сети и наблюдаемых параметров. Если вы планируете достаточно долго хранить историю наблюдаемых параметров, то потребуется по крайней мере несколько гигабайт для хранения данных истории в базе данных. Каждый процесс демона Zabbix требует несколько подключений к базе данных. Объем памяти требуемый каждым подключением к базе данных зависит от настроек базы данных.
Чем больше оперативной памяти у вас имеется, тем быстрее работает база данных (а следовательно, и Zabbix)!
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 протестирован на следующих платформах:
Также 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 | Требуется при использовании шифрования. |
Если вы получили 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) и вычитается из штампов времени полученных данных с пассивных подключений (пассивный прокси). Все остальные проверки выполняются по времени сервера и их штампы времени не корректируются.