Zabbixには、十分な量の物理メモリとディスク容量が必要です。導入当初は、物理メモリ128MBとディスク空き容量256MBがあれば十分です。ただし、必要なディスク容量は、監視するホストとパラメータの数によって異なります。監視パラメータのヒストリを長期間保存することを計画している場合、データベースにヒストリを保存するための十分な容量として少なくとも2GBを確保することを検討する必要があります。Zabbixデーモンプロセスは、それぞれがデータベースサーバと複数の接続を確立して動作します。接続に割り当てられるメモリ容量は、データベースエンジンの設定によって異なります。
Zabbix、特にZABBIXデータベースは、監視パラメータの数と使用するデータベースエンジンによって程度は異なりますが、CPUリソースを大量に消費します。
ZabbixのSMS通知機能を使用する場合、シリアルポートとシリアルGSMモデムが必要です。
以下の表に、様々なハードウェア設定の例を示します。
| 名前 | プラットフォーム | CPU/メモリ | データベース | 監視するホスト数 |
|---|---|---|---|---|
| 小規模 | Ubuntu Linux | PII 350MHz 256MB | MySQL MyISAM | 20 |
| 中規模 | Ubuntu Linux 64ビット | AMD Athlon 3200+ 2GB | MySQL InnoDB | 500 |
| 大規模 | Ubuntu Linux 64ビット | Intel Dual Core 6400 4GB | RAID10 MySQL InnoDBまたはPostgreSQL | >1000 |
| 非常に大規模 | RedHat Enterprise | Intel Xeon 2xCPU 8GB | Fast RAID10 MySQL InnoDBまたはPostgreSQL | >10000 |
監視サーバのセキュリティ要件とミッションクリティカルな性質を考慮した場合、必要とされるパフォーマンス、フォールトトレランス、および復旧のしやすさを安定して実現できるオペレーティングシステムはUNIXだけです。Zabbixは、市販されている主なバージョンのUNIXで動作します。
以下のプラットフォームで動作確認済みです。
Zabbixは、最新のApacheウェブサーバ、主なデータベースエンジン、およびPHPスクリプト言語を組み合わせて動作します。
Zabbixが動作するには、以下のソフトウェアが必要です。
| ソフトウェア | バージョン | コメント |
|---|---|---|
| Apache | 1.3.12以降 | |
| PHP | 5.0以降 | |
| PHP modules: php-gd | GD 2.0以降 | PHP GDモジュールは、PNGイメージ対応である必要があります。 |
| PHP TryeTypeサポート | --with-ttf | |
| PHP bcサポート | php-bcmath, --enable-bcmath | |
| PHP XMLサポート | ディストリビュータによってはphp-xmlまたはphp5-domが異なるパッケージとして提供されている場合があります。 | |
| PHP socketサポート | php-net-socket, --enable-sockets. ユーザスクリプトをサポートするために必要です。 | |
| PHP multibyteサポート | php-mbstring, --enable-mbstring | |
| MySQL php-mysql | 3.22以降 | MySQLをZabbixのバックエンドデータベースとして使用する場合に必要です。 |
| Oracle php-oci8 | OracleをZabbixのバックエンドデータベースとして使用する場合に必要です。 | |
| PostgreSQL php-pgsql | 7.0.2以降 |
HTMLとPNGイメージをサポートする必要があります。設定でCookieとJavaScriptを有効にする必要があります。最新バージョンのMozilla Firefox、Microsoft Internet Explorer、Opera、Konquerorがサポートされます。その他のブラウザ(Google Chrome、Apple Safari)もZabbixで同様に機能します。
| 要件 | 説明 |
|---|---|
| OpenIPMI | IPMIをサポートする場合に必要です。 |
| libssh2 | SSHをサポートする場合に必要です。バージョン1.0以降 |
ZABBIXサーバおよびプロキシでは、以下の4つのデータベースエンジンがサポートされています。
Zabbix設定データを保存するために一定量のディスク容量が必要ですが、ほとんど増えることはありません。
Zabbixデータベースサイズは、主に格納されたヒストリデータの量に関する以下の数量によって決まります。
Zabbixサーバが1秒あたりに受信する新しい値の平均個数です。たとえば、3000個のアイテムを更新速度60秒で監視する場合、1秒あたりの値の数は3000/60=50個になります。
これは、毎秒50個の新しい値がZabbixデータベースに追加されることを意味します。
収集した値は、一定期間(通常は数週間から数ヶ月)だけ保存されます。新しい値を追加するたびに、データおよびインデックス用に一定量のディスク容量が消費されます。
そのため、1秒あたり50個の値を受信して、そのヒストリを30日間保存する場合、値の総数は(30*24*3600)*50=129,600,000、すなわち約1.3億個になります。
使用するデータベースエンジンと受信する値のデータ型(浮動小数点、整数、文字列、ログファイルなど)によって異なりますが、1つの値を保存するために必要なディスク容量は40バイトから数百バイトまで様々です。通常は、1つの値に約50バイトが必要です。上記の例で考えると、1.3億個の値を保存するために、1.3億*50バイト=6.5GBのディスク容量が必要になります。
トレンドテーブルの各アイテムについて、1時間の最大/最小/平均/個数の統計情報が保存されます。保存されたデータは、トレンドグラフや長期間グラフの表示に使用されます。
データベースのタイプにもよりますが、Zabbixデータベースに上記の統計情報を1回分保存するために必要なディスク容量は128バイトです。たとえば、3000個の値のトレンドデータを5年分保存しようとすると、1年分で(3000/1800)*(24*3600*365)* 128 = 6.3GBなので、5年分では 31.5GB のディスク容量が必要になります。
1個のイベントにつき約130バイトのディスク容量が必要です。Zabbixで毎日発生するイベントの数を算出することは非常に困難です。最悪のケースとして、1秒に1個のイベントが発生すると仮定します。
イベントデータを3年分保存する場合、3*365*24*3600* 130 = 11GBのディスク容量が必要になります。
以下の表に、ZABBIXシステムに必要なディスク容量の算出に役立つ式を示します。
| パラメータ | 必要なディスク容量を算出するための式(バイト) |
|---|---|
| Zabbix設定 | 一定サイズ。通常は10MB以下です。 |
| ヒストリ | days×(items/refresh rate)×24×3600×bytes アイテム:アイテム数<br1/> 日:イベント履歴を保存する日数<br2/> 更新間隔:アイテムの平均更新速度<br3/> バイト:1個の値を保存するために必要なバイト数。データベースエンジンにもよりますが、通常は50バイトです。 |
| トレンド | days×(items/1800)×24×3600×bytes アイテム:アイテム数<br1/> 日:イベント履歴を保存する日数<br2/> バイト:1個のトレンドを保存するために必要なバイト数。データベースエンジンにもよりますが、通常は128バイトです。 |
| イベント | days×events×24×3600×bytes イベント:1秒あたりのイベント個数。最悪のケースでは1秒に1個のイベントが発生すると想定しています。 日:イベント履歴を保存する日数<br2/> バイト:1個のトレンドを保存するために必要なバイト数。データベースエンジンにもよりますが、通常は130バイトです。 |
以上より、必要な総ディスク容量は、以下の式で計算できます。
設定+ヒストリ+トレンド+イベント
ここで算出したディスク容量は、Zabbixをインストールした直後から使用されるわけではありません。データベースサイズは最初は増え続けますが、ある時点で一定の値を維持するようになります。どの時点で一定になるかは、housekeeperの設定によって異なります。<node>分散設定のノードで必要なディスク容量も同様の方法で計算できますが、1つのノードにリンクされている子ノードの総数にも依存します。</node>
Zabbixが動作するサーバでは、正確なシステム日時を維持することが非常に重要です。ntpdはよく知られているデーモンの1つで、ホストの時刻を他のマシンの時刻と同期します。