よくある質問・用語集

  • もっと調べる
  • どうやって使う?

Zabbixとは

Zabbixとは、サーバ、ネットワーク、アプリケーションを集中監視するための統合監視ソフトウェアである。

Zabbixは、統合監視に必要な監視、障害検知、通知機能を備えており、多数のプラットフォームに対応したZabbixエージェントとSNMPに対応しているため、システム全体をひとつのZabbixで監視することが可能である。また、Zabbixでは、スクリプトを作成してアプリケーションの監視を独自に拡張できたり、障害検知時でスクリプトを実行したり、Zabbixエージェントにスクリプトを実行させるなど、自由に拡張を行えるという特徴がある。

Zabbixは、ラトビアのZabbix LLCが開発し、オープンソースソフトウェアとして公開されている。Zabbixは、企業により継続的な開発が行われており、必要に応じて日本語の有償のサポートを受けることも可能である。Zabbixのサポートは、安価なサポートからオンサイト対応まで複数のプランが用意されている。

Zabbixの概要画面

Zabbixの概要と特徴

Zabbixには次のような特徴がある。

  • Zabbixの導入
    • Zabbixは、オープンソースソフトウェアであり、製品のように監視対象数に対するライセンス費用などが必要ない
    • Zabbixコミュニティから、様々なLinuxディストリビューション用のパッケージが公開されており、マニュアルも用意されているため、インストールはそれほど難しくない
  • 監視対象の管理
    • 設定は、Zabbixインタフェースと呼ばれるWebインタフェース上で行うことができる
    • Zabbixは、監視対象サーバーや監視項目をグループ管理できる
    • テンプレートを使って、監視内容や閾値、グラフ表示などを一括で管理することができる
    • 通知や監視については、Zabbixの標準外の方法も自由に拡張が行える
    • ディスカバリ機能をサポートし、指定した範囲の監視対象を自動で検索することができる
  • 監視機能
    • Zabbix専用エージェントにより、サーバを詳細に監視できる
    • SNMP監視をサポートしネットワーク機器も監視できる
    • 様々な監視方法に対応している
    • ログ監視を行うこともできる
  • 障害時の通知
    • 障害の発生時と復旧時には、Zabbixから管理者にメールで通知を送ることができる
    • 障害が継続している場合には、繰り返し通知をすることもできる
    • 通知アクションとして、Zabbixサーバー上のスクリプト実行ができる
    • Zabbixの外部のシステムと連携し、パトランプを回したり、音声通知などの拡張も可能である
    • 障害発生時に、Zabbixエージェント上でスクリプト実行ができる
  • 表示と管理
    • ダッシュボード画面で、Zabbixが監視しているシステム全体の障害状況を表示できる
    • Zabbixサーバが収集したデータを円グラフ、折線グラフなどでグラフィカルに可視化できる
    • 複数の監視項目のデータを重ね合わせて表示することもできる
    • Zabbixではグラフは動的に生成されるため、データ収集時の負荷にならない
    • Web画面からの操作で、監視対象にあらかじめ登録したコマンドを実行することができる
  • システム構成
    • オープンソースのクラスタソフトウェア(Pacemakerやcorosync)を使った冗長化が可能である
    • Zabbix 6.0からは、上記のようなクラスタソフトウェアを使わずに、Zabbixサーバ自身の機能でHAクラスタを構築することも可能
    • Zabbixプロキシを利用することで、大規模システムにも対応可能である
    • Zabbixが収集したデータは、MySQLに保存され、外部からのアクセスも可能である

その他のオープンソースの監視ツールとの比較

Zabbixと同じく、オープンソースの監視ツールとしてNagiosというソフトウェアがある。Nagiosでは、テキストファイルで設定を行い、収集データもテキストファイルに保存する。それに対して、ZabbixではWebインタフェースから設定を行い、収集データはMySQLに保存する。しかし、Zabbixの方が設定が簡単かというと、一概にそうとも言えない。というのは、Zabbixは設定できるパラメータが多く、設定が複雑になりがちだからである。つまり、Nagiosの方がずっとシンプルである。そのため、Zabbixは非常に高機能な統合監視ソフトウェアである反面、監視の技術に慣れていない人には、使い難いと感じられる場合がある。

また、グラフ表示は、Cactiの方が優れていて使いやすいという人もいる。Zabbixはログ監視をサポートしているが、Graylogなどのログ監視専用のソフトウェアに比べると、機能的、性能的に見劣りすることは否めない。

このようにZabbixは、様々な機能を持ってはいるものの究極のソリューションではない。Zabbix以外にも様々なOSSの監視サーバ・監視ツールが公開されているので、こうした 情報を元に用途にあったものを比較・検討するべきである。

インストール

Zabbixは、ほとんどのLinux環境で利用可能である。

以下のディストリビューションのパッケージが公開されている。

  • Debian
  • RedHat Enterprise LinuxおよびCentOS
  • Raspbian
  • Ubuntu

こうしたパッケージを使うと、非常に容易にインストールを行うことができる。なお、インストール方法の詳細については、「Zabbixのインストールと設定」で解説されている。

システム構成

Zabbixは、Zabbixサーバ、Webインタフェース、Zabbixエージェントの3つのコンポーネントから構成されている。

システム構成画面

Zabbixサーバ

Zabbixサーバは、システムの動作の要である。監視データの収集を行い、そのデータによって閾値に照らし合わせ、必要であればアラート通知などを行う。監視を行うときに参照する設定情報は、MySQLに保存されている。また、監視したデータもMySQLに保管する。

Webインタフェース

Webインタフェースは、Apache上で動作するPHPアプリケーションで、動作に必要な設定を行ったり、収集したデータを表示する役割を担う。収集したデータは、グラフで表示することもできる。

Zabbixエージェント

Zabbixエージェントは、監視対象のサーバ上にインストールして動作するソフトウェアで、LinuxとWindowsといったOSに対応している。Zabbixエージェントでは、インストールされたサーバの情報を収集し、Zabbixサーバへ情報を引き渡す役割を持っている。

なお、ZabbixはSNMPに対応していて、専用エージェントなしでも情報収集を行うことができる。WindowsやLinuxに付属しているSNMPエージェントと連携すれば、エージェントレスでの監視も十分に可能であり、余分なソフトウェアのインストールも必要がない。一方で、専用のエージェントを使うと、より詳細な情報を取得することができる。

Zabbixによる状態表示

Webインタフェースから、監視対象サーバの状況をグラフィカルに確認することができる。次のような表示をサポートしている。

  • 稼働状況の一覧

    監視しているシステム全体の状況を一覧で表示することができる。監視対象の状態は色で表現されており、異常を視覚的にとらえることが容易である。

  • マップ表示

    監視しているシステムをマップ形式で表示することができる。一覧表示に比べて、機器の配置なども考慮して可視化されているため、ネットワーク障害の状況を把握することが容易である。

  • 障害一覧

    発生した障害の状況を一覧することができる。コメントやステータスなども入力でき、障害を管理することができる。

  • レポート

    必要に応じて定義した形式でレポート表示をすることができる。

監視機能

Zabbixは、以下のような様々な監視項目に対応している。

  • ベーシックな監視
    • 死活監視
    • システムの稼働状況(再起動)
    • ログインユーザ数
    • 総プロセス数
  • サーバの状態
    • CPU利用率
    • ロードアベレージ
    • メモリ利用量
    • スワップ利用量
  • ディスク・ファイル監視
    • ファイルシステム容量
    • 書き込み、読み込み回数
    • ファイルの存在
    • ファイルのサイズ
    • ファイルのチェックサム(改竄の監視)
  • サービス監視
    • サービスの起動
    • TCPサービスの状況
    • TCPサービスの状況
    • 起動プロセス数
    • プロセスの利用メモリ

  • Webサービスの監視
    • 応答ステータス
    • 応答速度
    • 応答内容(文字列)
    • ダウンロードスピード
  • ログ監視
    • ログファイルの内容
    • Windowsイベントログ
  • その他の監視
    • SNMP監視

障害検知時のアクション

Zabbixは、障害を検知したときに次のようなアクションをサポートしている。

  • メールによる通知
  • Zabbixサーバ上でのスクリプトの実行
  • Zabbixエージェントによるスクリプトの実行

Zabbixサーバ上で、スクリプトの実行をすることができるため、障害時に電話をかける、パトランプを回すなどのアクションも可能である。

また、Zabbixと他のシステムを連携させることで、よりユーザーの用途に合った通知機能の活用ができる。例えば、Alertmanagerと連携させて大量のアラートを効率よく管理したり、ntfyと連携させてPCやスマートフォンにプッシュ通知で監視のアラートを送ったりといった運用も可能である。

冗長化

監視サーバであるZabbixが停止してしまうと、障害に気づくことができない。また、停止中にはサーバの状態が保存されない等の問題も発生する。そのため、重要なシステムでは監視サーバ自体も二重化することが多い。

二重化は、HAクラスタのソフトウェアを使って実施するのが一般的である。ただし、Zabbix 6.0からはZabbixサーバ自身の機能でHAクラスタを構築することも可能である。

HAクラスタ画面

大規模システムの監視

1台のZabbixで監視できる対象には限りがある。大規模なシステムを監視する方法としては、次の2つの方法がある。

  • 複数のZabbixを導入する

    単純に必要な数だけのZabbixを導入する方法である。ただし、この方法では管理者はすべてのZabbixの情報を得る必要がある。そのため、Grafanaなどの監視コンソールソフトを導入し、すべての情報を一元的に表示するようにする。

    この方法では、各監視サーバに個別に設定を行う必要がある。

  • Zabbixプロキシ

    Zabbixプロキシ(Zabbix Proxy)は、Zabbixサーバの替わりに監視対象から監視データを収集する。Zabbixプロキシが収集したデータは一旦、ローカルのデータベースにバッファリングされ、その後Zabbixサーバに転送される。そのため、監視対象の機器へネットワーク的に到達できないような場面でもZabbixプロキシを利用できる。

    ただし、監視データが1台のZabbixサーバに集約されるため、Zabbixサーバには高い性能が求められる。また、当然のことながら限界がある。なお、詳しい情報は、「Zabbix Proxy調査報告書」から入手できる。

    Proxy画面

サポート

Zabbixは、日本国内でも商用サポートが提供されていて、利用することができる。ただし、もともと高品質なOSSなので、あまり使われていない機能を利用する場合を除いて、大きな問題に当たることはほとんどない。

Zabbix 4.0で追加された機能

Zabbix3.0から4.0までに様々な機能が追加された。例えば、作成した複数のダッシュボードの切り替え表示が可能になり、さらに表示の仕方を自由に変えることが出来るので、視覚的に見やすくなった。またキオスクモードといわれるモードが追加され、メニューやダッシュボードの選択を非表示ができるようになった。それにより、グラフウィジェットのみの表示ができるようになった。

Zabbix 5.0で追加された機能

Zabbix4.0から5.0まででは、以下のような機能が追加された。

  • メインメニューの改良
  • テンプレートの追加
  • Zabbix agent2の追加
  • Zabbixエージェント2にプラグインを追加
  • Webhook連携の対応メディアが追加
  • Prometheusエージェント追加
  • Kerberos認証対応
  • 設定中のアイテムに対するテスト機能を追加
  • PHP7.4の対応
  • Elasticsearchバージョン7をサポート
  • SAML認証を追加
  • 自動登録に正規表現マッチングを導入
  • IE11のサポートを削除

Zabbix 6.0で追加された機能

Zabbix5.0から6.0まででは、Zabbixサーバ自身によるHAクラスタリング、サービス監視のためのメニューの追加、新しいマクロの導入などの機能が追加された。

デージーネットの取り組み

デージーネットでは、OSSの監視ソフトウェアとしてZabbix、Cacti、Icinga2など、様々なソフトウェアを扱っている。その中でも、マップの作成、閾値監視、障害通知などの機能が重要視されるケースでは、Zabbixを推奨している。

  • 監視サーバの構築

    デージーネットでは、Zabbixを使った監視サーバの構築サービスを提供している。Zabbixサーバをインストールするだけでなく、監視対象機器の登録など、監視機能の導入に必要な作業をすることができる。また、監視についてのコンサルティングサービスを受けることもできる。

  • サーバの冗長化

    非常に重要なシステムを監視する場合には、Zabbixサーバを冗長化し、ハードウェア障害があったときにも監視が継続できるような構成をとる必要がある。デージーネットでは、このような冗長構成のシステムの構築も行っている。

  • スケーラビリティ

    残念ながら、1台のZabbixサーバで監視できる監視対象の数には限界がある。そのため、数千もの対象を監視する大規模なシステムが必要な場合や、監視するサーバのロケーションが複数に分かれている場合には、Zabbixプロキシを使って分散型の監視システムを構築することで、スケーラビリティを確保する提案を行っている。

  • 独自監視のサポート

    対象機器に合わせた特殊な監視を行いたい場合や、障害時に特殊な通知方法を取りたい場合には、独自の監視ソフトウェアを作成し、ZabbixのAPIを利用して組み合わせる方法を提案している。実際に、CATV局などが利用している特殊な機器に対する監視機能を組み込んだり、障害時に自動的に電話をコールする機能などを開発した実績もある。

  • サポート

    Zabbixは、Miracle Linux社などが商用のサポートを提供している。そのため、このようなサポートを利用することもできる。ただし、Zabbixは高品質なOSSのため、あまり使われていない機能を利用する場合を除いて、利用にあたって大きな問題に当たることはほとんどない。

    そのため、デージーネットでは、サポート契約なしでの構築も行う。そして、導入後の支援としてOpen Smart Assistanceを提供している。このサービスでは、Zabbixにバグがあった場合には、それを回避する方法をリモートからから調査したり、コミュニティにエスカレーションするなどのサポートを受けることができる。また、新たな監視対象を追加する方法の問い合わせなどにも対応している。この場合には、Open Smart Assitanceのクーポンサービスを利用することでサービスを受けることができる。

【カテゴリ】:システム監視  オープンソースソフトウェア  IoT  

  • もっと調べる
  • どうやって使う?

【Webセミナー】Rocket.Chatだけじゃない!OSSビジネスチャットの最新情報

日程: 12月19日(木)Webセミナー「BigBlueButton」を使用します。
内容: Rocket.Chatの機能制限でお困りの方も必見!ライセンスフリーで利用できるOSSのビジネスチャットを紹介します。
ご興味のあるかたはぜひご参加ください。

セミナー申込

関連用語

Zabbixに関連するページ(事例など)

Zabbixとは先頭へ