Требования
Оборудование
Память
Zabbix требуется как физическая, так и дисковая память. Объем необходимой дисковой памяти, очевидно, зависит от количества узлов сети и параметров, которые отслеживаются. Если вы планируете хранить длительную историю отслеживаемых параметров, вам следует предусмотреть как минимум несколько гигабайт, чтобы иметь достаточно места для хранения истории в базе данных. Каждому процессу демона Zabbix требуется несколько подключений к серверу базы данных. Объем памяти, выделяемой для подключения, зависит от конфигурации механизма базы данных.
Чем больше у вас физической памяти, тем быстрее работает база данных (и, следовательно, Zabbix).
ЦП
Zabbix, и в особенности база данных Zabbix, могут требовать значительных ресурсов ЦП в зависимости от количества контролируемых параметров и выбранного механизма базы данных.
Другое оборудование
Для использования поддержки SMS-уведомлений в Zabbix требуются порт последовательной связи и последовательный GSM-модем. Также подойдет преобразователь USB-to-serial.
Примеры аппаратной конфигурации
В таблице приведены примеры аппаратной конфигурации для платформы Linux/BSD/Unix.
Это примеры размеров и аппаратной конфигурации, с которых можно начать. Каждая установка Zabbix уникальна. Обязательно выполните тестирование производительности вашей системы Zabbix в промежуточной или тестовой среде, чтобы полностью понять свои требования перед развертыванием установки Zabbix в промышленной среде.
| Размер установки | Отслеживаемые метрики1 | Ядра CPU/vCPU | Память (GiB) |
База данных | Amazon EC22 |
|---|---|---|---|---|---|
| Маленькая | 1 000 | 2 | 8 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.large/m6g.large |
| Средняя | 10 000 | 4 | 16 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.xlarge/m6g.xlarge |
| Большая | 100 000 | 16 | 64 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.4xlarge/m6g.4xlarge |
| Очень большая | 1 000 000 | 32 | 96 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.8xlarge/m6g.8xlarge |
1 1 метрика = 1 элемент данных + 1 триггер + 1 график
2 Пример с инстансами Amazon EC2 общего назначения с использованием архитектуры ARM64 или x86_64; при оценке и тестировании установки Zabbix перед развертыванием в промышленной среде следует выбрать подходящий тип инстанса, например, оптимизированный для вычислений/памяти/хранилища.
Фактическая конфигурация в значительной степени зависит от количества активных элементов данных и интервалов обновления (подробности см. в разделе размер базы данных на этой странице). Для крупных установок настоятельно рекомендуется запускать базу данных на отдельном сервере.
Поддерживаемые платформы
Из-за требований безопасности и критически важного характера сервера мониторинга UNIX является единственной операционной системой, которая может стабильно обеспечивать необходимую производительность, отказоустойчивость и устойчивость к сбоям. Zabbix работает на ведущих версиях, представленных на рынке.
Компоненты Zabbix доступны и протестированы для следующих платформ:
| Платформа | Сервер | Агент | Агент 2 | Комментарии |
|---|---|---|---|---|
| Linux | x | x | x | |
| Windows | - | x | x | Агент Zabbix поддерживается на всех настольных и серверных версиях, начиная с Windows XP (64-bit)/Server 2003. Агент Zabbix 2 поддерживается на всех настольных и серверных версиях, начиная с Windows 10 (32-bit)/Server 2016, так как он компилируется только с поддерживаемой версией Go для предотвращения критических уязвимостей безопасности. Начиная с Go 1.21, минимально требуемые версии Windows были повышены, поэтому Windows 10/Server 2016 является минимальной версией для агента Zabbix 2. |
| macOS | x | x | - | |
| IBM AIX | x | x | - | Агент Zabbix не работает на платформах AIX ниже версий 6.1 TL07 / 7.1 TL01. |
| FreeBSD | x | x | - | |
| OpenBSD | x | x | - | |
| Solaris | x | x | - | |
| NetBSD | x | x | - | |
| HP-UX | x | x | - |
Сервер/агент Zabbix может работать и на других Unix-подобных операционных системах.
Zabbix отключает core dump, если скомпилирован с поддержкой шифрования, и не запускается, если система не позволяет отключить core dump.
Необходимое программное обеспечение
Zabbix построен на основе современных веб-серверов, ведущих систем управления базами данных и языка сценариев PHP.
Стороннее внешнее программное обеспечение
Если указано, что программное обеспечение/библиотека является обязательным, оно строго необходимо. Необязательные компоненты требуются для поддержки некоторых специфических функций.
| Программное обеспечение | Статус обязательности | Поддерживаемые версии | Комментарии |
|---|---|---|---|
| MySQL/Percona | Одно из | 8.4.0-9.5.X | Требуется, если MySQL (или Percona) используется в качестве внутренней базы данных Zabbix. Требуется движок InnoDB. Мы рекомендуем использовать библиотеку C API (libmysqlclient) для сборки сервера/прокси. |
| MariaDB | 10.11.00-12.0.X | Требуется движок InnoDB. Рекомендуемая версия — 11.4. Мы рекомендуем использовать библиотеку MariaDB Connector/C для сборки сервера/прокси. См. также: Возможные взаимные блокировки с MariaDB и Доступ к элементам пользовательского интерфейса с MariaDB 10.5.1–10.5.9. |
|
| PostgreSQL | 15.0-18.X | Требуется, если PostgreSQL используется в качестве внутренней базы данных Zabbix. В зависимости от размера установки может потребоваться увеличить значение свойства конфигурации PostgreSQL work_mem (по умолчанию 4 МБ), чтобы объём памяти, используемый базой данных для конкретной операции, был достаточным, а выполнение запросов не занимало слишком много времени. |
|
| TimescaleDB for PostgreSQL | 2.20.X-2.25.X | Требуется, если TimescaleDB используется как расширение базы данных PostgreSQL. Убедитесь, что установлена редакция TimescaleDB Community Edition, поддерживающая сжатие. Обратите внимание, что PostgreSQL 15 поддерживается, начиная с TimescaleDB 2.10. Вы также можете обратиться к документации TimescaleDB за подробной информацией о совместимости версий PostgreSQL и TimescaleDB. |
|
| SQLite | Необязательно | 3.3.5-3.34.X | SQLite поддерживается только с прокси Zabbix. Требуется, если SQLite используется в качестве базы данных прокси Zabbix. |
| Elasticsearch | 7.X | Elasticsearch поддерживается только с серверами Zabbix и исключительно для хранения исторических данных. Поддержка Elasticsearch в настоящее время является экспериментальной. См. также требуемое программное обеспечение для сервера/прокси. | |
| smartmontools | 7.1 или новее | Требуется для Zabbix агента 2. | |
| who | Требуется для плагина подсчёта пользователей. | ||
| dpkg | Требуется для плагина system.sw.packages. | ||
| pkgtool | Требуется для плагина system.sw.packages. | ||
| rpm | Требуется для плагина system.sw.packages. | ||
| pacman | Требуется для плагина system.sw.packages. | ||
| q applets | qlist и qsize как часть q applets требуются для плагина system.sw.packages в Gentoo Linux. |
Хотя Zabbix может работать с базами данных, доступными в операционных системах, для наилучшего результата мы рекомендуем использовать базы данных, установленные из официальных репозиториев разработчиков баз данных.
Веб-интерфейс
Минимальная поддерживаемая ширина экрана для веб-интерфейса Zabbix составляет 1200px.
Если указано, что компонент обязателен, то соответствующее программное обеспечение/библиотека строго необходимы. Необязательные компоненты требуются для поддержки некоторых специфических функций.
| Software | Mandatory status | Supported versions | Comments |
|---|---|---|---|
| PHP | Yes | 8.2.0 - 8.4.X | |
| Apache | One of | 2.4 или новее | |
| Nginx | 1.20 или новее | ||
| MySQL | One of | См. Стороннее внешнее сопутствующее программное обеспечение | |
| PostgreSQL | |||
| PHP extensions | |||
| mysqli | Yes | Требуется, если MySQL используется в качестве внутренней базы данных Zabbix. | |
| pgsql | Требуется, если PostgreSQL используется в качестве внутренней базы данных Zabbix. | ||
| 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 | No | php-ldap; требуется для LDAP-аутентификации. | |
| openssl | php-openssl; требуется для SAML-аутентификации. | ||
| gettext | php-gettext (--with-gettext); требуется для переводов. | ||
| cURL | 7.19.4 или новее | php-curl; требуется для Duo Universal Prompt MFA и SMTP-аутентификации. | |
Сторонние библиотеки веб-интерфейса, поставляемые вместе с Zabbix:
| Library | Mandatory status | Supplied version | Comments |
|---|---|---|---|
| jQuery JavaScript Library | Yes | 3.6.0 | Библиотека JavaScript, упрощающая процесс кросс-браузерной разработки. |
| jQuery UI | 1.12.1 | Набор взаимодействий пользовательского интерфейса, эффектов, виджетов и тем, построенный поверх jQuery. | |
| SAML PHP Toolkit | 4.3.1 | Набор инструментов PHP, добавляющий поддержку аутентификации SAML 2.0 для входа в Zabbix. | |
| Symfony Yaml Component | 5.1.0 | Добавляет поддержку экспорта и импорта элементов конфигурации Zabbix в формате YAML. |
Zabbix также может работать с предыдущими версиями Apache, MySQL и PostgreSQL.
Для шрифтов, отличных от стандартного DejaVu, может потребоваться PHP-функция imagerotate. Если она отсутствует, эти шрифты могут отображаться некорректно при показе графика. Эта функция доступна только в том случае, если PHP скомпилирован со встроенным GD, что не относится к Debian и другим дистрибутивам.
Сторонние библиотеки, используемые для написания и отладки кода веб-интерфейса Zabbix:
| Library | Mandatory status | Minimum version | Description |
|---|---|---|---|
| Composer | No | 2.4.1 | Менеджер пакетов уровня приложения для PHP, предоставляющий стандартный формат для управления зависимостями PHP-программного обеспечения и требуемых библиотек. |
| PHPUnit | 8.5.29 | Фреймворк модульного тестирования PHP для тестирования веб-интерфейса Zabbix. | |
| SASS | 3.4.22 | Язык сценариев препроцессора, который интерпретируется и компилируется в Cascading Style Sheets (CSS). |
Веб-браузер на стороне клиента
Файлы cookie и JavaScript должны быть включены.
Поддерживаются последние стабильные версии Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari и Opera.
Реализована политика одинакового источника для IFrame, что означает, что Zabbix нельзя размещать во фреймах на другом домене.
Тем не менее страницы, размещенные во фрейме Zabbix, будут иметь доступ к веб-интерфейсу Zabbix (через JavaScript), если страница, размещенная во фрейме, и веб-интерфейс Zabbix находятся на одном домене.
Страница вида http://secure-zabbix.com/cms/page.html, если она размещена на панелях http://secure-zabbix.com/zabbix/, будет иметь полный доступ к Zabbix через JS.
Сервер/прокси
Если указано, что компонент обязателен, то требуемое программное обеспечение/библиотека строго необходимы. Необязательные компоненты нужны для поддержки некоторых специфических функций.
| Требование | Статус обязательности | Описание |
|---|---|---|
| libpcre2 | Да | Библиотека PCRE2 требуется для поддержки Perl Compatible Regular Expression (PCRE). Поддерживается PCRE2 v10.x. |
| libevent | Требуется для межпроцессного взаимодействия. Версия 2.0.10 или выше. | |
| libevent-pthreads | Требуется для межпроцессного взаимодействия. | |
| libpthread | Требуется для поддержки mutex и блокировок чтения-записи (может быть частью libc). | |
| libresolv | Требуется для разрешения DNS-имен (может быть частью libc). | |
| libiconv | Требуется для преобразования кодировки/формата текста (может быть частью libc). Обязательна для сервера Zabbix в Linux. | |
| libz | Требуется для поддержки сжатия. | |
| libm | Математическая библиотека. Требуется только серверу Zabbix. | |
| libmysqlclient | Один из | Требуется, если используется MySQL. |
| libmariadb | Требуется, если используется MariaDB. | |
| libpq5 | Требуется, если используется PostgreSQL; версия libpq5 должна соответствовать версии используемой базы данных PostgreSQL или быть выше. | |
| libsqlite3 | Требуется, если используется SQLite. Требуется только для прокси Zabbix. | |
| libOpenIPMI | Нет | Требуется для поддержки IPMI. Требуется только серверу Zabbix. |
| libssh2 или libssh | Требуется для SSH-проверок. Версия 1.8.0 или выше (libssh2); 0.9.0 или выше (libssh). | |
| libcurl | Требуется для следующих возможностей: - элементов данных веб-мониторинга, мониторинга VMware и HTTP agent (для всех: версия 7.19.1 или выше); - элементов данных агента Zabbix web.page.* (версия 7.19.1 или выше; см. также требования к агент); - SMTP-аутентификации (Basic: версия 7.20.0 или выше; OAuth: версия 7.33 или выше; см. также требования к веб-интерфейс); - Elasticsearch (версия 7.28.0 или выше). Для всех возможностей рекомендуется версия 7.28.0 или выше. Чтобы использовать обновленные возможности cURL для элементов данных web.page.*, перезапустите сервер/прокси Zabbix.Для SMTP-аутентификации во время выполнения используйте пакет libcurl-full. |
|
| libxml2 | Требуется для мониторинга VMware и предобработки XML XPath. | |
| net-snmp | Требуется для поддержки 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 ping. | |
| c-ares | Требуется для асинхронного разрешения DNS-имен, если Zabbix собран с опцией --with-ares. В противном случае будет использоваться libevent.Минимальная версия: 1.16.0. Кэширование DNS-запросов (кэш запросов включен по умолчанию) требует c-ares 1.26.0 или новее. |
Агент
| Требование | Обязательный статус | Описание |
|---|---|---|
| libpcre2 | Да | Библиотека PCRE2 требуется для поддержки Perl Compatible Regular Expression (PCRE). Поддерживается PCRE2 v10.x. Требуется для мониторинга журналов. Также требуется в Windows. |
| libpthread | Требуется для поддержки mutex и блокировок чтения-записи (может быть частью libc). Не требуется в Windows. | |
| libresolv | Требуется для разрешения DNS-имен (может быть частью libc). Не требуется в Windows. | |
| libiconv | Требуется для кодирования/преобразования текстового формата в UTF-8 в элементах данных журналов, содержимого файлов, file regex и regmatch (может быть частью libc). Не требуется в Windows. | |
| libgnutls or libopenssl | Нет | Требуется при использовании шифрования. Минимальные версии: libgnutls - 3.1.18, libopenssl - 1.0.1 В Microsoft Windows требуется OpenSSL 1.1.1 или новее. |
| libldap | Требуется, если используется LDAP. Не поддерживается в Windows. | |
| libcurl | Требуется для расширенной поддержки элементов данных web.page.* агента Zabbix. Без libcurl доступна базовая функциональность (например, web.page.get[http://example.com]). С libcurl агент поддерживает дополнительные возможности, такие как HTTP URL с учетными данными (например, http://user:[email protected]) и HTTPS URL. Требуется версия 7.19.1 или выше (рекомендуется 7.28.0 или выше). Чтобы использовать обновленные возможности cURL, перезапустите агент Zabbix. |
|
| libmodbus | Требуется только при использовании мониторинга Modbus. Версия 3.0 или выше. |
Агент 2
| Требование | Обязательность | Описание |
|---|---|---|
| Go | Да | Требуется для сборки Zabbix агента 2 и его плагинов из исходного кода. Поддерживается Go 1.24.10 или новее. Инструкции по установке см. на go.dev. Библиотеки Go, используемые Zabbix агентом 2 и его плагинами, перечислены в Git-репозитории Zabbix (библиотеки, помеченные в репозитории как indirect, являются зависимостями других требуемых библиотек):- Zabbix агент 2 - Поддержка плагинов - PostgreSQL - MongoDB - MSSQL - Ember+ - NVIDIA GPU - Пример плагина |
| libpcre2 | Да | Библиотека PCRE2 требуется для поддержки Perl Compatible Regular Expression (PCRE). Поддерживается PCRE2 v10.x. Требуется для мониторинга журналов. Также требуется в Windows. |
| libopenssl | Нет | Требуется при использовании шифрования. На платформах UNIX требуется OpenSSL 1.0.1 или новее. В библиотеке OpenSSL должна быть включена поддержка PSK. LibreSSL не поддерживается. В системах Microsoft Windows требуется OpenSSL 1.1.1 или новее. |
Веб-служба
Для создания отчётов по расписанию с использованием веб-службы Zabbix поддерживается последняя стабильная версия Google Chrome.
Требуемая версия Go для сборки веб-службы соответствует версии, используемой для Zabbix агент 2.
Java gateway
Если вы получили 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.5.16 | ||
| logback-core | 1.5.16 | ||
| slf4j-api | 2.0.16 |
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 trapper | 10051 | TCP | по запросу |
Номера портов должны быть открыты в межсетевом экране, чтобы обеспечить обмен данными Zabbix. Исходящие TCP-соединения обычно не требуют явной настройки межсетевого экрана.
Размер базы данных
Данные конфигурации Zabbix требуют фиксированного объема дискового пространства и почти не увеличиваются.
Размер базы данных Zabbix в основном зависит от следующих переменных, которые определяют объем хранимых исторических данных:
- Количество обрабатываемых значений в секунду
Это среднее количество новых значений, которое сервер Zabbix получает каждую секунду. Например, если у нас есть 3000 элементов данных для мониторинга с интервалом обновления 60 секунд, количество значений в секунду рассчитывается как 3000/60 = 50.
Это означает, что в базу данных Zabbix каждую секунду добавляется 50 новых значений.
- Настройки housekeeper для истории
Zabbix хранит значения в течение фиксированного периода времени, обычно нескольких недель или месяцев. Каждое новое значение требует определенного объема дискового пространства для данных и индекса.
Итак, если мы хотим хранить историю за 30 дней и получаем 50 значений в секунду, общее количество значений составит примерно (30*24*3600)* 50 = 129.600.000, или около 130M значений.
В зависимости от используемого движка базы данных, типа получаемых значений (числа с плавающей точкой, целые числа, строки, файлы журналов и т. д.) объем дискового пространства для хранения одного значения может варьироваться от 40 байт до сотен байт. Обычно для числовых элементов данных это около 90 байт на значение2. В нашем случае это означает, что для 130M значений потребуется 130M * 90 байт = 10.9GB дискового пространства.
Размер значений текстовых/лог-элементов данных невозможно точно предсказать, но можно ожидать около 500 байт на значение.
- Настройка housekeeper для трендов
Zabbix хранит 1-часовой набор значений max/min/avg/count для каждого элемента данных в таблице trends. Эти данные используются для трендов и графиков за длительный период. Период в один час нельзя настроить.
База данных Zabbix, в зависимости от типа базы данных, требует около 90 байт на каждый такой набор. Предположим, мы хотим хранить данные трендов 5 лет. Значения для 3000 элементов данных потребуют 3000*24*365* 90 = 2.2GB в год, или 11GB за 5 лет.
- Настройки housekeeper для событий
Каждое событие Zabbix требует примерно 250 байт дискового пространства1. Трудно оценить количество событий, ежедневно генерируемых Zabbix. В худшем случае можно предположить, что Zabbix генерирует одно событие в секунду.
Для каждого восстановленного события создается запись event_recovery. Обычно большинство событий будут восстановлены, поэтому можно предположить одну запись event_recovery на событие. Это означает дополнительные 80 байт на событие.
При необходимости события могут иметь теги, при этом каждая запись тега требует примерно 100 байт дискового пространства1. Количество тегов на событие (#tags) зависит от конфигурации. Таким образом, на каждое событие потребуется дополнительно #tags * 100 байт дискового пространства.
Это означает, что если мы хотим хранить события 3 года, потребуется 3*365*24*3600* (250+80+#tags*100) = \~30GB+#tags*100B дискового пространства2.
1 Больше при наличии не-ASCII имен событий, тегов и значений.
2 Приблизительные размеры основаны на MySQL и могут отличаться для других баз данных.
Таблица содержит формулы, которые можно использовать для расчета дискового пространства, необходимого для системы Zabbix:
| Parameter | Formula for required disk space (in bytes) |
|---|---|
| Конфигурация Zabbix | Фиксированный размер. Обычно 10MB или меньше. |
| История | days*(items/refresh rate)*24*3600*bytes items : количество элементов данных days : количество дней хранения истории refresh rate : средний интервал обновления элементов данных bytes : количество байт, необходимое для хранения одного значения; зависит от движка базы данных, обычно \~90 байт. |
| Тренды | days*(items/3600)*24*3600*bytes items : количество элементов данных days : количество дней хранения истории bytes : количество байт, необходимое для хранения одного тренда; зависит от движка базы данных, обычно \~90 байт. |
| События | days*events*24*3600*bytes events : количество событий в секунду. Одно (1) событие в секунду в худшем случае. days : количество дней хранения истории bytes : количество байт, необходимое для хранения одного события; зависит от движка базы данных, обычно \~330 + среднее количество тегов на событие * 100 байт. |
Итак, общий требуемый объем дискового пространства можно рассчитать как:
Конфигурация + История + Тренды + События
Дисковое пространство НЕ будет использовано сразу после установки Zabbix. Размер базы данных будет расти, а затем в какой-то момент перестанет увеличиваться, в зависимости от настроек housekeeper.
Синхронизация времени
Очень важно, чтобы на сервере, где работает Zabbix, было точно настроено системное время. ntpd — это наиболее популярный демон, который синхронизирует время узла сети со временем других машин. Настоятельно рекомендуется поддерживать синхронизированное системное время на всех системах, на которых работают компоненты Zabbix.
Требования к сети
Следующий список открытых портов для каждого компонента применим для конфигурации по умолчанию.
| Компоненты | Порт |
|---|---|
| Веб-интерфейс | http на 80, https на 443 |
| Сервер | 10051 (для использования с активным прокси/агентами) |
| Активный прокси | 10051 |
| Пассивный прокси | 10051 |
| Agent2 | 10050 |
| Trapper | |
| JavaGateway | 10052 |
| WebService | 10053 |
Номера портов должны быть открыты в межсетевом экране, чтобы обеспечить внешние соединения с Zabbix. Исходящие TCP-соединения обычно не требуют явной настройки межсетевого экрана.