Zabbixとは

ZabbixはAlexei Vladishevによって作成され、現在はZabbix SIAによって積極的に開発・サポートされています。

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

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

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

Zabbixは無償です。ZabbixはAGPL-3.0ライセンスの下で記述・配布されています。つまり、そのソースコードは自由に配布され、一般に公開されています。

商用サポートは、Zabbix社および世界中のパートナーによって提供されています。

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は高度に統合されたネットワーク監視ソリューションであり、1つのパッケージで多くの機能を提供します。

データ収集

  • 可用性およびパフォーマンスのチェック
  • 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シナリオ)。

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

テンプレートグループ

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

イベント

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

イベントタグ

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

イベント相関

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

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

問題

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

問題更新

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

アクション

- イベントに対応するための事前定義された手段。

アクションは、実行内容(例: 通知の送信)と条件(その実行がいつ行われるか)で構成されます。

エスカレーション

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

マクロ

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

メディア

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

通知

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

リモート コマンド

- 特定の条件で監視対象ホスト上で自動的に実行される、事前定義されたコマンド。

Webシナリオ

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

Webインターフェース

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

ダッシュボード

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

ウィジェット

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

Zabbix API

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

Zabbixサーバー

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

Zabbixプロキシ

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

Zabbixエージェント

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

Zabbix agent 2

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

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

暗号化

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

エージェント自動登録

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

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

- ネットワークデバイスの自動ディスカバリ。

ローレベルディスカバリ

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

ローレベルディスカバリ ルール

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

アイテム プロトタイプ

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

トリガー プロトタイプ

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

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