Zabbixとは

Zabbix は Alexei Vladishev によって作成され、現在は Zabbix SIA により活発に開発およびサポートされています。

Zabbix は、エンタープライズクラスのオープンソース分散監視ソリューションです。

Zabbix は、ネットワークの多数のパラメータや、サーバー、仮想マシン、アプリケーション、サービス、データベース、Webサイト、クラウドなどの健全性と完全性を監視するソフトウェアです。Zabbix は柔軟な通知メカニズムを備えており、ユーザーは事実上あらゆるイベントに対してメールベースのアラートを設定できます。これにより、サーバーの問題に迅速に対応できます。Zabbix は、保存されたデータに基づく優れたレポート機能とデータ可視化機能を提供します。このため、Zabbix はキャパシティプランニングに最適です。

Zabbix は、ポーリングとトラッピングの両方をサポートしています。すべての Zabbix のレポートと統計情報、および設定パラメータは、Webベースの Webインターフェース を通じてアクセスされます。Webベースの Webインターフェース により、どこからでもネットワークの状態やサーバーの健全性を評価できます。適切に設定された Zabbix は、IT インフラストラクチャの監視において重要な役割を果たします。これは、数台のサーバーを持つ小規模な組織にも、多数のサーバーを持つ大企業にも同様に当てはまります。

Zabbix は無償で利用できます。Zabbix は AGPL-3.0 ライセンスのもとで作成および配布されています。これは、そのソースコードが一般に自由に配布され、利用可能であることを意味します。

商用サポート は利用可能であり、Zabbix Company と世界中のそのパートナーによって提供されています。

詳細は Zabbix の機能 を参照してください。

Zabbixのユーザー

世界中の多くの規模の異なる組織が、Zabbixを主要な監視プラットフォームとして利用しています。

アーキテクチャ

Zabbixはいくつかの主要なソフトウェアコンポーネントで構成されています。それぞれの役割は以下の通りです。

サーバー

Zabbixサーバーは、エージェントが可用性と整合性の情報および統計情報を報告する中央コンポーネントです。サーバーは、すべての設定、統計、および運用データが保存される中央リポジトリです。

データベースストレージ

すべての設定情報とZabbixによって収集されたデータは、データベースに保存されます。

Webインターフェース

どこからでも、どのプラットフォームからでもZabbixに簡単にアクセスできるように、Webベースのインターフェースが提供されています。このインターフェースはZabbixサーバーの一部であり、通常は(必ずしもそうである必要はありませんが)サーバーを実行しているのと同じ物理マシン上で実行されます。

プロキシ

Zabbixプロキシは、Zabbixサーバーに代わってパフォーマンスおよび可用性データを収集できます。プロキシはZabbixの導入において必須ではありませんが、単一のZabbixサーバーの負荷を分散するのに非常に有益です。

エージェント

Zabbixエージェントは、監視対象に導入され、ローカルリソースやアプリケーションを積極的に監視し、収集したデータをZabbixサーバーに報告します。Zabbix 4.4以降、2種類のエージェントが利用可能です。Zabbixエージェント(軽量、多くのプラットフォームでサポート、C言語で記述)とZabbixエージェント2(柔軟性が高く、プラグインで簡単に拡張可能、Go言語で記述)です。

データフロー

さらに、Zabbix内の全体的なデータフローを俯瞰して見ることも重要です。データを収集するアイテムを作成するには、まずホストを作成する必要があります。Zabbixのもう一方の端に進むと、トリガーを作成するにはまずアイテムが必要です。アクションを作成するにはトリガーが必要です。したがって、Server X のCPU負荷が高すぎる場合にアラートを受け取りたい場合は、まず Server X のホストエントリを作成し、そのCPUを監視するアイテムを作成し、CPUが高すぎる場合にアクティブになるトリガーを作成し、最後にメールを送信するアクションを作成する必要があります。手順が多いように思えるかもしれませんが、テンプレートを使用すれば実際にはそうではありません。しかし、この設計により非常に柔軟なセットアップが可能になります。

機能

Zabbixは高度に統合されたネットワーク監視ソリューションであり、単一のパッケージで多数の機能を提供します。

データ収集

  • 可用性およびパフォーマンスのチェック
  • SNMP(トラップおよびポーリングの両方)、IPMI、JMX、VMware監視をサポート
  • カスタムチェック
  • 任意の間隔で必要なデータを収集
  • サーバー/プロキシおよびエージェントによって実行

柔軟なしきい値の定義

  • バックエンドデータベース内の値を参照して、トリガーと呼ばれる非常に柔軟な障害しきい値を定義できます

高度に設定可能な通知

  • 通知の送信は、エスカレーションスケジュール、受信者、メディアタイプごとにカスタマイズできます
  • 通知はマクロ変数を使用して、意味が明確で役立つものにできます
  • 自動アクションにはリモートコマンドが含まれます

リアルタイムグラフ表示

  • 監視対象のアイテムは、組み込みのグラフ作成機能を使用して即座にグラフ化されます

Web監視機能

  • ZabbixはWebサイト上でマウスクリックをシミュレートした経路をたどり、機能と応答時間を確認できます

豊富な可視化オプション

  • 複数のアイテムを1つのビューに組み合わせたカスタムグラフを作成可能
  • ネットワークマップ
  • ダッシュボード形式の概要でのスライドショー
  • レポート
  • 監視対象リソースの高レベル(ビジネス)ビュー

履歴データの保存

  • データはデータベースに保存
  • 設定可能な履歴
  • 組み込みのハウスキーピング手順

簡単な設定

  • 監視対象デバイスをホストとして追加
  • ホストはデータベースに登録されると監視対象になります
  • 監視対象デバイスにテンプレートを適用

テンプレートの使用

  • チェックをテンプレートにグループ化
  • テンプレートは他のテンプレートを継承できます

ネットワークディスカバリ

  • ネットワークデバイスの自動検出
  • エージェントの自動登録
  • ファイルシステム、ネットワークインターフェース、SNMP OIDの検出

高速なWebインターフェース

  • PHPベースのWebインターフェース
  • どこからでもアクセス可能
  • クリック操作で簡単に利用可能
  • 監査ログ

Zabbix API

  • Zabbix APIは、一括操作、サードパーティソフトウェアとの統合、その他の目的のために、Zabbixへのプログラム可能なインターフェースを提供します。

権限システム

  • 安全なユーザー認証
  • 特定のユーザーを特定の表示のみに制限可能

フル機能で容易に拡張可能なエージェント

  • 監視対象に配備
  • LinuxとWindowsの両方に配備可能

バイナリデーモン

  • パフォーマンスと小さなメモリ使用量のためにCで記述
  • 容易に移植可能

複雑な環境にも対応

  • Zabbixプロキシを使用することで、リモート監視を容易に実現できます

用語集

このセクションでは、Zabbixで一般的に使用されるいくつかの用語の意味を学ぶことができます。

ホスト

- 監視対象パラメータの、物理または仮想デバイス、アプリケーション、サービス、あるいはその他の論理的に関連する集合。

ホストグループ

- ホストの論理的なグループ化。
ホストグループは、異なるユーザーグループに対してホストへのアクセス権を割り当てる際に使用されます。

アイテム

- ホストから受信したい特定のデータ、すなわちデータのメトリクス。

値の 前処理

- 受信したメトリクス値をデータベースに保存する前に行う変換。

トリガー

- 問題のしきい値を定義し、アイテムで受信したデータを「評価」するために使用される論理式。

受信したデータがしきい値を上回ると、トリガーは「Ok」から 「Problem」状態に変わります。受信したデータがしきい値を下回ると、トリガーは 「Ok」状態のままであるか、「Ok」状態に戻ります。

テンプレート

- 1つまたは複数のホストに適用できるよう準備されたエンティティ(アイテム、トリガー、グラフ、ローレベルディスカバリルール、Webシナリオ)のセット。

テンプレートの役割は、ホスト上での監視タスクの展開を迅速化することです。また、監視タスクに対する一括変更を容易にすることにも役立ちます。テンプレートは個々のホストに直接リンクされます。

テンプレートグループ

- テンプレートの論理的なグループ化。
テンプレートグループは、異なるユーザーグループに対してテンプレートへのアクセス権を割り当てる際に使用されます。

event

- トリガーの状態変化や、ディスカバリ/エージェント自動登録の発生など、注意を払うべき事象の単一の発生。

event tag

- event用の事前定義されたマーカー。 event相関、権限の細分化などで使用できます。

event correlation

- 問題とその解決を柔軟かつ正確に関連付ける方法。

たとえば、あるトリガーによって報告された問題を別のトリガーによって解決できるよう定義できます。その別のトリガーでは、異なるデータ収集方法を使用することもできます。

problem

- 「Problem」状態にあるトリガー。

problem update

- コメントの追加、確認、深刻度の変更、手動クローズなど、Zabbixが提供するproblem管理オプション。

action

- eventに対して反応するための事前定義された手段。

actionは、操作(例: 通知の送信)と条件(その操作がいつ実行されるか)で構成されます。

escalation

- action内で操作を実行するためのカスタムシナリオ。通知の送信/リモートコマンドの実行の一連の流れ。

macro

- コンテキストに応じて特定の値に解決される変数プレースホルダー。

media

- 通知を配信する手段。配信チャネル。

notification

- 選択されたメディアチャネルを通じてユーザーに送信される、何らかのeventに関するメッセージ。

remote command

- 何らかの条件に応じて、監視対象ホスト上で自動的に実行される事前定義済みコマンド。

web scenario

- Webサイトの可用性を確認するための1つまたは複数のHTTPリクエスト。

Webインターフェース

- Zabbixに付属するWebインターフェース。

dashboard

- ウィジェットと呼ばれる視覚ユニットで重要な情報の要約や可視化を表示する、カスタマイズ可能なWebインターフェースのセクション。

widget

- ダッシュボードで使用される、特定の種類とソースの情報(要約、マップ、グラフ、時計など)を表示する視覚ユニット。

Zabbix API

- Zabbix APIを使用すると、JSON RPCプロトコルを使ってZabbixオブジェクト(ホスト、アイテム、グラフなど)を作成、更新、取得したり、その他のカスタムタスクを実行したりできます。

Zabbix サーバー

- 監視を実行し、Zabbixプロキシおよびエージェントとやり取りし、トリガーを計算し、通知を送信するZabbixソフトウェアの中核プロセス。データの中央リポジトリでもあります。

Zabbix プロキシ

- Zabbixサーバーの代わりにデータを収集し、サーバーの処理負荷を軽減できるプロセス。

Zabbix エージェント

- ローカルリソースおよびアプリケーションを能動的に監視するために、監視対象に配置されるプロセス。

Zabbix agent 2

- ローカルリソースおよびアプリケーションを能動的に監視するための新世代のZabbixエージェントで、監視にカスタムプラグインを使用できます。

Zabbix agent 2は Zabbix agentと多くの機能を共有しているため、ドキュメント内の「Zabbix agent」という用語は、機能的な動作が同じである場合、Zabbix agentとZabbix agent 2の両方を指します。Zabbix agent 2は、その機能が異なる場合にのみ個別に明記されます。

encryption

- Zabbixコンポーネント(サーバー、プロキシ、エージェント、zabbix_senderおよびzabbix_getユーティリティ)間の暗号化通信を、Transport Layer Security(TLS)プロトコルを使用してサポートする機能。

agent autoregistration

- Zabbixエージェント自体がホストとして登録され、監視が開始される自動化プロセス。

network discovery

- ネットワークデバイスの自動検出。

low-level discovery

- 特定のデバイス上の低レベルエンティティ(例: ファイルシステム、ネットワークインターフェースなど)の自動検出。

low-level discovery rule

- デバイス上の低レベルエンティティを自動検出するための定義セット。

アイテム プロトタイプ

- 特定のパラメータを変数として持つメトリクスで、ローレベルディスカバリ用に準備されたもの。 ローレベルディスカバリ後、変数は実際に検出されたパラメータに自動的に置き換えられ、そのメトリクスは自動的にデータ収集を開始します。

トリガー プロトタイプ

- 特定のパラメータを変数として持つトリガーで、ローレベルディスカバリ用に準備されたもの。 ローレベルディスカバリ後、変数は実際に検出されたパラメータに自動的に置き換えられ、そのトリガーは自動的にデータの評価を開始します。

他のいくつかのZabbixエンティティのプロトタイプもローレベルディスカバリで使用されます。たとえば、グラフプロトタイプ、ホストプロトタイプ、ホストグループプロトタイプがあります。