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/Percona | 5.7.28-8.0.X | 8.0.X | Требуется, если MySQL используется как основная база данных Zabbix'а. Требуется InnoDB engine. Мы рекомендуем использовать библиотеку MariaDB Connector/C для создания сервера/прокси независимо от того, используете ли вы сервер базы данных MySQL или MariaDB. |
MariaDB | 10.0.37-10.5.X | 10.5.X | Требуется, если MariaDB используется как основная база данных Zabbix'а. Требуется InnoDB engine. Мы рекомендуем использовать библиотеку MariaDB Connector/C для создания сервера/прокси независимо от того, используете ли вы сервер базы данных MySQL или MariaDB. |
Oracle | 12.1.0.2 - 19c | 19c | Требуется, если Oracle используется как основная база данных Zabbix'а. |
PostgreSQL (без партиционирования) | 10.9-13.X | 12.X.X or newer | Требуется, если PostgreSQL используется как основная база данных Zabbix'а. |
PostgreSQL (c партиционированием) | 10.9-13.X | 13.X.X | Требуется, если PostgreSQL используется как основная база данных Zabbix'а. |
PostgreSQL c TimescaleDB | Timescale DB 1.5-2.1 | PostgreSQL 12 c TimescaleDB 1.7.X/2.0.X или PostgreSQL 13.2 с TimescaleDB 2.1 |
Требуется, если TimescaleDB используется как база данных Zabbix'а. Убедитесь, что установлена версия Timescale DB c поддержкой сжатия. |
SQLite | 3.3.5-3.34.X | 3.3X.X | Поддерживается только на стороне Zabbix прокси. Требуется, если SQLite используется базой данных Zabbix прокси. |
** * ** Несмотря на то, что Zabbix может работать с минимально поддерживаемыми версиями, некоторые релизы этих баз данных устарели и более не поддерживаются разработчиками. Для достижения наилучшей производительности и стабильной работы Zabbix, советуем рассмотреть возможность апгрейда до рекомендованной версии.
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) и вычитается из штампов времени полученных данных с пассивных подключений (пассивный прокси). Все остальные проверки выполняются по времени сервера и их штампы времени не корректируются.
Zabbix configuration data require a fixed amount of disk space and do not grow much.
Zabbix database size mainly depends on these variables, which define the amount of stored historical data:
This is the average number of new values Zabbix server receives every second. For example, if we have 3000 items for monitoring with a refresh rate of 60 seconds, the number of values per second is calculated as 3000/60 = 50.
It means that 50 new values are added to Zabbix database every second.
Zabbix keeps values for a fixed period of time, normally several weeks or months. Each new value requires a certain amount of disk space for data and index.
So, if we would like to keep 30 days of history and we receive 50 values per second, the total number of values will be around (30*24*3600)* 50 = 129.600.000, or about 130M of values.
Depending on the database engine used, type of received values (floats, integers, strings, log files, etc), the disk space for keeping a single value may vary from 40 bytes to hundreds of bytes. Normally it is around 90 bytes per value for numeric items2. In our case, it means that 130M of values will require 130M * 90 bytes = 10.9GB of disk space.
The size of text/log item values is impossible to predict exactly, but you may expect around 500 bytes per value.
Zabbix keeps a 1-hour max/min/avg/count set of values for each item in the table trends. The data is used for trending and long period graphs. The one hour period can not be customized.
Zabbix database, depending on the database type, requires about 90 bytes per each total. Suppose we would like to keep trend data for 5 years. Values for 3000 items will require 3000*24*365* 90 = 2.2GB per year, or 11GB for 5 years.
Each Zabbix event requires approximately 250 bytes of disk space1. It is hard to estimate the number of events generated by Zabbix daily. In the worst-case scenario, we may assume that Zabbix generates one event per second.
For each recovered event, an event_recovery record is created. Normally most of the events will be recovered so we can assume one event_recovery record per event. That means additional 80 bytes per event.
Optionally events can have tags, each tag record requiring approximately 100 bytes of disk space1. The number of tags per event (#tags) depends on configuration. So each will need an additional #tags * 100 bytes of disk space.
It means that if we want to keep 3 years of events, this would require 3*365*24*3600* (250+80+#tags*100) = ~30GB+#tags*100B disk space2.
1 More when having non-ASCII event names, tags and values.
2 The size approximations are based on MySQL and might be different for other databases.
The table contains formulas that can be used to calculate the disk space required for Zabbix system:
Parameter | Formula for required disk space (in bytes) |
---|---|
Zabbix configuration | Fixed size. Normally 10MB or less. |
History | days*(items/refresh rate)*24*3600*bytes items : number of items days : number of days to keep history refresh rate : average refresh rate of items bytes : number of bytes required to keep single value, depends on database engine, normally ~90 bytes. |
Trends | days*(items/3600)*24*3600*bytes items : number of items days : number of days to keep history bytes : number of bytes required to keep single trend, depends on the database engine, normally ~90 bytes. |
Events | days*events*24*3600*bytes events : number of event per second. One (1) event per second in worst-case scenario. days : number of days to keep history bytes : number of bytes required to keep single trend, depends on the database engine, normally ~330 + average number of tags per event * 100 bytes. |
So, the total required disk space can be calculated as:
Configuration + History + Trends + Events
The disk space will NOT be used immediately after Zabbix installation. Database size will grow then it will stop growing at some point, which depends on housekeeper settings.
It is very important to have precise system time on the server with Zabbix running. ntpd is the most popular daemon that synchronizes the host's time with the time of other machines. It's strongly recommended to maintain synchronized system time on all systems Zabbix components are running on.