Zabbixは、いくつかの主なソフトウェアコンポーネントから構成されています。各コンポーネントの役割を以下に示します。
Zabbixサーバーは、エージェントから可用性や整合性の情報や統計情報を収集する中核のコンポーネントです。サーバーは中核のリポジトリで、すべての設定や統計データ、運用データを保存します。
Zabbixによって収集されたデータと同様に、すべての設定情報もデータベースに保存されます。
どこからでもどんなプラットフォームからでも、Zabbixに簡単にアクセスできるように、Webインターフェースが提供されています。インターフェースはZabbixサーバーの一部であり、通常はサーバーと同じ物理サーバー上で動作しますが、別サーバーで動作させることもできます。
Zabbixプロキシは、Zabbixサーバーの代わりにパフォーマンスと可用性データを収集します。プロキシはZabbixのオプション部分ですが、1台のZabbixサーバーの負荷を分散するのにとても有益です。
Zabbixエージェントは、監視対象上にインストールされ、ローカルリソースやアプリケーションを能動的に監視し、収集したデータをZabbixサーバーに送信します。Zabbix 4.4からはエージェントとして2つの種類があります:Zabbixエージェント(C言語で実装され、低負荷で多くのプラットフォームをサポート)とZabbixエージェント2(Go言語で実装され、柔軟でプラグインで拡張しやすい)です。
加えて、Zabbix全体のデータフローを俯瞰的に見ることが非常に重要です。データを収集するアイテムを作成するためには、まず最初にホストを作成する必要があります。Zabbixで処理させるためには、最初にトリガーを作成するためのアイテムが必要です。アクションを作成するためには、トリガーが必要です。このように、例えば サーバーX でCPU負荷が高すぎる時に通知を受け取りたい場合は、まず サーバーX のホストを作成し、続いてCPUを監視するためのアイテムを作成し、それから、CPU負荷が高い場合に作動するトリガーを作成し、あなたにメールを送信するアクションを作成します。沢山のステップがあるように感じるかもしれませんが、テンプレートを使用すれば実はそんなことはありません。この設計であるため、非常に柔軟な構成が可能になっています。