This is a translation of the original English documentation page. Help us make it better.

2 要件

ハードウェア要件

メモリ要件

Zabbix には、物理メモリとディスク 容量の両方が必要です。 必要なディスク容量は、監視対象のホストとパラメータの数によって異なります。 監視対象のパラメーターのヒストリを長期間保存することを計画している場合は、データベースにヒストリを保存するのに十分なスペースとして、少なくとも数ギガバイトを確保することを検討する必要があります。 各 Zabbix デーモン プロセスには、データベース サーバーへの複数の接続が必要です。 接続に割り当てられるメモリの量は、データベース エンジンの構成によって異なります。

物理メモリが多ければ多いほど、データベース (したがって Zabbix) の動作が速くなります!

CPU要件

Zabbix、特に Zabbix データベースは、監視するパラメータの数と選択したデータベース エンジンによっては、かなりの CPU リソースを必要とする場合があります。

その他のハードウエア要件

Zabbix で SMS 通知サポートを使用するには、シリアル通信ポートとシリアル GSM モデムが必要です。 USB からシリアルへのコンバーターも同様に有効です。

ハードウェア構成例

この表は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,
Oracle
m6i.4xlarge/m6g.4xlarge
特大 1 000 000 32 96 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL,
Oracle
m6i.8xlarge/m6g.8xlarge

1 1 メトリック = 1 アイテム + 1 トリガー + 1 グラフ
2 ARM64 または x86_64 アーキテクチャを使用する Amazon 汎用 EC2 インスタンスの例では、本番環境にインストールする前に、Zabbixのインストール評価およびテスト中にコンピュート/メモリ/ストレージの最適化などの適切なインスタンス タイプを選択する必要があります。

実際の構成は、アクティブなアイテムの数とリフレッシュレートに大きく依存します (詳細については、このページの データベースのサイジング セクションを参照してください)。 大規模なインストールの場合は、データベースを別のサーバーで実行することを強くお勧めします。

サポートするプラットフォーム

セキュリティ要件と監視サーバーのミッションクリティカルな性質から、UNIXは必要な性能と耐障害性、回復力を一貫して提供できる唯一のOSです。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系OSでも動作する可能性があります。
ZabbixエージェントはWindows XP以降の全てのWindowsデスクトップとサーバーのOSバージョンでサポートされています。

Zabbixエージェント2の重大なセキュリティ脆弱性をために、it is compiled only with サポートされているGoリリースのみでコンパイルされています。Go 1.21では、Windowsバージョンの最小要件が引き上げられています。したがって、Zabbix 6.0.27以降、Zabbixエージェント2におけるWindowsバージョンの最小要件はWindows 10/Server 2016です。

Zabbixは、暗号化してコンパイルされている場合はコアダンプを無効にし、システムがコアダンプの無効化を許可していない場合は起動しません。

ソフトウェア要件

Zabbixは最新のWebサーバー、主要なデータベースエンジン、およびPHPスクリプト言語を組み合わせて動作します。

サードパーティの外部ソフトウェア

必須ステータスと記載されているソフトウェア/ライブラリは常に必要です。 オプションのものは、特定の機能をサポートするのに必要です。

ソフトウェア 必須ステータス サポートされているバージョン コメント
MySQL/Percona どれか一つ 8.0.30-8.3.X MySQL(またはPercona)をZabbixバックエンドデータベースとして使用する場合に必要です。InnoDB エンジンが必要です。

MySQLのサポートバージョンの追加:
- 8.1 since Zabbix 6.0.21;
- 8.2 since Zabbix 6.0.26;
- 8.3 since Zabbix 6.0.27.

サーバー/プロキシの構築には C API (libmysqlclient)ライブラリを使用することをお勧めします。

MySQLバージョン8.0.0-8.0.28については、Possible deadlocksを参照してください。
MariaDB 10.5.00-11.3.X InnoDBエンジンが必要です。

バージョンは10.5をお勧めします。

サーバー/プロキシの構築にはMariaDB Connector/Cライブラリを使用することをお勧めします。

MariaDBのサポートバージョンの追加:
- 10.7.X since Zabbix 6.0.6;
- 10.8.X since Zabbix 6.0.7;
- 10.9.X and 10.10.X since Zabbix 6.0.13;
- 10.11.X since Zabbix 6.0.15;
- 11.0.X since Zabbix 6.0.21;
- 11.1.X since Zabbix 6.0.23;
- 11.2.X since Zabbix 6.0.27;
- 11.3.X since Zabbix 6.0.29.

Possible deadlocksもご覧ください。
Oracle 19c - 21c OracleをZabbixバックエンドデータベースとして使用する場合に必要です。
PostgreSQL 13.0-16.X PostgreSQLをZabbixバックエンドデータベースとして使用する場合に必要です。
インストールサイズに応じて、PostgreSQLのwork_memの構成プロパティを増やす必要があるかもしれません(デフォルト値は4MB)。これにより、データベースが特定の操作に使用するメモリの量が十分になり、クエリの実行に時間がかかりすぎなくなります。

PostgreSQLのサポートバージョンの追加:
- 15.X since Zabbix 6.0.10;
- 16.X since Zabbix 6.0.23.
TimescaleDB for PostgreSQL 2.1.0-2.14.X TimescaleDBをPostgreSQL データベース拡張機能として使用する場合に必要です。 圧縮をサポートするTimescaleDB Community Editionを必ずインストールしてください。

PostgreSQL 15はTimescaleDB 2.10以降でサポートされていることに注意してください。
PostgreSQLとTimescaleDBのバージョンの互換性に関する詳細については、公式ドキュメントを参照することもできます。

TimescaleDBのサポートバージョンの追加:
- 2.6 since Zabbix 6.0.7;
- 2.7 since Zabbix 6.0.8;
- 2.8 since Zabbix 6.0.10;
- 2.9 since Zabbix 6.0.13;
- 2.10 since Zabbix 6.0.15;
- 2.11 since Zabbix 6.0.19;
- 2.12 since Zabbix 6.0.24;
- 2.13 since Zabbix 6.0.25;
- 2.14 since Zabbix 6.0.28.
SQLite オプション 3.3.5-3.34.X SQLiteはZabbixプロキシでのみサポートされています。SQLiteをZabbixプロキシデータベースとして使用する場合に必要です。
smartmontools 7.1 以降 Zabbixエージェント2に必要です。
who ユーザーカウントプラグインに必要です。
dpkg system.sw.packagesプラグインに必要です。
pkgtool system.sw.packagesプラグインに必要です。
rpm system.sw.packagesプラグインに必要です。
pacman system.sw.packagesプラグインに必要です。

Zabbixはオペレーティングシステムで利用可能なデータベースで動作しますが、最高のエクスペリエンスを得るには、公式のデータベース開発者リポジトリからインストールされたデータベースを使用することをお勧めします。

Webインターフェース

ZabbixのWebインターフェースでサポートされる最小画面幅は 1200px です。

必須要件は常に必要です。 特定の機能をサポートするには、オプションの要件が必要です。

ソフトウェア 必須ステータス バージョン コメント
Apache どれか一つ 2.4以降
Nginx 1.20以降
PHP Yes 7.2.5 以降、8.0-8.3 PHP 7.4以降の使用を推奨します。

PHPのサポートバージョンの追加:
- 8.0 and 8.1 since Zabbix 6.0.6;
- 8.2 since Zabbix 6.0.14;
- 8.3 since Zabbix 6.0.26.
PHP extensions:
gd Yes 2.0.28以降 PHP GD拡張機能は、PNG画像 (--with-png-dir)、JPEG画像 (--with-jpeg-dir)、および FreeType 2 (--with-freetype-dir) をサポートする必要があります。
Webインターフェースで選択した言語によっては、グラフ内でテキストが重なるのを避けるために、バージョン2.3.0以降が必要になります。
bcmath php-bcmath (--enable-bcmath)
ctype php-ctype (--enable-ctype)
libXML 2.6.15以降 ディストリビュータによって個別のパッケージとして提供されている場合は、php-xml
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 No php-ldap。WebインターフェースでLDAP認証が使用されている場合にのみ必要です。
openssl php-openssl。WebインターフェースでSAML認証が使用されている場合にのみ必要です。
mysqli MySQLをZabbixバックエンドデータベースとして使用する場合に必要です。
oci8 OracleをZabbixバックエンドデータベースとして使用する場合に必要です。
pgsql PostgreSQLをZabbixバックエンドデータベースとして使用する場合に必要です。

Zabbixで提供されるサードパーティのWebインターフェースライブラリ:

ライブラリ 必須ステータス 最小バージョン コメント
jQuery JavaScript Library Yes 3.6.0 クロスブラウザ開発のプロセスを簡素化するJavaScriptライブラリ
jQuery UI 1.12.1 jQuery上に構築された一連のユーザーインターフェイスインタラクション、エフェクト、ウィジェット、およびテーマ。
OneLogin's SAML PHP Toolkit 3.4.1 ZabbixにサインインできるようにするためのSAML 2.0認証サポートを追加する PHP ツールキット。
Symfony Yaml Component 5.1.0 YAML形式で Zabbix構成要素をエクスポートおよびインポートするためのサポートを追加。

Zabbixは、以前のバージョンのApache、MySQL、Oracle、およびPostgreSQLでも動作する可能性があります。

デフォルトのDejaVu以外のフォントの場合、PHP関数 imagerotate が必要になる場合があります。不足している場合、グラフが表示されたときにこれらのフォントが正しくレンダリングされない可能性があります。 この関数は、PHPがバンドルされたGDでコンパイルされている場合にのみ使用できます。これは、Debianやその他のディストリビューションには当てはまりません。

ZabbixのWebインターフェースのコード作成とデバッグに使用されるサードパーティライブラリ:

ライブラリ 必須ステータス 最小バージョン 説明
Composer No 2.4.1 PHPソフトウェアと必要なライブラリの依存関係を管理するための標準形式を提供する、PHP用アプリケーションレベルパッケージマネージャー。
PHPUnit 8.5.29 ZabbixのWebインターフェースをテストするためのPHP単体テストフレームワーク。
SASS 3.4.22 カスケーディングスタイルシート (CSS) にコンパイルされるプリプロセッサスクリプト言語。
クライアント側のWebブラウザ

CookieとJavaScriptを有効にする必要があります。

Google Chrome、Mozilla Firefox、Microsoft Edge、Apple Safari、Operaの最新安定バージョンに対応しています。

IFrameのsame-originポリシーが実装されました。
つまり、Zabbixを別ドメインのフレームに配置することはできません。

それでも、フレームに配置されたページとZabbixのWebインターフェースが同じドメインにある場合、Zabbixフレームに配置されたページは(JavaScriptを介して)ZabbixのWebインターフェースにアクセスできます。
http://secure-zabbix.com/cms/page.html のようなページをhttp://secure-zabbix.com/zabbix/ のダッシュボードに配置すると、JSからZabbixに完全にアクセスすることができます。

サーバー/プロキシ

必須要件は常に必須です。 特定の機能をサポートするには、オプションの要件が必要です。

要件 必須ステータス 説明
libpcre/libpcre2 どれか一つ Perl互換正規表現 (PCRE) のサポートにはPCRE/PCRE2ライブラリが必要です。
GNU/Linuxディストリビューションによって、'libpcre3'、'libpcre1'などと名前が異なる場合があります。PCRE v8.x および PCRE2 v10.x (Zabbix 6.0.0以降) がサポートされています。
libevent Yes 一括メトリック サポートとIPMI監視に必要です。バージョン 1.4 以降。
libpthread ミューテックスおよび読み取り/書き込みロックのサポートに必要です (libc の一部である可能性があります)。
libresolv DNS解決に必要です (libc の一部である可能性があります)。
libiconv テキストのエンコード/フォーマット変換に必要です (libc の一部である可能性があります)。Linux上のZabbixサーバーには必須です。
libz 圧縮のサポートに必要です。
libm Mathライブラリ。 Zabbixサーバーでのみ必要です。
libmysqlclient どれか一つ MySQLを使用する場合は必要です。
libmariadb MariaDBを使用する場合は必要です。
libclntsh Oracleを使用する場合は必要です。libclntshのバージョンは、Oracleデータベースのバージョン以上である必要があります。
libpq5 PostgreSQLを使用する場合は必要です。libpq5のバージョンは、PostgreSQLデータベースのバージョン以上である必要があります。
libsqlite3 Sqliteを使用する場合は必要です。 Zabbixプロキシにのみです。
libOpenIPMI No IPMIのサポートに必要です。Zabbixサーバーのみです。
libssh2 or libssh SSHチェックに必要です。 バージョン1.0以降 (libssh2)、0.6.0以降 (libssh)。
libsshはZabbix 4.4.6以降でサポートされています。
libcurl Web監視、VMware監視、SMTP認証、Zabbixエージェントのアイテムであるweb.page.*、HTTPエージェントアイテム、Elasticsearch (使用する場合) に必要です。 バージョン 7.28.0以降を推奨します。
Libcurl のバージョン要件:
- SMTP 認証: バージョン 7.20.0 以降
- Elasticsearch: バージョン 7.28.0 以降
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 or libopenssl 暗号化を使用する場合に必要です。
最小バージョン: libgnutls - 3.1.18、libopenssl - 1.0.1
libldap LDAPのサポートに必要です。
fping ICMP ping itemsに必要です。
エージェント
要件 必須ステータス 説明
libpcre/libpcre2 One of Perl 互換正規表現(PCRE)のサポートには、PCRE/PCRE2 ライブラリが必要です。
'libpcre3'や'libpcre1'など、GNU/Linux ディストリビューションによって名前が異なる場合があります。PCRE v8.x および PCRE2 v10.x (Zabbix 6.0.0 以降) がサポートされています。
ログの監視に必要です。 Windows でも必要です。
libpthread Yes ミューテックスおよび読み書きロックのサポートに必要です (libc の一部である可能性があります)。 Windows では不要です
libresolv DNS 解決に必要です (libc の一部である可能性があります)。 Windows では不要です
libiconv ログ アイテム、ファイル コンテンツ、ファイル regex および regmatch アイテム (libc の一部である可能性があります) での UTF-8 へのテキスト エンコーディング/フォーマット変換に必要です。 Windows では不要です
libgnutls or libopenssl No 暗号化 を使用する場合に必要です。
最小バージョン: libgnutls - 3.1.18、libopenssl - 1.0.1
Microsoft Windows では OpenSSL 1.1.1 以降が必要です。
libldap LDAP を使用する場合は必須です。 Windows ではサポートされていません。
libcurl web.page.* Zabbix エージェントアイテム に必要です。 Windows ではサポートされていません。
バージョン 7.28.0 以降を推奨します。
libmodbus Modbus モニタリングを使用する場合にのみ必要です。
バージョン 3.0 以降。

バージョン 5.0.3 以降、Zabbix エージェントは、バージョン 6.1 TL07 / AIX 7.1 TL01 より前の AIX プラットフォームでは動作しません。

エージェント 2
要件 必須ステータス 説明
libpcre/libpcre2 どちらか一つ Perl 互換正規表現 (PCRE) のサポートには PCRE/PCRE2 ライブラリが必要です。
名前は'libpcre3'または'libpcre1'など、GNU/Linux ディストリビューションによって異なる場合があります。PCRE v8.x および PCRE2 v10.x (Zabbix 6.0.0 以降) がサポートされています。
ログ監視に必要です。 Windows でも必要です。
libopenssl No 暗号化を使用する場合に必要です。
UNIX プラットフォームでは OpenSSL 1.0.1 以降が必要です。
OpenSSL ライブラリでは PSK サポートが有効になっている必要があります。 LibreSSL はサポートされていません。
Microsoft Windows システムでは、OpenSSL 1.1.1 以降が必要

Golang ライブラリ

要件 必須ステータス 最小バージョン 説明
git.zabbix.com/ap/plugin-support Yes 0.0.0 Zabbix 独自のサポート ライブラリ。 主にプラグイン用です。
MongoDB プラグインでも使用されます。
github.com/BurntSushi/locker 0.0.0 名前付き読み取り/書き込みロック、アクセス同期。
github.com/chromedp/cdproto 0.0.0 Chrome DevTools プロトコル ドメイン用に生成されたコマンド、タイプ、およびイベント。
github.com/chromedp/chromedp 0.6.0 Chrome DevTools プロトコルのサポート (レポート生成)。
github.com/dustin/gomemcached 0.0.0 go 用の memcached バイナリ プロトコル ツールキット。
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 GO プログラミング言語の基本的な LDAP v3 機能。
github.com/go-ole/go-ole 1.2.4 golang の Win32 ole 実装。
github.com/godbus/dbus 4.1.0 D-Bus のネイティブ Go バインディング
github.com/go-sql-driver/mysql 1.5.0 MySQLドライバ
github.com/godror/godror 0.20.1 Oracle DB ドライバ
github.com/jackc/pgx/v4 4.8.2 PostgreSQL ドライバ
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 プラグインで使用されます。
github.com/natefinch/npipe On Windows 0.0.0 Windows の名前付きパイプの実装。
プラグイン サポート ライブラリでも使用されます。 MongoDB プラグインで使用されます。
github.com/goburrow/serial Yes, indirect1 0.1.0 Modbus 用のシリアル ライブラリ。
github.com/pkg/errors 0.9.1 シンプルなエラー処理プリミティブ。
MongoDB プラグインで使用されます。
golang.org/x/xerrors 0.0.0 エラー操作関数
gopkg.in/asn1-ber.v1 1.0.0 ASN1 BER のエンコード/デコード ライブラリ。
gopkg.in/yaml.v2 2.2.8 パッケージに移動して、YAML 値をエンコードおよびデコード
github.com/go-stack/stack No, indirect1 1.8.0 MongoDB プラグイン mongo-driver lib に必要なパッケージ。
github.com/golang/snappy 0.0.1 MongoDB プラグイン mongo-driver lib に必要なパッケージ。
github.com/klauspost/compress 1.13.6 MongoDB プラグイン mongo-driver lib に必要なパッケージ。
github.com/xdg-go/pbkdf2 1.0.0 MongoDB プラグイン mongo-driver lib に必要なパッケージ。
github.com/xdg-go/scram 1.0.2 MongoDB プラグイン mongo-driver lib に必要なパッケージ。
github.com/xdg-go/stringprep 1.0.2 MongoDB プラグイン mongo-driver lib に必要なパッケージ。
github.com/youmark/pkcs8 0.0.0 MongoDB プラグイン mongo-driver lib に必要なパッケージ。
golang.org/x/crypto 0.0.0 MongoDB プラグイン mongo-driver lib に必要なパッケージ。
golang.org/x/text 0.3.5 MongoDB プラグイン mongo-driver lib に必要なパッケージ。
golang.org/x/sys 0.0.0 MongoDB プラグイン mongo-driver lib に必要なパッケージ。
github.com/natefinch/npipe 0.0.0 MongoDB プラグイン mongo-driver lib に必要なパッケージ。

1 "indirect"は、エージェントが使用するライブラリの 1 つで使用されることを意味します。 Zabbixはパッケージを使用するライブラリを使用するため必要です。

Java ゲートウェイ

ソース リポジトリまたはアーカイブから Zabbix を取得した場合、必要な依存関係は既にソース ツリーに含まれています。

ディストリビューションのパッケージから Zabbix を取得した場合、必要な依存関係はパッケージング システムによって既に提供されています。

上記のどちらの場合でも、ソフトウェアを使用する準備ができており、追加のダウンロードは必要ありません。

ただし、これらの依存関係のバージョンを提供したい場合 (たとえば、一部の Linux ディストリビューション用のパッケージを準備している場合)、Java ゲートウェイが動作することがわかっているライブラリ バージョンのリストを以下に示します。 Zabbix は、これらのライブラリの他のバージョンでも動作する場合があります。

次の表に、元のコードで現在 Java ゲートウェイにバンドルされている JAR ファイルを示します。

ライブラリ 必須ステータス コメント
android-json Yes Version 4.3r1 以降
JSON (JavaScript Object Notation) の軽量データ交換フォーマットです。 これは、Android SDK から抽出された org.json 互換の Android 実装です。
logback-classic Version 1.2.9 以降
logback-core Version 1.2.9 以降
slf4j-api Version 1.7.32 以降

Java ゲートウェイは、Oracle Java またはオープンソースの OpenJDK (バージョン 1.6 以降) を使用して構築できます。 Zabbix が提供するパッケージは、OpenJDK を使用してコンパイルされます。 以下の表は、Zabbix パッケージのビルドに使用される OpenJDK のバージョンに関する情報をディストリビューションごとに示しています。

ディストリビューション OpenJDK バージョン
RHEL 8 1.8.0
RHEL 7 1.8.0
SLES 15 11.0.4
SLES 12 1.8.0
Debian 10 11.0.8
Ubuntu 20.04 11.0.8
Ubuntu 18.04 11.0.8

デフォルトのポート番号

次のリストは各コンポーネントのデフォルトポート番号です。

Zabbix コンポーネント ポート番号 プロトコル 接続の種類
Zabbix エージェント 10050 TCP オンデマンド
Zabbix エージェント 2 10050 TCP オンデマンド
Zabbix サーバー 10051 TCP オンデマンド
Zabbix プロキシ 10051 TCP オンデマンド
Zabbix Java ゲートウェイ 10052 TCP オンデマンド
Zabbix web サービス 10053 TCP オンデマンド
Zabbix Webインターフェース 80 HTTP オンデマンド
443 HTTPS オンデマンド
Zabbix トラッパー 10051 TCP オンデマンド

Zabbix 通信を有効にするには、ファイアウォールでポートを開く必要があります。 通常、発信のTCP接続には明示的なファイアウォール設定は必要ありません。

データベースのサイジング

Zabbixの設定データを保存するために一定量のディスク容量が必要ですが、ほとんど増えることはありません。

Zabbixデータベースのサイズは、主に保存されるヒストリデータの量に関する以下の数量によって決まります。

  • 1秒あたりの処理件数
    Zabbixサーバが1秒間に受信する新しい値の平均数です。
    例えば、監視対象アイテムが3000件、更新速度が60秒の場合、1秒あたりの値数は3000/60 = 50個になります。

これは、毎秒50個の新しい値がZabbixデータベースに追加されることを意味します。

  • ヒストリデータ用のHousekeeperの設定
    Zabbixは一定期間(通常は数週間または数ヶ月間)収集した値を保存します。
    新しい値を追加するたびに、データとインデックス用に一定量のディスクスペースが消費されます。

そのため、30日分のヒストリを残したい場合、1秒間に50個の値を受信すると考えると、総数としては
(30×24×3600)×50 = 129.600.000, つまり約1億3千万個の値を受信することになります。

使用するデータベースエンジン、受信する値の種類(浮動小数点数、整数、文字列、ログファイルなど)により、
1つの値を保持するためのディスク容量は、40バイトから数百バイトまで変化します。
通常、数値項目の場合、1つの値につき90バイトです。^2*
この場合、次のような計算ができます。
約1億3千万個の値を保存するためには、約1億3千万個×90バイト=10.9GBのディスクスペースが必要です。

テキスト/ログアイテムの値のサイズを正確に予測することはできませんが、1つの値につき500バイト程度を見込んでおくとよいでしょう。

  • トレンド用のHousekeeperの設定
    Zabbixは各項目の1時間の最大/最小/平均/カウントのセットをテーブルtrendsに保持します。
    このデータはトレンド解析や長周期グラフに使用されます。
    この1時間の単位は変更できません。

Zabbixデータベースは、データベースの種類にもよりますが、それぞれの集計値につき約90バイトの容量が必要です。
例えば、トレンドデータを5年分保存する場合、3000アイテムの値には、
1年あたり3000×24×365 = 2.2GB が必要で、5年間では11GBとなります。

  • イベント用のHousekeeperの設定

Zabbixの各イベントは約250バイトのディスクスペースを必要とします^1*。
Zabbixが毎日生成するイベント数を見積もることは困難です。
最悪のケースでは、Zabbixは1秒間に1つのイベントを生成していると仮定することができます。

回復したイベントごとに event_recovery レコードが作成されます。
通常ほとんどのイベントは回復されるので、1つのイベントにつき1つのevent_recoveryレコードを想定します。
つまり、1イベントあたり80バイトのレコードが追加されます。

オプションとして、イベントにはタグを付けることができ、各タグレコードは約100バイトのディスクスペースを必要とします1
1イベントあたりのタグの数(#tags)は設定によります。
そのため、1つのタグ(#tags)につき、さらに100バイトのディスクスペースが必要です。

つまり、3年分のイベントを保存する場合、以下のようになります。
3×365×24×3600× (250+80+tags×100) = ~30GB+#Tags×100B のdiskスペース2が必要

1 非ASCIIのイベント名、タグ、値を持つ場合、より多くなります。

2 サイズの概算は MySQL に基づいており、他のデータベースでは異なる可能性があります。

この表には、Zabbixシステムに必要なディスク容量の計算式が含まれています。

パラメータ名 必要なディスクスペースの計算式 (バイト単位)
Zabbixの設定 Fixed size. Normally 10MB or less.
ヒストリ 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.
トレンド 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.
イベント 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.

そのため、必要なディスク容量の合計は次のように計算されます。
設定 + ヒストリ + トレンド + イベント
算出したディスク容量は、Zabbixをインストールした直後から必要となるわけではありません。
データベースサイズは最初は増え続けますが、ある時点で一定の値を維持するようになります。
どの時点で一定になるかは、Housekeeperの設定に依存します。

時刻同期

Zabbixが動作しているサーバで正確なシステム時刻を得ることは非常に重要です。
ntpdはホストの時刻を他のマシンの時刻と同期させる最も有名なデーモンです。
Zabbixのコンポーネントが動作している全てのシステムで時刻を同期させることを強く推奨します。