メモリ
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の重大なセキュリティ脆弱性を防ぐために、サポートする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-9.0.X | MySQL(またはPercona)をZabbixバックエンドデータベースとして使用する場合に必要です。InnoDBエンジンが必要です。 MySQLのサポートバージョンの追加: - 8.1 - Zabbix 6.0.21から - 8.2 - Zabbix 6.0.26から - 8.3 - Zabbix 6.0.27から - 8.4 - Zabbix 6.0.32から - 9.0 - Zabbix 6.0.33から サーバー/プロキシの構築にはC API (libmysqlclient)ライブラリを使用することをお勧めします。 MySQLバージョン8.0.0-8.0.28については、デッドロックの可能性を参照してください。 |
| MariaDB | 10.5.00-11.5.X | InnoDBエンジンが必要です。 バージョンは11.4をお勧めします。 サーバー/プロキシの構築にはMariaDB Connector/Cライブラリを使用することをお勧めします。 MariaDBのサポートバージョンの追加: - 10.7.X - Zabbix 6.0.6から - 10.8.X - Zabbix 6.0.7から - 10.9.X、10.10.X - Zabbix 6.0.13から - 10.11.X - Zabbix 6.0.15から - 11.0.X - Zabbix 6.0.21から - 11.1.X - Zabbix 6.0.23から - 11.2.X - Zabbix 6.0.27から - 11.3.X - Zabbix 6.0.29から - 11.4.X - Zabbix 6.0.32から - 11.5.X - Zabbix 6.0.34から 参照: デッドロックの可能性 |
|
| Oracle | 19c - 21c | OracleをZabbixバックエンドデータベースとして使用する場合に必要です。 | |
| PostgreSQL | 13.0-17.X | PostgreSQLをZabbixバックエンドデータベースとして使用する場合に必要です。 インストールサイズに応じて、PostgreSQLのwork_memの構成プロパティを増やす必要があるかもしれません(デフォルト値は4MB)。これにより、データベースが特定の操作に使用するメモリの量が十分になり、クエリの実行に時間がかかりすぎなくなります。 PostgreSQLのサポートバージョンの追加: - 15.X - Zabbix 6.0.10から - 16.X - Zabbix 6.0.23から - 17.X - Zabbix 6.0.36から |
|
| TimescaleDB for PostgreSQL | 2.1.0-2.21.X | TimescaleDBをPostgreSQL データベース拡張機能として使用する場合に必要です。圧縮をサポートするTimescaleDB Community Editionを必ずインストールしてください。 PostgreSQL 15はTimescaleDB 2.10以降でサポートされていることに注意してください。 PostgreSQLとTimescaleDBのバージョンの互換性に関する詳細については、Timescaleドキュメントを参照することもできます。 TimescaleDBのサポートバージョンの追加: - 2.6 - Zabbix 6.0.7から - 2.7 - Zabbix 6.0.8から - 2.8 - Zabbix 6.0.10から - 2.9 - Zabbix 6.0.13から - 2.10 - Zabbix 6.0.15から - 2.11 - Zabbix 6.0.19から - 2.12 - Zabbix 6.0.24から - 2.13 - Zabbix 6.0.25から - 2.14 - Zabbix 6.0.28から - 2.15 - Zabbix 6.0.32から - 2.16 - Zabbix 6.0.34から - 2.17 - Zabbix 6.0.36から - 2.18 - Zabbix 6.0.39から - 2.19, 2.20, 2.21 - Zabbix 6.0.41から |
|
| SQLite | Optional | 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はオペレーティングシステムで利用可能なデータベースで動作しますが、最高のエクスペリエンスを得るには、公式のデータベース開発者リポジトリからインストールされたデータベースを使用することをお勧めします。
ZabbixのWebインターフェースでサポートされる最小画面幅は1200pxです。
必須要件は常に必要です。特定の機能をサポートするには、オプションの要件が必要です。
| ソフトウェア | 必須ステータス | バージョン | コメント |
|---|---|---|---|
| Apache | どれか一つ | 2.4以降 | |
| Nginx | 1.20以降 | ||
| PHP | Yes | 7.2.5以降、8.0-8.3 | PHP 7.4以降の使用を推奨します。 PHPのサポートバージョンの追加: - 8.0、8.1 - Zabbix 6.0.6から - 8.2 - Zabbix 6.0.14から - 8.3 - Zabbix 6.0.26から |
| PHP拡張機能: | |||
| 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上に構築された一連のユーザーインターフェースインタラクション、エフェクト、ウィジェット、およびテーマ。 | |
| 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) にコンパイルされるプリプロセッサスクリプト言語。 |
CookieとJavaScriptを有効にする必要があります。
Google Chrome、Mozilla Firefox、Microsoft Edge、Apple Safari、Operaの最新安定バージョンに対応しています。
IFrameのsame-originポリシーが実装されているため、Zabbixを別ドメインのフレームに配置することはできません。
ただし、Zabbixフレームに配置されたページとZabbixのWebインターフェースが同じドメインにある場合、そのページは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または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またはlibopenssl | 暗号化を使用する場合に必要です。 最小バージョン: libgnutls - 3.1.18、libopenssl - 1.0.1 |
|
| libldap | LDAPのサポートに必要です。 | |
| fping | ICMP pingアイテムに必要です。 |
| 要件 | 必須ステータス | 説明 |
|---|---|---|
| libpcre/libpcre2 | どれか一つ | 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またはlibopenssl | No | 暗号化を使用する場合に必要です。 最小バージョン: libgnutls - 3.1.18、libopenssl - 1.0.1 Microsoft WindowsではOpenSSL 1.1.1以降が必要です。 |
| libldap | LDAPを使用するのに必要です。Windowsではサポートされていません。 | |
| libcurl | Zabbixエージェント[アイテム](/manual/config/items/itemtypes/zabbix_agent)web.page.*に必要です。Windowsではサポートされていません。バージョン7.28.0以降を推奨します。 |
|
| libmodbus | Modbusモニタリングを使用する場合にのみ必要です。 バージョン3.0以降。 |
バージョン5.0.3以降のZabbixエージェントは、バージョン6.1 TL07 / AIX 7.1 TL01より前のAIXプラットフォームでは動作しません。
| 要件 | 必須ステータス | 説明 |
|---|---|---|
| Go | Yes | Zabbixエージェント2とそのプラグインをソースから構築するために必要です。 Go 1.23以降をサポート。インストール手順についてはgo.devを参照してください。 Zabbixエージェント2が使用するGoライブラリとそのプラグインは、Zabbix Gitリポジトリにリストされています(リポジトリに indirectとしてマークされたライブラリは、他の必要なライブラリの依存関係です):- Zabbix agent 2 - Plugin support - PostgreSQL - MongoDB - MSSQL - Ember+ |
| 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以降が必要です。 |
ソースリポジトリまたはアーカイブからZabbixを取得した場合、必要な依存関係は既にソースツリーに含まれています。
ディストリビューションのパッケージからZabbixを取得した場合、必要な依存関係はパッケージングシステムによって既に提供されています。
上記のどちらの場合でも、ソフトウェアを使用する準備ができており、追加のダウンロードは必要ありません。
ただし、これらの依存関係のバージョンを提供したい場合(たとえば、一部のLinuxディストリビューション用のパッケージを準備している場合)、Javaゲートウェイが動作することがわかっているライブラリバージョンのリストを以下に示します。Zabbixはこれらのライブラリの他のバージョンでも動作する場合があります。
次の表に、元のコードで現在JavaゲートウェイにバンドルされているJARファイルを示します:
| ライブラリ | 必須ステータス | コメント |
|---|---|---|
| android-json | Yes | バージョン4.3r1以降。 JSON (JavaScript Object Notation)の軽量データ交換フォーマットです。 これはAndroid SDKから抽出されたorg.json互換のAndroid実装です。 |
| logback-classic | バージョン1.5.16以降。 | |
| logback-core | バージョン1.5.16以降。 | |
| slf4j-api | バージョン2.0.16以降。 |
Javaゲートウェイは、Oracle JavaまたはオープンソースのOpenJDK (バージョン1.6以降)を使用して構築できます。Zabbixが提供するパッケージは、OpenJDKを使用してコンパイルされます。 以下の表は、Zabbixパッケージのビルドに使用されるOpenJDKのバージョンに関する情報をディストリビューションごとに示しています。
| ディストリビューション | OpenJDKパッケージ |
|---|---|
| Debian 12 | default-jdk-headless (amd64, arm64: 2:1.17-74) |
| Debian 11 | default-jdk-headless (amd64: 2:1.11-72) |
| Debian 10 | default-jdk-headless (amd64, i386: 2:1.11-71) |
| 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) |
| Raspberry Pi OS 10 | default-jdk (armhf: 2:1.11-71+b2) |
| 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) |
| SLES 15 | java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1) |
| SLES 12 | java-1_8_0-openjdk-devel (amd64: 1.8.0.252-27.45.6) |
| 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) |
| Ubuntu 18.04 | default-jdk (amd64: 2:1.11-68ubuntu1~18.04.1; i386: 2:1.10-63ubuntu1~02) |
次のリストは各コンポーネントのデフォルトポート番号です。
| 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データベースのサイズは、主に保存されるヒストリデータの量に関する以下の数量によって決まります。
Zabbixサーバが1秒間に受信する新しい値の平均数です。 例えば、監視対象アイテムが3000件、更新速度が60秒の場合、1秒あたりの値数は3000/60 = 50個になります。 これは、毎秒50個の新しい値がZabbixデータベースに追加されることを意味します。
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バイト程度を見込んでおくとよいでしょう。
Zabbixは各項目の1時間の最大/最小/平均/カウントのセットをテーブルtrendsに保持します。 このデータはトレンド解析や長周期グラフに使用されます。この1時間の期間は変更できません。
Zabbixデータベースは、データベースの種類にもよりますが、それぞれの集計値につき約90バイトの容量が必要です。
例えばトレンドデータを5年分保存する場合、3000アイテムの値には、 1年あたり3000×24×365×90 = 2.2GB が必要で、5年間では11GBとなります。
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 のディスクスペース2が必要になります。
1 非ASCIIのイベント名、タグ、値を持つ場合、より多くなります。
2 サイズの概算はMySQLに基づいており、他のデータベースでは異なる可能性があります。
この表には、Zabbixシステムに必要なディスク容量の計算式が含まれています:
| パラメータ名 | 必要なディスクスペースの計算式 (バイト単位) |
|---|---|
| Zabbixの設定 | 固定サイズ。通常10MB以下。 |
| ヒストリ | days×(items/refresh rate)×24×3600×bytes items : アイテムの数 days : ヒストリ保存日数 refresh rate : アイテムのリフレッシュレートの平均 bytes : 単一の値を保持するために必要なバイト数,。データベースエンジンによって変わり、通常、~90 bytes。 |
| トレンド | days×(items/3600)×24×3600×bytes items : アイテムの数 days : ヒストリ保存日数 bytes : 単一のトレンドを保持するために必要なバイト数。データベースエンジンによって変わり、通常、~90 bytes。 |
| イベント | days×events×24×3600×bytes events : 1秒あたりのイベントの数。最悪の場合のシナリオでは、1秒あたり1つのイベント。 days : ヒストリ保存日数 bytes : 単一のトレンドを保持するために必要なバイト数。データベースエンジンによって変わり、通常、~330 + イベント1つあたりのタグの平均数 × 100 bytes. |
そのため、必要なディスク容量の合計は次のように計算されます:
設定 + ヒストリ + トレンド + イベント
算出したディスク容量は、Zabbixをインストールした直後から必要となるわけではありません。 データベースサイズは最初は増え続けますが、ある時点で一定の値を維持するようになります。 どの時点で一定になるかは、Housekeeperの設定に依存します。
Zabbixが動作しているサーバで正確なシステム時刻を得ることは非常に重要です。 ntpdはホストの時刻を他のマシンの時刻と同期させる最も有名なデーモンです。 Zabbixのコンポーネントが動作している全てのシステムで時刻を同期させることを強く推奨します。