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バージョンでサポートされています (since Zabbix 6.2からは、XP 64-bitバージョン)。

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.4.6から
- 8.2 - Zabbix 6.4.11から
- 8.3 - Zabbix 6.4.12から
- 8.4 - Zabbix 6.4.17から
- 9.0 - Zabbix 6.4.18から

サーバー/プロキシの構築にはC API (libmysqlclient)ライブラリを使用することをお勧めします。
MariaDB 10.5.00-11.5.X InnoDBエンジンが必要です。

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

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

MariaDBのサポートバージョンの追加:
- 10.11.X - Zabbix 6.4.1から
- 11.0.X - Zabbix 6.4.6から
- 11.1.X - Zabbix 6.4.8から
- 11.2.X - Zabbix 6.4.12から
- 11.3.X - Zabbix 6.4.14から
- 11.4.X - Zabbix 6.4.17から
- 11.5.X - Zabbix 6.4.19から

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

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

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

TimescaleDBのサポートバージョンの追加:
- 2.10 - Zabbix 6.4.1から
- 2.11 - Zabbix 6.4.4から
- 2.12 - Zabbix 6.4.9から
- 2.13 - Zabbix 6.4.10から
- 2.14 - Zabbix 6.4.13から
- 2.15 - Zabbix 6.4.17から
- 2.16 - Zabbix 6.4.19から
- 2.17 - Zabbix 6.4.20から
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はオペレーティングシステムで利用可能なデータベースで動作しますが、最高のエクスペリエンスを得るには、公式のデータベース開発者リポジトリからインストールされたデータベースを使用することをお勧めします。

Webインターフェース

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

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

ソフトウェア 必須ステータス バージョン コメント
Apache どれか一つ 2.4以降
Nginx 1.20以降
PHP Yes 7.4.0 - 8.3.X PHP 7.4はサポート対象外のため、PHP 8.0以降を使用することをお勧めします。

PHPのサポートバージョンの追加:
- 8.3.X - Zabbix 6.4.11から
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 4.0.0 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 以降。
libevent-pthreads プロセス間通信に必要です。
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.9.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 どれか一つ 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 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 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/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 On Windows.
Yes, indirect1
0.6.0 Windows の名前付きパイプの実装。
プラグインサポートライブラリでも使用されます。MongoDBとPostgreSQLプラグインで使用されます。
github.com/goburrow/serial Yes, indirect1 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 No, indirect1 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 "indirect"は、エージェントが使用するライブラリの 1 つで使用されることを意味します。 Zabbixはパッケージを使用するライブラリを使用するため必要です。

ロード可能なプラグインの依存関係も参照してください:

Javaゲートウェイ

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

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

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

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

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

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

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 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データベースのサイズは、主に保存されるヒストリデータの量に関する以下の数量によって決まります。

  • 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×90 = 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 のディスクスペース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のコンポーネントが動作している全てのシステムで時刻を同期させることを強く推奨します。

ネットワーク要件

次のリストは、コンポーネントごとのオープンポートのデフォルト設定です。

ポート コンポーネント
Webインターフェース http on 80, https on 443
Zabbixサーバー 10051 (アクティブなプロキシ/エージェントで使用)
アクティブプロキシ 10051
パッシブプロキシ 10051
エージェント2 10050
トラッパー
Javaゲートウェイ 10052
Webサービス 10053

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