Память
Zabbix требуется как физическая память, так и память на диске. Очевидно, что объём необходимой памяти на диске зависит от количества наблюдаемых узлов сети и наблюдаемых параметров. Если вы планируете достаточно долгосрочное хранение истории наблюдаемых параметров, то потребуется по крайней мере несколько гигабайт для хранения данных истории в базе данных. Каждый из процессов демона Zabbix требует несколько подключений к серверу базы данных. Объём памяти, требуемый на каждое из подключений к базе данных, зависит от настроек базы данных.
Чем больше оперативной памяти вам доступно, тем быстрее работает база данных (а следовательно, и Zabbix).
CPU
Zabbix и особенно база данных могут потребовать значительных ресурсов процессора в зависимости от количества наблюдаемых параметров и выбранного типа базы данных.
Другое оборудование
Для использования встроенных в Zabbix SMS уведомлений потребуется последовательный порт передачи данных и GSM модем. Конвертер USB-to-serial также будет работать.
Следующая таблица приводит примеры конфигураций оборудования для платформы Linux/BSD/Unix.
Это примеры размеров и конфигураций оборудования, с которых можно начать. Каждая инсталляция Zabbix уникальна. Обязательно оцените производительность вашей системы Zabbix на промежуточной среде или среде разработки, чтобы вы смогли полностью понять свои требования перед развёртыванием инсталляции Zabbix в производственной среде.
Размер инсталляции | Кол-во наблюдаемых метрик1 | Ядра CPU/vCPU | Память (ГБ) |
База данных | Amazon EC22 |
---|---|---|---|---|---|
Маленькая | 1 000 | 2 | 8 | MySQL сервер, Percona сервер, MariaDB сервер, PostgreSQL |
m6i.large/m6g.large |
Средняя | 10 000 | 4 | 16 | MySQL сервер, Percona сервер, MariaDB сервер, PostgreSQL |
m6i.xlarge/m6g.xlarge |
Большая | 100 000 | 16 | 64 | MySQL сервер, Percona сервер, MariaDB сервер, PostgreSQL, Oracle |
m6i.4xlarge/m6g.4xlarge |
Очень большая | 1 000 000 | 32 | 96 | MySQL сервер, Percona сервер, MariaDB сервер, PostgreSQL, Oracle |
m6i.8xlarge/m6g.8xlarge |
1 1 метрика = 1 элемент данных + 1 триггер + 1 график
2 Пример с инстансами Amazon EC2 общего назначения, с использованием архитектур ARM64 или x86_64. Необходимый тип инстанса, такой как оптимизированный на Compute/Memory/Storage, необходимо выбрать во время оценки и тестирования инсталляции Zabbix перед установкой в производственной среде.
Фактическая конфигурация очень сильно зависит от количества активных элементов данных и частоты обновления (смотрите раздел этой же страницы размер базы данных для получения подробных сведений). Настоятельно рекомендуется в случае крупных инсталляций запускать базу данных на отдельной машине.
В связи с требованиями безопасности и критически важным характером работы системы мониторинга, единственной операционной системой, которая может обеспечить необходимую производительность, отказоустойчивость и гибкость является операционная система UNIX. Zabbix работает на лидирующих на рынке версиях.
Компоненты Zabbix доступны и протестированы на следующих платформах:
Платформа | Сервер | Агент | Агент 2 |
---|---|---|---|
Linux | x | x | x |
IBM AIX | x | x | - |
FreeBSD | x | x | - |
NetBSD | x | x | - |
OpenBSD | x | x | - |
HP-UX | x | x | - |
Mac OS X | x | x | - |
Solaris | x | x | - |
Windows | - | x | x |
Zabbix сервер/агент может работать также и на других Unix-подобных операционных системах. Zabbix агент поддерживается на всех версиях Windows для рабочих станций и серверов, начиная с XP (64-битные версии). Zabbix агент не будет работать на платформах AIX ниже версий 6.1 TL07 / AIX 7.1 TL01.
Чтобы предотвратить критические уязвимости безопасности в Zabbix агенте 2, он компилируется только с поддерживаемыми релизами Go [en]. Начиная с Go 1.21, повышены минимальные необходимые версии Windows [en]; поэтому минимальной версией Windows для Zabbix агента 2 является Windows 10/Server 2016.
Zabbix отключает дампы памяти, если скомпилирован с шифрованием, и не запустится, если система не позволяет отключение дампов памяти.
Zabbix использует современные веб-сервера, ведущие СУБД и язык сценариев PHP.
Если отмечено как обязательное, требуемое программное обеспечение/библиотека строго необходимы. Не являющиеся обязательными требуются для поддержки отдельных функций.
Программное обеспечение | Признак обязательности | Поддерживаемые версии | Комментарии |
---|---|---|---|
MySQL/Percona | Один из | 8.0.30-9.0.X | Требуется, если в качестве основной базы данных Zabbix используется MySQL (или Percona). Требуется модуль InnoDB. Добавлена поддержка версий MySQL: - 8.4.X с версии Zabbix 7.0.1; - 9.0.X с версии Zabbix 7.0.2. Мы рекомендуем использовать библиотеку C API (libmysqlclient) для сборки сервера/прокси. |
MariaDB | 10.5.00-11.5.X | Требуется модуль InnoDB. Рекомендуется использовать версию 11.4. Мы рекомендуем использовать библиотеку MariaDB Connector/C для сборки сервера/прокси. Добавлена поддержка версий MariaDB: - 11.4.X с версии Zabbix 7.0.1; - 11.5.X с версии Zabbix 7.0.4. Смотрите также: Возможные взаимные блокировки с MariaDB. |
|
Oracle | 19c - 21c | Требуется, если в качестве основной базы данных Zabbix используется Oracle. Начиная с версии Zabbix 7.0, поддержка базы данных Oracle объявлена устаревшей. |
|
PostgreSQL | 13.0-17.X | Требуется, если в качестве основной базы данных Zabbix используется PostgreSQL. В зависимости от размера инсталляции, может потребоваться увеличить параметр конфигурации PostgreSQL work_mem (значение по умолчанию 4МБ), чтобы объём памяти, используемый базой данных для отдельной операции, был достаточным и выполнение запроса не занимало бы слишком много времени. Добавлена поддержка версий PostgreSQL: - 17.X с Zabbix 7.0.6. |
|
TimescaleDB для PostgreSQL | 2.13.0-2.17.X | Требуется, если TimescaleDB используется как расширение базы данных PostgreSQL. Убедитесь, что устанавливаете TimescaleDB Community Edition, которая поддерживает сжатие. Обратите внимание, что PostgreSQL 15 поддерживается с TimescaleDB 2.10. Сведения о совместимости версий PostgreSQL и TimescaleDB вы можете найти в документации Timescale [en]. Добавлена поддержка версий TimescaleDB: - 2.15.X с Zabbix 7.0.1; - 2.16.X с Zabbix 7.0.4; - 2.17.X с Zabbix 7.0.6. |
|
SQLite | Опционально | 3.3.5-3.34.X | SQLite поддерживается только с Zabbix прокси. Требуется, если в качестве базы данных Zabbix прокси используется SQLite. |
smartmontools | 7.1 или новее | Требуется для Zabbix агента 2. | |
who | Требуется для плагина подсчёта пользователей. | ||
dpkg | Требуется для плагина system.sw.packages. | ||
pkgtool | Требуется для плагина system.sw.packages. | ||
rpm | Требуется для плагина system.sw.packages. | ||
pacman | Требуется для плагина system.sw.packages. | ||
q applets | Для плагина system.sw.packages на Gentoo Linux требуются qlist и qsize , как часть q applets. |
Хотя Zabbix может работать с базами данных, которые доступны в операционных системах, для наибольшего удобства пользования мы рекомендуем использовать базы данных, установленные из официальных репозиториев разработчиков баз данных.
Минимально поддерживаемая ширина экрана для веб-интерфейса Zabbix — 1200px.
Если отмечено как обязательное, требуемое приложение/библиотека строго необходимы. Необязательные требуются для поддержки некоторых отдельных функций.
Приложение | Признак обязательности | Поддерживаемые версии | Комментарии |
---|---|---|---|
PHP | Да | 8.0.0 - 8.3.X | |
Apache | Одно из | 2.4 или новее | |
Nginx | 1.20 или новее | ||
MySQL | Одно из | ||
PostgreSQL | |||
Oracle | |||
Расширения PHP | |||
mysqli | Да | Требуется, если в качестве базы данных Zabbix используется MySQL. | |
pgsql | Требуется, если в качестве базы данных Zabbix используется PostgreSQL. | ||
oci8 | Требуется, если в качестве базы данных Zabbix используется Oracle. | ||
bcmath | php-bcmath (--enable-bcmath) | ||
mbstring | php-mbstring (--enable-mbstring) | ||
sockets | php-net-socket (--enable-sockets); требуется для поддержки пользовательских скриптов. | ||
gd | 2.0.28 или новее | php-gd (если поставляется как отдельный пакет от поставщика); расширение PHP GD должно поддерживать изображения PNG (--with-png-dir), JPEG (--with-jpeg-dir) и FreeType 2 (--with-freetype-dir). Во избежание возможного наложения текста в графиках для некоторых языков веб-интерфейса, может потребоваться версия 2.3.0 или новее. | |
libxml | 2.6.15 или новее | php-xml (если поставляется как отдельный пакет от поставщика) | |
xmlwriter | php-xmlwriter (если поставляется как отдельный пакет от поставщика) | ||
xmlreader | php-xmlreader (если поставляется как отдельный пакет от поставщика) | ||
ctype | php-ctype (--enable-ctype) | ||
session | php-session (если поставляется как отдельный пакет от поставщика) | ||
ldap | Нет | php-ldap; требуется для LDAP аутентификации. | |
openssl | php-openssl; требуется для SAML аутентификации. | ||
gettext | php-gettext (--with-gettext); требуется для работы переводов. | ||
curl | php-curl; требуется для опции многофакторной аутентификации Duo Universal Prompt. |
Сторонние библиотеки веб-интерфейса, поставляемые с Zabbix:
Библиотеки | Признак обязательности | Минимальная версия | Комментарии |
---|---|---|---|
библиотека jQuery JavaScript | Да | 3.6.0 | Библиотека JavaScript, которая упрощает процесс кроссбраузерной разработки. |
jQuery UI | 1.12.1 | Набор интерфейсных взаимодействий пользователя, эффектов, виджетов и тем, созданных на основе jQuery. | |
SAML PHP Toolkit | 4.0.0 | Набор инструментов PHP, который добавляет поддержку аутентификации SAML 2.0 для входа в Zabbix. | |
Symfony Yaml компонент | 5.1.0 | Добавление поддержки экспорта и импорта элементов конфигурации Zabbix в формате YAML. |
Zabbix может работать также и с предыдущими версиями Apache, MySQL, Oracle и PostgreSQL.
Для шрифтов, помимо используемого по умолчанию DejaVu, может потребоваться функция PHP imagerotate [en]. Если функция отсутствует, при отображении графиков шрифты могут отрисовываться некорректно. Эта функция доступна, только если PHP скомпилирован вместе с GD, что не относится к Debian и некоторым другим дистрибутивам.
Сторонние библиотеки, используемые для написания и отладки кода веб-интерфейса Zabbix:
Библиотека | Признак обязательности | Минимальная версия | Описание |
---|---|---|---|
Composer | Нет | 2.4.1 | Менеджер пакетов уровня приложений для PHP, который обеспечивает стандартный формат для управления зависимостями PHP программных приложений и требуемых библиотек. |
PHPUnit | 8.5.29 | Среда модульного тестирования PHP для тестирования Zabbix веб-интерфейса. | |
SASS | 3.4.22 | Язык сценариев препроцессора, который интерпретируется и компилируется в Cascading Style Sheets (CSS). |
Cookies и JavaScript должны быть включены.
Поддерживаются последние стабильные версии 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/libpcre2 | Одна из | Библиотека PCRE/PCRE2 требуется для поддержки Perl-совместимых регулярных выражений (PCRE). Наименование может отличаться в зависимости от дистрибутива GNU/Linux, например «libpcre3» или «libpcre1». Поддерживаются библиотеки PCRE v8.x и PCRE2 v10.x. |
libevent | Да | Требуется для взаимодействия между процессами. Версия 2.0.10 или выше (с версии Zabbix 7.0.4; 1.4 до этого). |
libpthread | Требуется для поддержки мьютексов (mutex) и блокировок на чтение-запись (может быть частью libc). | |
libresolv | Требуется для разрешения имён DNS (может быть частью libc). | |
libiconv | Требуется для конвертации кодировки / формата текста (может быть частью libc). Обязательно для Zabbix сервера на Linux. | |
libz | Требуется для поддержки сжатия. | |
libm | Математическая библиотека. Требуется только для Zabbix сервера. | |
libmysqlclient | Одна из | Требуется, если используется MySQL. |
libmariadb | Требуется, если используется MariaDB. | |
libclntsh | Требуется, если используется Oracle; версия libclntsh должна совпадать либо быть выше, чем версия используемой базы данных Oracle. | |
libpq5 | Требуется, если используется PostgreSQL; версия libpq5 должна совпадать либо быть выше, чем версия используемой базы данных PostgreSQL | |
libsqlite3 | Требуется, если используется Sqlite. Требуется только для Zabbix прокси. | |
OpenIPMI | Нет | Требуется для поддержки IPMI. Требуется только для Zabbix сервера. |
libssh2 или libssh | Требуется для SSH проверок. Версия 1.0 или выше (libssh2); 0.9.0 или выше (libssh). | |
libcurl | Требуется для веб-мониторинга, VMware мониторинга, SMTP аутентификации, элементов данных Zabbix агента web.page.* , элементов данных HTTP агента и Elasticsearch (если используется). Требуется версия 7.19.1 или выше (рекомендуется версия 7.28.0 или выше).Требования к версии Libcurl: - SMTP аутентификация: версия 7.20.0 или новее - Elasticsearch: версия 7.28.0 или новее Для использования возможностей обновлённых версий cURL перезапустите Zabbix сервер/прокси и агента (для элементов данных web.page.* ). |
|
libxml2 | Требуется для мониторинга VMware и предобработки XML XPath. | |
libnetsnmp | Требуется для поддержки SNMP. Версия 5.3.0 или новее. Поддержка надёжных протоколов шифрования (AES192/AES192C, AES256/AES256C) доступна, начиная с библиотеки net-snmp 5.8; на системах на основе RHEL 8+ рекомендуется использовать net-snmp 5.8.15 или более новую. |
|
libunixodbc | Требуется для мониторинга баз данных. | |
libgnutls или libopenssl | Требуется при использовании шифрования. Минимальные версии: libgnutls — 3.1.18, libopenssl — 1.0.1 |
|
libldap | Требуется для поддержки LDAP. | |
fping | Требуется для элементов данных ICMP пинг. |
Требование | Признак обязательности | Описание |
---|---|---|
libpcre/libpcre2 | Одна из | Библиотека PCRE требуется для поддержки Perl-совместимых регулярных выражений (PCRE). Наименование может отличаться в зависимости от дистрибутива GNU/Linux, например «libpcre3» или «libpcre1». Поддерживаются библиотеки PCRE v8.x и PCRE2 v10.x. Требуется для мониторинга журналов. Также требуется на Windows. |
libpthread | Требуется для поддержки мьютексов и блокировок на чтение-запись (может быть частью libc). Не требуется на Windows. | |
libresolv | Требуется для разрешения имён DNS (может быть частью libc). Не требуется в Windows. | |
libiconv | Требуется для конвертации кодировки/форматирования текста в UTF-8 в элементах данных журналов, содержимого файлов, в регулярных выражениях файлов и в элементах данных с поиском соответствия по регулярному выражению (может быть частью libc). Не требуется на Windows. | |
libgnutls или libopenssl | Нет | Требуется при использовании шифрования. Минимальные версии: libgnutls — 3.1.18, libopenssl — 1.0.1 На системах Microsoft Windows требуется версия OpenSSL 1.1.1 или новее. |
libldap | Требуется при использовании LDAP. Не поддерживается на Windows. | |
libcurl | Требуется для элементов данных Zabbix агента web.page.* . Не поддерживается на Windows.Требуется версия 7.19.1 или новее (рекомендуется версия 7.28.0 или новее). Для использования возможностей в обновлённых версиях cURL перезапустите Zabbix агент. |
|
libmodbus | Требуется, только если используется мониторинг Modbus. Версия 3.0 или новее. |
Требование | Признак обязательности | Описание |
---|---|---|
libpcre/libpcre2 | Одна из | Библиотека PCRE/PCRE2 требуется для поддержки Perl-совместимых регулярных выражений (PCRE). Наименование может отличаться в зависимости от дистрибутива GNU/Linux, например «libpcre3» или «libpcre1». Поддерживаются библиотеки PCRE v8.x и PCRE2 v10.x Требуется для мониторинга журналов. Также требуется на Windows. |
libopenssl | Нет | Требуется при использовании шифрования. На UNIX платформах требуется OpenSSL 1.0.1 или новее. Библиотека OpenSSL должна иметь включённой поддержку PSK. LibreSSL не поддерживается. На системах Microsoft Windows требуется OpenSSL 1.1.1 или новее. |
Библиотеки Golang
Требование | Признак обязательности | Минимальная версия | Описание |
---|---|---|---|
git.zabbix.com/ap/plugin-support | Да | 1.X.X | Собственная библиотека поддержки Zabbix. В основном для плагинов. |
github.com/BurntSushi/locker | 0.0.0 | Именованые блокировки чтения/записи, синхронизация доступа. | |
github.com/chromedp/cdproto | 0.0.0 | Сгенерированные команды, типы и события для доменов Chrome DevTools протокола. | |
github.com/chromedp/chromedp | 0.6.0 | Поддержка протокола DevTools (генерирование отчетов). | |
github.com/dustin/gomemcached | 0.0.0 | Набор инструментов для работы с бинарным протоколом memcached для go. | |
github.com/eclipse/paho.mqtt.golang | 1.2.0 | Библиотека для обработки MQTT подключений. | |
github.com/fsnotify/fsnotify | 1.4.9 | Кроссплатформенные оповещения файловых систем для Go. | |
github.com/go-ldap/ldap | 3.0.3 | Базовый функционал LDAP v3 для языка программирования GO. | |
github.com/go-ole/go-ole | 1.2.4 | Реализация Win32 ole для golang. | |
github.com/godbus/dbus | 4.1.0 | Родные привязки Go для D-Bus. | |
github.com/go-sql-driver/mysql | 1.5.0 | Драйвер MySQL. | |
github.com/godror/godror | 0.20.1 | Драйвер Oracle БД. | |
github.com/mattn/go-sqlite3 | 2.0.3 | Драйвер Sqlite3. | |
github.com/mediocregopher/radix/v3 | 3.5.0 | Клиент Redis. | |
github.com/memcachier/mc/v3 | 3.0.1 | Бинарный клиент Memcached. | |
github.com/miekg/dns | 1.1.43 | Библиотека DNS. | |
github.com/omeid/go-yarn | 0.0.1 | Встраиваемая файловая система сопоставления хранилища ключей-строк. | |
github.com/goburrow/modbus | 0.1.0 | Отказоустойчивая реализация Modbus. | |
golang.org/x/sys | 0.0.0 | Пакеты Go для низкоуровневого взаимодействия с операционной системой. Также используется в библиотеке поддержки плагинов. Используется в плагинах MongoDB и PostgreSQL. |
|
github.com/Microsoft/go-winio | В Windows. Да, косвенно1 |
0.6.0 | Реализация именованного канала Windows. Также используется в библиотеке поддержки плагинов. Используется в плагинах MongoDB и PostgreSQL. |
github.com/goburrow/serial | Да, косвенно1 | 0.1.0 | Последовательная библиотека для Modbus. |
golang.org/x/xerrors | 0.0.0 | Функции для управления ошибками. | |
gopkg.in/asn1-ber.v1 | 1.0.0 | Библиотека кодирования/декодирования для ASN1 BER. | |
github.com/go-stack/stack | Нет, косвенно1 | 1.8.0 | |
github.com/golang/snappy | 0.0.1 | ||
github.com/klauspost/compress | 1.13.6 | ||
github.com/xdg-go/pbkdf2 | 1.0.0 | ||
github.com/xdg-go/scram | 1.0.2 | ||
github.com/xdg-go/stringprep | 1.0.2 | ||
github.com/youmark/pkcs8 | 0.0.0 |
1 «Косвенно» означает, что используется в одной из библиотек, которые использует агент. Требуется, так как Zabbix использует библиотеку, которая использует этот пакет.
Смотрите также зависимости для подгружаемых плагинов:
Если вы получили Zabbix из репозитория исходных кодов или скачали архив, то необходимые зависимости уже включены в дерево исходного кода.
Если вы получили Zabbix из пакетов вашего дистрибутива, то необходимые зависимости обеспечиваются системой управления пакетами.
В обоих вышеупомянутых случаях программное обеспечение готово к использованию, и скачивать какие-либо дополнительные файлы не нужно.
Однако, если вы хотите использовать другие версии этих зависимостей (например, если вы готовите пакет для определённого дистрибутива Linux), ниже приведён список версий библиотек, для которых подтверждена работоспособность Java gateway. Zabbix также может работать с другими версиями этих библиотек.
Следующая таблица содержит список JAR файлов, которые поставляются вместе в Java gateway в оригинальном коде:
Библиотека | Признак обязательности | Минимальная версия | Комментарии |
---|---|---|---|
android-json | Да | 4.3r1 | JSON (JavaScript Object Notation) — это легковесный формат обмена данными. Это совместимая с org.json реализация Android, которая была извлечена из Android SDK. |
logback-classic | 1.2.9 | ||
logback-core | 1.2.9 | ||
slf4j-api | 1.7.32 |
Java gateway может быть скомпилирован с использованием Oracle Java или с использованием OpenJDK (версия 1.6 или новее) с открытым исходным кодом. Пакеты, поставляемые Zabbix, скомпилированы с использованием OpenJDK. Следующая таблица перечисляет пакеты OpenJDK, использованные для сборки пакетов Zabbix в зависимости от дистрибутива:
Дистрибутив | Пакет OpenJDK |
---|---|
AlmaLinux 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3) |
AlmaLinux 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.332.b09-2; arm64: 1.8.0.382.b05-2) |
Amazon Linux 2023 | java-22-amazon-corretto-devel (amd64, arm64: 22.0.2+9-1) |
CentOS Stream 9 | java-11-openjdk-devel (amd64, arm64: 11.0.18.0.10-3) |
CentOS Stream 8 | java-1.8.0-openjdk-devel (amd64, arm64: 1.8.0.362.b08-3) |
CentOS 7 | java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1) |
Debian 12 | default-jdk-headless (amd64, arm64: 2:1.17-74) |
Debian 11 | default-jdk-headless (amd64: 2:1.11-72) |
OpenSUSE Leap 15 | java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1) |
Oracle Linux 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4.0.1; arm64: 11.0.20.0.8-2.0.1) |
Oracle Linux 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4.0.1); java-11-openjdk-devel (arm64: 11.0.20.0.8-3.0.1) |
Oracle Linux 7 | java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1) |
Raspberry Pi OS 12 | default-jdk-headless (arm64, armhf: 2:1.17-74) |
Raspberry Pi OS 11 | default-jdk-headless (arm64: 2:1.11-72; armhf: 2:1.11-72+b4) |
RHEL 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3) |
RHEL 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4; arm64: 1.8.0.382.b05-2) |
RHEL 7 | java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1) |
Rocky Linux 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3) |
Rocky Linux 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4; arm64: 1.8.0.382.b05-2) |
SLES 15 | java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1) |
Ubuntu 24.04 | default-jdk-headless (amd64, arm64: 2:1.21-75+exp1) |
Ubuntu 22.04 | default-jdk-headless (amd64, arm64: 2:1.11-72build2) |
Ubuntu 20.04 | default-jdk-headless (amd64, arm64: 2:1.11-72) |
Для конфигурации по умолчанию применим следующий список открытых портов по компонентам:
Компонент Zabbix | Номер порта | Протокол | Тип подключения |
---|---|---|---|
Zabbix агент | 10050 | TCP | по требованию |
Zabbix агент 2 | 10050 | TCP | по требованию |
Zabbix сервер | 10051 | TCP | по требованию |
Zabbix прокси | 10051 | TCP | по требованию |
Zabbix Java gateway | 10052 | TCP | по требованию |
Zabbix веб-сервис | 10053 | TCP | по требованию |
Zabbix веб-интерфейс | 80 | HTTP | по требованию |
443 | HTTPS | по требованию | |
Zabbix траппер | 10051 | TCP | по требованию |
Эти номера портов должны быть открыты в брандмауэре, чтобы подключения Zabbix были разрешены. Исходящие TCP подключения обычно не требуют явных настроек брандмауэра.
Данные конфигурации Zabbix требуют фиксированного количества дискового пространства и сильно не увеличиваются.
Размер базы данных Zabbix в основном зависит от следующих переменных, которые определяют объём хранимых исторических данных:
Это среднее количество новых значений, которые Zabbix сервер получает каждую секунду. Например: если имеется 3000 элементов данных с интервалом проверки 60 секунд, то количество обрабатываемых запросов за секунду рассчитывается 3000/60 = 50.
Это означает, что каждую секунду в базу данных Zabbix добавляется 50 новых значений.
Zabbix хранит значения за определённый период времени, обычно несколько недель или месяцев. Каждое новое значение требует определенного объёма дискового пространства для данных и индексов.
Таким образом, если требуется хранение 30 дней истории и каждую секунду мы получаем 50 новых значений, общее количество значений будет приблизительно (30*24*3600)* 50 = 129.600.000 или около 130М значений.
В зависимости от типа базы данных, типа полученных значений (с плавающей точкой, целое число, строки, файлы журналов и т.д.) может потребоваться от 40 байт до сотен байт дискового пространства для хранения одного значения. Обычно одно значение занимает около 90 байт для числового элемента данных2. В нашем случае это означает, что 130М значений потребуют 130M * 90 байт = 10.9ГБ дискового пространства.
Размер значений текстовых/журнальных элементов данных невозможно предугадать точно, но можно ожидать около 500 байт на значение.
Zabbix хранит ежечасную статистику значений max/min/avg/count для каждого элемента данных в таблице trends. Эти данные используются для отслеживания динамики изменений и для графиков при отображении большого периода времени. Период в 1 час не является настраиваемым.
Базе данных Zabbix, в зависимости от типа базы данных, требуется около 90 байт на один элемент динамики изменений. Предположим, что требуется хранить динамику изменений в течение 5 лет. Значения 3000 элементов данных потребуют 3000*24*365* 90 = 2.2ГБ за год, или 11ГБ за 5 лет.
Каждое событие Zabbix требует около 250 байт дискового пространства1. Сложно точно оценить количество событий, ежедневно генерируемых Zabbix сервером. В самом худшем случае, можно предположить, что Zabbix генерирует одно событие в секунду.
По каждому событию восстановления создается запись в event_recovery. Обычно большая часть событий восстанавливается, поэтому мы можем предположить, что в event_recovery будет по одной записи по каждому событию. Это означает дополнительные 80 байт на каждое событие.
Опционально, у событий могут быть теги, каждая запись тега требует приблизительно 100 байт дискового пространства1. Количество тегов на событие (#теги) зависит от конфигурации. Таким образом, каждая запись потребует дополнительно #теги * 100 байт дискового пространства.
Это означает, что для того, чтобы хранить события 3 года, потребуется 3*365*24*3600* (250+80+#tags*100) = ~30ГБ+#теги*100 байт дискового пространства2.
1 Больше, когда имеются не-ASCII имена событий, тегов и значения.
2 Приблизительные размеры основаны на MySQL и могут отличаться для других баз данных.
Представленная ниже таблица содержит формулы для расчёта требуемого дискового пространства для системы мониторинга Zabbix:
Параметр | Формула для расчёта занимаемого места(в байтах) |
---|---|
Конфигурация Zabbix | Фиксированный размер. Обычно 10МБ или меньше. |
История | дней*(элементов данных/частота обновления)*24*3600*байт элементы данных : количество элементов данных дней : количество дней хранения истории частота обновления : среднее значение периода проверки элементов данных байт : количество байт, требуемых для одного значения, зависит от типа базы данных, около 90 байт |
Динамика изменений | дней*(элементов данных/3600)*24*3600*байт элеменов данных : количество элементов данных дней : количество дней хранения динамики изменений байт : количество байт, требуемых для одного значения, зависит от типа базы данных, около 90 байт. |
События | дней*событий*24*3600*байт событий : количество событий в секунду. Одно (1) событие в худшем случае. дней : количество дней хранения событий байт : количество байт, требуемых для одного значения, зависит от типа базы данных, обычно примерно 330 + среднее количество тегов на событие * 100 байт. |
Итак, общее количество требуемого места на жёстком диске рассчитывается:
Конфигурация + История + Динамика изменений + События
Дисковое пространство НЕ будет использовано сразу же после установки Zabbix. Размер базы данных будет постепенно увеличиваться и остановится по достижении определённого момента, зависящего от настроек очистки базы данных.
Очень важно иметь точное системное время на сервере с запущенным Zabbix. ntpd [en] — один из самых популярных демонов синхронизации времени узла с временем на остальных серверах. Настоятельно рекомендуется поддерживать синхронизированное время на всех системах, где работают компоненты Zabbix.
Следующий список открытых портов по компонентам применим к конфигурации по умолчанию.
Порт | Компоненты |
---|---|
Веб-интерфейс | http на 80, https на 443 |
Сервер | 10051 (для использования с активными прокси/агентами) |
Активный прокси | 10051 |
Пассивный прокси | 10051 |
Агент 2 | 10050 |
Траппер | |
JavaGateway | 10052 |
Веб-сервис | 10053 |
Чтобы разрешить внешние коммуникации с Zabbix, номера портов должны быть открыты на брандмауэре. Исходящие TCP-соединения обычно не требуют явных настроек брандмауэра.