要件
ハードウェア要件
メモリ
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 |
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インストールの評価およびテスト時に、Compute/Memory/Storage最適化など適切なインスタンスタイプを選択してから本番環境にインストールしてください。
実際の構成は、アクティブアイテム数やリフレッシュレートに大きく依存します(詳細はこのページのデータベースサイズセクションを参照してください)。 大規模なインストールの場合は、データベースを別サーバーで実行することを強く推奨します。
サポートされているプラットフォーム
セキュリティ要件と監視サーバーのミッションクリティカルな性質により、UNIXは必要なパフォーマンス、フォールトトレランス、およびレジリエンスを一貫して提供できる唯一のオペレーティングシステムです。 Zabbixは市場をリードするバージョンで動作します。
Zabbixコンポーネントは、以下のプラットフォームで利用可能でテストされています。
| プラットフォーム | サーバー | エージェント | エージェント2 | コメント |
|---|---|---|---|---|
| Linux | x | x | x | |
| Windows | - | x | x | Zabbixエージェントは、Windows XP (64-bit)/Server 2003以降のすべてのデスクトップおよびサーバーバージョンでサポートされています。 Zabbixエージェント2は、サポートされているGoバージョンでのみコンパイルされ、重大なセキュリティ脆弱性を防ぐため、Windows 10 (32-bit)/Server 2016以降のすべてのデスクトップおよびサーバーバージョンでサポートされています。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は、暗号化を有効にしてコンパイルされた場合、コアダンプを無効にし、コアダンプの無効化を許可しないシステムでは起動しません。
必要なソフトウェア
Zabbixは、最新のWebサーバー、主要なデータベースエンジン、PHPスクリプト言語を中心に構築されています。
サードパーティーの外部周辺ソフトウェア
必須と明記されている場合、必要なソフトウェア/ライブラリは厳密に必須です。
オプションのものは、特定の機能をサポートするために必要です。
| Software | Mandatory status | Supported versions | Comments |
|---|---|---|---|
| MySQL/Percona | One of | 8.4.0-9.7.X | ZabbixのバックエンドデータベースとしてMySQL(またはPercona)を使用する場合に必要です。InnoDBエンジンが必要です。 サーバー/プロキシのビルドには、C API (libmysqlclient) ライブラリの使用を推奨します。 本番環境ではLTSリリースのみを使用することを強く推奨します。"rolling release"、"early access"、または同様のラベルが付いたリリースは推奨されません。 |
| MariaDB | 10.11.00-12.3.X | InnoDBエンジンが必要です。 推奨バージョンは12.3です。 サーバー/プロキシのビルドには、MariaDB Connector/C ライブラリの使用を推奨します。 関連情報: MariaDBで発生する可能性のあるデッドロック および MariaDB 10.5.1-10.5.9でのUI要素へのアクセス。 本番環境ではLTSリリースのみを使用することを強く推奨します。"rolling release"、"early access"、または同様のラベルが付いたリリースは推奨されません。 |
|
| PostgreSQL | 15.0-18.X | ZabbixのバックエンドデータベースとしてPostgreSQLを使用する場合に必要です。 インストール規模によっては、データベースが特定の操作で使用するメモリ量が十分であり、クエリ実行に時間がかかりすぎないように、PostgreSQLのwork_mem設定プロパティ(デフォルト値は4MB)を増やす必要がある場合があります。 |
|
| TimescaleDB for PostgreSQL | 2.20.X-2.28.X | PostgreSQLデータベース拡張としてTimescaleDBを使用する場合に必要です。圧縮をサポートするTimescaleDB Community Edition を必ずインストールしてください。 PostgreSQLとTimescaleDBのバージョン互換性の詳細については、TimescaleDB documentation を参照してください。 |
|
| Elasticsearch | 7.X | ZabbixのバックエンドデータベースとしてElasticsearchを使用する場合に必要です。 Elasticsearchは履歴データの保存にのみ使用でき、Zabbixサーバーでのみサポートされます。Elasticsearchのサポートは現在実験的です。必要なソフトウェアについてはserver/proxyも参照してください。 |
|
| ClickHouse | 25.8.22.X-26.4.X | ZabbixのバックエンドデータベースとしてClickHouseを使用する場合に必要です。 ClickHouseは履歴データの保存にのみ使用でき、Zabbixサーバーでのみサポートされます。 |
|
| SQLite | Optional | 3.3.5-3.53.X | SQLiteはZabbixプロキシでのみサポートされます。ZabbixプロキシのデータベースとしてSQLiteを使用する場合に必要です。 |
| smartmontools | 7.1 or later | Zabbix エージェント 2 に必要です。 | |
| who | ユーザー数プラグインに必要です。 | ||
| dpkg | system.sw.packagesプラグインに必要です。 | ||
| pkgtool | system.sw.packagesプラグインに必要です。 | ||
| rpm | system.sw.packagesプラグインに必要です。 | ||
| pacman | system.sw.packagesプラグインに必要です。 | ||
| q applets | Gentoo Linuxでは、q applets の一部である qlist と qsize が system.sw.packagesプラグインに必要です。 |
Zabbixはオペレーティングシステムで利用可能なデータベースでも動作しますが、最良の使用感を得るには、公式のデータベース開発元リポジトリからインストールしたデータベースの使用を推奨します。
Webインターフェース
Zabbix Webインターフェースでサポートされる最小画面幅は1200pxです。
必須と記載されている場合、必要なソフトウェア/ライブラリは厳密に必要です。 オプションのものは、特定の機能をサポートするために必要です。
| Software | Mandatory status | Supported versions | Comments |
|---|---|---|---|
| PHP | Yes | 8.2.0 - 8.5.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) をサポートしている必要があります。一部のWebインターフェース言語で発生する可能性のあるグラフ内のテキスト重なりを回避するために、バージョン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に同梱されるサードパーティ製Webインターフェースライブラリ:
| 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 | ZabbixにサインインできるようにSAML 2.0認証サポートを追加するPHPツールキットです。 | |
| Duo Universal PHP library | 1.1.2 | Zabbix向けにDuo Universal Prompt多要素認証サポートを追加するPHPライブラリです。 | |
| Symfony Yaml Component | 5.1.0 | YAML形式でZabbix設定要素をエクスポートおよびインポートするためのサポートを追加します。 |
Zabbixは、Apache、MySQL、およびPostgreSQLの以前のバージョンでも動作する場合があります。
デフォルトのDejaVu以外のフォントでは、PHP関数 imagerotate が必要になる場合があります。 これがない場合、グラフ表示時にこれらのフォントが正しくレンダリングされない可能性があります。 この関数は、PHPがバンドル版GD付きでコンパイルされている場合にのみ利用可能ですが、Debianやその他のディストリビューションでは通常そうではありません。
Zabbix Webインターフェースコードの作成およびデバッグに使用されるサードパーティ製ライブラリ:
| Library | Mandatory status | Minimum version | Description |
|---|---|---|---|
| Composer | No | 2.4.1 | PHP用のアプリケーションレベルのパッケージマネージャーで、PHPソフトウェアおよび必要なライブラリの依存関係を管理するための標準形式を提供します。 |
| PHPUnit | 8.5.29 | Zabbix WebインターフェースをテストするためのPHPユニットテストフレームワークです。 | |
| SASS | 3.4.22 | Cascading Style Sheets (CSS) に解釈およびコンパイルされるプリプロセッサスクリプト言語です。 |
クライアント側のWebブラウザ
CookieとJavaScriptを有効にする必要があります。
Google Chrome、Mozilla Firefox、Microsoft Edge、Apple Safari、Operaの最新の安定バージョンがサポートされています。
IFrameの同一生成元ポリシーが実装されているため、Zabbixを異なるドメインのフレームに配置することはできません。
ただし、Zabbixフレームに配置されたページは、フレームに配置されたページとZabbixフロントエンドが同じドメインにある場合、Zabbixフロントエンドに(JavaScriptを介して)アクセスできます。
http://secure-zabbix.com/cms/page.htmlのようなページをhttp://secure-zabbix.com/zabbix/のダッシュボードに配置すると、Zabbixへの完全なJSアクセスが可能になります。
サーバー/プロキシ
必須と記載されている場合、必要なソフトウェア/ライブラリは厳密に必須です。
オプションのものは、特定の機能をサポートするために必要です。
| Requirement | Mandatory status | Description |
|---|---|---|
| libpcre2 | Yes | PCRE2 ライブラリは Perl Compatible Regular Expression (PCRE) のサポートに必要です。 PCRE2 v10.x がサポートされています。 |
| libevent | プロセス間通信に必要です。バージョン 2.0.10 以上。 | |
| libevent-pthreads | プロセス間通信に必要です。 | |
| libpthread | mutex および read-write lock のサポートに必要です (libc の一部である場合があります)。 | |
| libresolv | DNS 解決に必要です (libc の一部である場合があります)。 | |
| libiconv | テキストエンコーディング/形式変換に必要です (libc の一部である場合があります)。Linux 上の Zabbix server では必須です。 | |
| libz | 圧縮サポートに必要です。 | |
| libm | 数学ライブラリです。Zabbix server のみに必要です。 | |
| libmysqlclient | One of | MySQL を使用する場合に必要です。 |
| libmariadb | MariaDB を使用する場合に必要です。 | |
| libpq5 | PostgreSQL を使用する場合に必要です。libpq5 のバージョンは、使用する PostgreSQL データベースのバージョンと一致しているか、それ以上である必要があります。 | |
| libsqlite3 | SQLite を使用する場合に必要です。Zabbix proxy のみに必要です。 | |
| libOpenIPMI | No | IPMI サポートに必要です。Zabbix server のみに必要です。 |
| libssh2 or libssh | SSH checks に必要です。バージョン 1.8.0 以上 (libssh2); 0.9.0 以上 (libssh)。 | |
| libcurl | 次の機能に必要です: - Web monitoring、VMware monitoring、および HTTP agent アイテム (すべて: バージョン 7.19.1 以上); - Zabbix agent の web.page.* アイテム (バージョン 7.19.1 以上。agent の要件も参照); - SMTP authentication (Basic: バージョン 7.20.0 以上; OAuth: バージョン 7.33 以上。frontend の要件も参照); - Elasticsearch (バージョン 7.28.0 以上)。 すべての機能については、バージョン 7.28.0 以上を推奨します。 web.page.* アイテムで更新された cURL 機能を使用するには、Zabbix server/proxy を再起動してください。SMTP authentication では、実行時に libcurl-full パッケージを使用してください。 |
|
| libxml2 | VMware monitoring および XML XPath 前処理に必要です。 | |
| net-snmp | SNMP サポートに必要です。バージョン 5.3.0 以上。 強力な暗号化プロトコル (AES192/AES192C、AES256/AES256C) のサポートは net-snmp ライブラリ 5.8 から利用できます。RHEL 8 以降ベースのシステムでは、net-snmp 5.8.15 以降の使用を推奨します。 |
|
| libunixodbc | database monitoring に必要です。 | |
| libgnutls or libopenssl | 暗号化 を使用する場合に必要です。 最小バージョン: libgnutls - 3.1.18、libopenssl - 1.0.1 |
|
| libldap | LDAP サポートに必要です。 | |
| fping | ICMP ping items に必要です。 | |
| c-ares | Zabbix が --with-ares オプション付きで設定されている場合、非同期 DNS 解決に必要です。そうでない場合は、libevent が使用されます。最小バージョン: 1.16.0。DNS クエリキャッシュおよびフェイルオーバー機能 (クエリキャッシュはデフォルトで有効) には c-ares 1.26.0 以降が必要です。OS パッケージで c-ares が提供されるシステムでは、インストールされているランタイムライブラリが DNS キャッシュおよびフェイルオーバーに必要な resolver 機能を公開していることを確認してください。 |
エージェント
| Requirement | Mandatory status | Description |
|---|---|---|
| libpcre2 | Yes | Perl互換正規表現(Perl Compatible Regular Expression) (PCRE) のサポートに必要な PCRE2 ライブラリです。 PCRE2 v10.x がサポートされています。 ログ監視に必要です。Windows でも必要です。 |
| libpthread | mutex および read-write lock のサポートに必要です (libc の一部である場合があります)。Windows では不要です。 | |
| libresolv | DNS 解決に必要です (libc の一部である場合があります)。Windows では不要です。 | |
| libiconv | ログアイテム、ファイルコンテンツ、ファイル regex、および regmatch アイテムで UTF-8 へのテキストエンコーディング/形式変換に必要です (libc の一部である場合があります)。Windows では不要です。 | |
| libgnutls or libopenssl | No | 暗号化 を使用する場合に必要です。 最小バージョン: libgnutls - 3.1.18、libopenssl - 1.0.1 Microsoft Windows では OpenSSL 1.1.1 以降が必要です。 |
| libldap | LDAP を使用する場合に必要です。Windows ではサポートされていません。 | |
| libcurl | Zabbix エージェントの web.page.* アイテムの拡張サポートに必要です。 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
| Requirement | Mandatory status | Description |
|---|---|---|
| Go | Yes | Zabbix エージェント 2 とそのプラグインをソースからビルドするために必要です。 Go 1.25 以降がサポートされています。インストール手順については go.dev を参照してください。 Zabbix エージェント 2 とそのプラグインで使用される Go ライブラリは Zabbix の Git リポジトリに一覧されています(リポジトリ内で indirect とマークされているライブラリは、他の必須ライブラリの依存関係です)。- Zabbix エージェント 2 - プラグインサポート - PostgreSQL - MongoDB - MSSQL - Ember+ - NVIDIA GPU - Example plugin |
| libpcre2 | Yes | PCRE2 ライブラリは Perl Compatible Regular Expression (PCRE) のサポートに必要です。 PCRE2 v10.x がサポートされています。 ログ監視に必要です。Windows でも必要です。 |
| libopenssl | No | 暗号化を使用する場合に必要です。 UNIX プラットフォームでは OpenSSL 1.0.1 以降が必要です。 OpenSSL ライブラリでは PSK サポートを有効にする必要があります。LibreSSL はサポートされていません。 Microsoft Windows システムでは OpenSSL 1.1.1 以降が必要です。 |
Webサービス
Zabbix Webサービスを使用して定期レポートを生成するのに、Google Chromeの最新の安定バージョンがサポートされています。
Webサービスの構築に必要なGoのバージョンは、Zabbixエージェント2で使用されているバージョンと同じです。
Javaゲートウェイ
Zabbix をソースリポジトリまたはアーカイブから入手した場合、必要な依存関係はすでにソースツリーに含まれています。
Zabbix をディストリビューションのパッケージから入手した場合、必要な依存関係はパッケージングシステムによってすでに提供されています。
上記のいずれの場合でも、ソフトウェアはすぐに使用でき、追加のダウンロードは不要です。
ただし、これらの依存関係について独自のバージョンを提供したい場合(たとえば、ある Linux ディストリビューション向けのパッケージを作成している場合など)は、以下に Javaゲートウェイ が動作することが確認されているライブラリのバージョン一覧を示します。 Zabbix は、これら以外のバージョンのライブラリでも動作する場合があります。
次の表は、元のコードで現在 Javaゲートウェイ に同梱されている JAR ファイルを示します。
| Library | Mandatory status | Bundled version | Comments |
|---|---|---|---|
| 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 パッケージを示します。
| Distribution | OpenJDK package |
|---|---|
| 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 agent 2 | 10050 | TCP | オンデマンド |
| Zabbixサーバー | 10051 | TCP | オンデマンド |
| Zabbixプロキシ | 10051 | TCP | オンデマンド |
| Zabbix Javaゲートウェイ | 10052 | TCP | オンデマンド |
| Zabbixウェブサービス | 10053 | TCP | オンデマンド |
| Zabbixフロントエンド | 80 | HTTP | オンデマンド |
| 443 | HTTPS | オンデマンド | |
| Zabbixトラッパー | 10051 | TCP | オンデマンド |
Zabbixの通信を有効にするためには、これらのポート番号をファイアウォールで開放する必要があります。 通常、発信側のTCP接続には明示的なファイアウォール設定は不要です。
データベースサイズ
Zabbix の設定データは、一定量のディスク容量を必要とし、あまり増加しません。
Zabbix のデータベースサイズは主に次の変数に依存し、これらが保存される履歴データ量を決定します。
- 1秒あたりの処理済み値の数
これは、Zabbix サーバーが毎秒受信する新しい値の平均数です。
たとえば、監視対象のアイテムが 3000 個あり、更新間隔が 60 秒の場合、1秒あたりの値の数は 3000/60 = 50 と計算されます。
つまり、毎秒 50 個の新しい値が Zabbix データベースに追加されます。
- 履歴の Housekeeper 設定
Zabbix は値を一定期間保持します。通常は数週間または数か月です。
新しい値ごとに、データとインデックスのために一定量のディスク容量が必要になります。
そのため、30 日分の履歴を保持し、1秒あたり 50 個の値を受信する場合、値の総数はおよそ (30*24*3600)* 50 = 129.600.000、つまり約 130M 個の値になります。
使用するデータベースエンジンや受信する値の種類(浮動小数点、整数、文字列、ログファイルなど)によって、1つの値を保持するために必要なディスク容量は 40 バイトから数百バイトまで変動します。
通常、数値アイテムの場合は 1 値あたり約 90 バイトです2。
この例では、130M 個の値には 130M * 90 バイト = 10.9GB のディスク容量が必要になります。
テキスト/ログアイテムの値のサイズを正確に予測することはできませんが、1 値あたり約 500 バイトと見積もることができます。
- トレンドの Housekeeper 設定
Zabbix は、各アイテムについて 1時間分の max/min/avg/count の値を trends テーブルに保持します。
このデータはトレンド表示や長期間のグラフに使用されます。
1時間の期間はカスタマイズできません。
Zabbix データベースは、データベースの種類に応じて、各 total あたり約 90 バイトを必要とします。
トレンドデータを 5 年間保持したいとします。
3000 個のアイテムの値には、3000*24*365* 90 = 2.2GB / 年、または 5 年で 11GB が必要になります。
- イベントの Housekeeper 設定
各 Zabbix イベントには、約 250 バイトのディスク容量が必要です1。
Zabbix が 1日に生成するイベント数を見積もるのは困難です。
最悪のケースでは、Zabbix が 1秒あたり 1 件のイベントを生成すると仮定できます。
回復した各イベントについて、event_recovery レコードが作成されます。
通常、ほとんどのイベントは回復するため、イベントごとに 1 件の 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 | 必要なディスク容量の式(バイト) |
|---|---|
| Zabbix configuration | 固定サイズ。通常は 10MB 以下。 |
| History | days*(items/refresh rate)*24*3600*bytes items : アイテム数 days : 履歴を保持する日数 refresh rate : アイテムの平均更新間隔 bytes : 1つの値を保持するために必要なバイト数。データベースエンジンに依存し、通常は約 90 バイト。 |
| Trends | days*(items/3600)*24*3600*bytes items : アイテム数 days : 履歴を保持する日数 bytes : 1つのトレンドを保持するために必要なバイト数。データベースエンジンに依存し、通常は約 90 バイト。 |
| Events | days*events*24*3600*bytes events : 1秒あたりのイベント数。最悪ケースでは 1(1)秒あたり 1 件のイベント。 days : 履歴を保持する日数 bytes : 1つのイベントを保持するために必要なバイト数。データベースエンジンに依存し、通常は約 330 + イベントごとの平均タグ数 * 100 バイト。 |
したがって、必要なディスク容量の合計は次のように計算できます。
Configuration + History + Trends + Events
ディスク容量は、Zabbix のインストール直後にすぐ使用されるわけではありません。
データベースサイズはその後増加し、Housekeeper 設定に依存するある時点で増加が止まります。
時刻同期
Zabbixが稼働しているサーバーで正確なシステム時刻を持つことは非常に重要です。 ntpdは、ホストの時刻を他のマシンの時刻と同期させる最も一般的なデーモンです。 Zabbixコンポーネントが稼働しているすべてのシステムで、システム時刻を同期させておくことを強く推奨します。
ネットワーク要件
各コンポーネントごとに開放する必要があるポートの一覧です(デフォルト設定の場合)。
| コンポーネント | ポート |
|---|---|
| フロントエンド | http:80, https:443 |
| サーバー | 10051 (アクティブプロキシ/エージェントで使用) |
| アクティブプロキシ | 10051 |
| パッシブプロキシ | 10051 |
| エージェント2 | 10050 |
| トラッパー | |
| JavaGateway | 10052 |
| WebService | 10053 |
Zabbixと外部通信を行うためには、これらのポート番号をファイアウォールで開放する必要があります。 通常、外向きのTCP接続には明示的なファイアウォール設定は不要です。