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社および世界各地のパートナーによって提供されています。

Zabbixの機能について詳しく説明します。

Zabbixのユーザー

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

アーキテクチャ

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

サーバー

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

データベースストレージ

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

Webインターフェース

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

プロキシ

Zabbix proxy は、Zabbix サーバーの代わりにパフォーマンスおよび可用性データを収集できます。 プロキシは Zabbix の導入における任意の構成要素ですが、単一の Zabbix サーバーの負荷を分散するうえで非常に有効です。

エージェント

Zabbix エージェントは、監視対象に導入され、ローカルのリソースやアプリケーションを能動的に監視し、収集したデータを Zabbix サーバーに報告します。 Zabbix 4.4 以降では、利用可能なエージェントには 2 種類あります。Zabbix agent(軽量で、多くのプラットフォームでサポートされ、C で記述)と Zabbix agent 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ベースの Webインターフェース
  • どこからでもアクセス可能
  • クリック操作だけで利用可能
  • 監査ログ

Zabbix API

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

権限システム

  • 安全なユーザー認証
  • 特定のユーザーを特定のビューに制限可能

多機能で拡張しやすいエージェント

  • 監視対象に導入
  • Linux と Windows の両方に導入可能

バイナリデーモン

  • パフォーマンスと小さなメモリフットプリントのために C で記述
  • 移植が容易

複雑な環境にも対応

  • Zabbix プロキシを使用してリモート監視を容易に実現

用語集

このセクションでは、Zabbix で一般的に使用される用語の意味を説明します。

ホスト

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

ホストグループ

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

アイテム

- ホストから取得する特定のデータ、つまりデータのメトリクス。

値の前処理

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

トリガー

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

受信したデータがしきい値を上回ると、トリガーは 正常 から 障害 の状態に変わります。 受信したデータがしきい値を下回ると、トリガーは 正常 の状態を維持するか、正常 の状態に戻ります。

テンプレート

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

テンプレートは、ホスト上での監視タスクの展開を迅速化し、監視タスクに対する一括変更を容易にするために使用します。 テンプレートは個々のホストに直接リンクされます。

テンプレートグループ

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

イベント

- トリガーの状態変更やディスカバリ、エージェントの自動登録など、注意を要する事象が1回発生したもの。

イベントタグ

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

複雑なイベント処理

- Zabbix のイベントを処理または変換できる、ルールベースの処理。

障害

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

障害の更新

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

アクション

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

アクションは、オペレーション(通知の送信など)と、オペレーションを実行する条件で構成されます。

エスカレーション

- アクション内でオペレーションを実行するためのカスタムシナリオ。通知の送信やリモートコマンドの実行を順番に行います。

マクロ

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

メディア

- 通知を配信する手段、つまり配信チャネル。

通知

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

リモートコマンド

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

Webシナリオ

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

Webインターフェース

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

ダッシュボード

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

ウィジェット

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

Zabbix API

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

Zabbix サーバー

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

Zabbix プロキシ

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

Zabbix エージェント

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

Zabbix エージェント 2

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

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

暗号化

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

エージェントの自動登録

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

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

- ネットワークデバイスを自動的に検出する機能。

ローレベルディスカバリ

- 特定のデバイス上のローレベルエンティティ(ファイルシステム、ネットワークインターフェースなど)を自動的に検出する機能。

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

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

アイテムプロトタイプ

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

トリガープロトタイプ

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

ローレベルディスカバリでは、その他の一部の Zabbix エンティティのプロトタイプ(グラフプロトタイプ、ホストプロトタイプ、ホストグループプロトタイプ)も使用されます。