Zabbixの機能と特徴
特徴
監視とデータ収集
Zabbixは、ネットワーク上の様々な要素をリアルタイムに監視し、データを収集します。ホスト上のリソース(CPU使用率、メモリ使用量など)を監視する際には、Zabbixエージェントを使用します。また、SNMP(Simple Network Management Protocol)、IPMI(Intelligent Platform Management Interface)、JMX(Java Management Extensions)、HTTPなどのプロトコルを使用して、ネットワークデバイスやアプリケーションのパフォーマンスや可用性を監視することも可能です。
柔軟なトリガーとアラート
Zabbixでは、監視対象のパラメータを定期的に評価し、トリガーを設定して異常を検知します。トリガーは、特定の閾値や条件を設定することができます。たとえば、CPU使用率が80%を超えた場合や応答時間が特定の閾値を超えた場合にアラートを発行するように設定できます。アラートは、メール、SMS、Slackなどの方法で通知され、適切な対応ができるようになります。
監視データの視覚化
Zabbixは、グラフとして監視データを視覚化する機能を提供します。グラフは、時系列データやトレンドを表示するための強力なツールです。ユーザは、データポイントや時間範囲を選択し、グラフをカスタマイズすることができます。また、異なるパラメータやホストのデータを比較することも可能です。
リアルタイム監視とトリガー通知
Zabbixは、リアルタイムの監視とトリガー通知を実現します。Zabbixのダッシュボードでは、監視対象の状態をリアルタイムで確認できます。トリガーは、監視データを評価し、アクションを起動します。アクションは、設定された通知メディア(メール、SMSなど)を使用して、関係者にアラートを通知します。これにより、問題の早期発見と対応が可能となります。
分散型アーキテクチャ
Zabbixは、分散型アーキテクチャを採用しています。これにより、複数のZabbixサーバやプロキシを構成することができます。分散型アーキテクチャを使用することで、大規模な環境でも負荷分散や冗長性を確保できます。また、地理的に分散した場所での監視も可能です。
APIのサポート
Zabbixは、RESTful APIを通じてプログラムや外部システムとの統合をサポートしています。APIを使用すると、監視データや構成情報を取得したり、Zabbixの機能を外部システムから制御したりすることができます。これにより、自動化やカスタム統合を行い、監視プロセスを効率化することができます。
拡張性とカスタマイズ性
Zabbixは、多くのカスタマイズオプションを提供しています。監視テンプレートやアクションを作成し、独自の監視要件に合わせてZabbixをカスタマイズすることができます。また、ユーザ定義のパラメータやスクリプトを使用して、独自の監視項目やアクションを実装することも可能です。
セキュリティとアクセス制御
Zabbixは、セキュリティ機能を強化しています。ユーザ管理、アクセス制御、データの暗号化など、監視システム全体のセキュリティを確保するための機能が提供されています。これにより、機密データやシステムのアクセス制御を管理することができます。
機能
- サーバおよびネットワークデバイスのオートディスカバリ
- ローレベルディスカバリ
- 中央のウェブ管理インタフェースからの分散監視
- ポーリングとトラッピングのサポート
- サーバソフトウェアは各種OSに対応
- ハイパフォーマンスな専用エージェント(エージェントソフトウェアはWindowsを含む各種OSに対応)
- エージェントレス監視
- セキュリティで保護されたユーザ認証
- 柔軟なユーザパーミッション管理
- ウェブインタフェース
- 事前定義されたイベントをメールベースの柔軟なアラート機能で通知
- 監視対象リソースのハイレベル(ビジネス向け)な表示機能
- 監査ログ
など…
※サーバ・エージェントの対応OS詳細情報はZabbix社サイトを参照ください。
プロセスの構成
Zabbixは、Agent監視とAgentレス監視の両方がサポートされています。
Agent監視では、Zabbix Agentdからプロセス、メモリ、ポート、ディスク、ファイル、ファイルサイズ、ログ監視を行います。 Agentdには、Passive機能とActive機能があり、Passive機能はZabbix Serverからのポーリング(polling)によりデータの収集を行いますが、Active機能は監視対象Server側で独立しデータの収集を行います。
Agentレス監視では、Zabbix ServerのPoller Serverから、ssh,telnet等のプロトコルを利用して、scriptを実行しデータを収集します。 ポート監視、接続監視では、実際に監視対象サーバへConnect等を実行してデータを収集します。
障害の検知情報をDatabaseに格納した後、状態に合わせてイベント(Event)を生成し、Alert Serverで、メール通知、外部ファイル起動等が行われます。
監視、設定用に利用するブラウザ(browser)からは、Httpd Server経由で、DBの情報を取得して表示しています。
製品の詳細情報は、Zabbix社サイトを参照ください。
監視対象
統合監視ソフトウェアは、様々なデータを収集する必要があります。 Zabbixは、監視に必要な機能を標準で備えています。
リソース監視
CPU,Memory(メモリ),Disk(ディスク) I/O,Disk(ディスク)使用量,Process(プロセス)など一般的なリソースの監視をPoller Serverから直接データの収集をすることで行います。linuxの場合、/proc下のファイルを走査してデータの収集を行っています。
Snmp監視
snmpは、v1,v2c,v3と全て対応しており、基本的には、OIDを指定する事によってPoller Serverから直接データの収集を行います。
SnmpTrap監視
Oracle(旧Sun) ServerのILOM,ALOM,EPROM HP ServerのILO、ネットワーク機器などのハードウェア、OSから通知されるSnmpTrapをsnmptrapdで一度受信して、Zabbixのtrap serverへ転送することで、SnmpTrapを監視できるようになっています。 内部処理として、ログ監視と同じ処理モジュールを使用しています。
ログファイル監視
単独ログファイル、ログローテーション用のログファイル監視もサポートしています。
収集対象も正規表現によるキーワード指定で必要な情報のみ取得する事が可能です。(複数の正規表現の組合せでの指定も可能)
ログローテーションの処理内容は、処理イメージをご覧ください。
Web監視
libcurlを利用しており、色々なWeb SiteのPageを実際にLoadingしての監視が可能です。
監視できる範囲は、curlコマンドとほぼ同じです。※弊社では、libcurlでは対応できない部分、Javascriptが前提となっているページ、バックグランドで、Http Requestが動作しているページ、Ajaxを使用しているページなどをSeleniumを利用して対応させる機能を提供しています。
Seleniumは、ブラウザの操作でページ遷移を自動的に記録するので、大変便利です。
Agentレス監視
telnet,ssh,snmp,ipmiなどの機能を利用して、Agentレスでの監視も可能です。 Agentを組み込みたくない環境にも対応しています。
拡張監視
OSコマンドを利用して簡単に監視機能を拡張する事が出来ます。
難しいPluginなどを作る必要がありませんので、Shellで少しプログラムを作成できる方なら誰でも拡張可能です。
この機能を利用して、特殊アプリケーションおよびログの監視なども実現可能です。
検知機能
情報を収集しても検知できなければ意味がありません。しかし、必要な検知は最小限に抑える必要があります。
Zabbixは、多彩な検知機能を利用して必要最小限の検知に抑えることができます。
時間指定
例)障害検知時間帯を月曜日-金曜日の9:00-17:00に限定して障害を検知する事が可能です。
複数条件の組み合わせ
Zabbixでは、複雑な条件の組み合わせて検知条件を絞り込むことも可能です。
例)下記のような更に複雑な設定が可能です。
- CPU 90%以上+Memory 80%以上使用しているときに検知
- ClusterのPrimary Nodeで、特定プロセスがDownしている時に検知
- ClusterのPrimary Nodeで、共有Diskへのアクセスが出来ない時に検知
見やすい情報
マップ機能
マップ機能とは、監視対象ホストをICONとして、画面上に表示する機能です。
Network機器とServerを関連付けることで、複数の監視対象で同時に障害を検知した場合の最初の障害ポイントの推測が容易にできるようになります。
また、背景と重ね合わせることで、障害発生ホストの位置の特定を容易にすることができます。
グラフ機能 & スクリーン機能
Zabbixは、取得したリソース情報を全てDatabaseに格納し利用する事が可能です。 取得データは、監視のみに利用するのではなく障害発生時のQuick分析、傾向分析に利用する事が出来ます。 その際、非常に便利で見やすいのが、グラフ機能です。
複数のリソース情報を一つのグラフに表示させることが出来るため、CPU,Memory,I/Oなどを同じ時間軸、使用率で表示させることが可能です。 また、グラフ上で範囲選択する事によりドリルダウンして詳細にデータを確認する事も可能です。
1つのグラフ上に表示できますので、CPUの負荷が高いときのMemory使用率、Swap使用率など直ぐに判ります。 複数のホストのデータを1つのグラフ上に表示できますので、複数のWebサーバ,APサーバで特に負荷(CPU,I/O,Network)の高いホストなどが一目でわかり、障害調査、顧客への障害報告などに利用可能です。
しかし、比較表示する為のY軸が常に同じものとは限りません。 CPU使用率とNetwork転送量、I/OとSwap、特定アプリケーションのプロセス数とCPU使用率など、同一グラフとして表示しにくいものも多く存在します。そのような場合、スクリーン機能を使用すれば、同一縦軸で表示する事が難しいCPUとNetworkデータ転送量などを同一時間軸で、複数のグラフを表示させることが可能です。
スクリーン機能では、スクリーン上にあるグラフが常に同一時間軸で表示されていますので、色々なデータを同一時間軸で一度に確認する事が可能です。 長期間グラフ表示の傾向分析で、気になるデータがあればグラフ上でドリルダウンして詳細データを確認する事ができます。
メール通知
Zabbixは、MTAサーバを持っておりませんが、SMTPサーバへメールを送信する事が可能です。
障害検知時に携帯メールへ送信するなどの事が可能です。
※MTA(Mail Transfer Agent)の機能は、含まれておりません。
拡張通知
Zabbixでは、障害検知時に起動する外部コマンドを簡単に追加する事が可能です。 これにより、パトランプの鳴動、クラスターの切替、Routing情報の変更など様々な処理を組み込む事が可能となります。
エスカレーション通知
Zabbixは、エスカレーション機能をサポートしています。これにより下記のような状況に合わせた通知が可能となります。
・最初の検知時は、パトランプの鳴動
・30分経過して回復しない場合は、管理者へのメール一斉通知
・60分経過して回復しない場合は、上位管理者へのメール一斉通知