Zabbix Documentation 1.8

2.23.04.04.2 (current)In development:4.4 (devel)Unsupported:1.82.02.43.23.4

User Tools

Site Tools


Sidebar

jp:manual:escalations_and_repeated_notifications

21 エスカレーションと繰り返し通知

21.1 概要

Zabbixには、エスカレーションと繰り返し通知のための効果的で非常に柔軟な機能が備わっています。設定に応じて、未解決の問題と各エスカレーションステップに割り当てられている実行アクションが自動的にエスカレートされます(エスカレーションステップが増分されます)。

Zabbixはエスカレーションや通知、リモートコマンド用に下記のシナリオをサポートしています。

  • 障害が発生した直後にユーザへ通知
  • プロアクティブな監視、Zabbixで任意のスクリプト(リモートコマンド)を実行
  • 障害が復旧するまで繰り返し通知を行う
  • 障害通知の遅延とリモートコマンド
  • 他のユーザグループへの問題のエスカレーション
  • 障害内容に応じて異なるエスカレーションパスを設定
  • 問題の存続時間がN時間(秒、分など)を超える場合にアクション(通知とリモートコマンドの両方)を実行
  • 全ての関係者へのリカバリメッセージ
  • Zabbixがサポートするエスカレーションステップ数に制限はありません。
2010/08/08 07:55

21.2 シンプルなメッセージ

警告: リカバリメッセージやエスカレーション機能を有効にする前に、「Trigger value = PROBLEM」コンディションをアクションに追加してください。追加しない場合、修復イベントも同様にエスカレートされます。

MySQLアプリケーションに関する障害をMySQL管理者へ通知するには以下の設定を行います:

複数メッセージを送信しない、あるいはMySQLの障害を他のユーザグループへエスカレーションしない場合は、エスカレーション機能を有効にしないでください。

MySQL管理者にはメッセージ1通と障害が解決された時のリカバリメッセージが送信されます。リカバリメッセージの送信を有効にしていない場合は、Zabbixは障害が発生したことを通知するメッセージを1通だけ送信し、その障害が解決されたときなどに復旧したことを知らせるメッセージは送信しません。

アクションのコンディション領域で、MySQLアプリケーションに関する障害が起こったときにアクションを実行させるように定義します。

メッセージ内のマクロの使用について記述します。Zabbixにはマクロが豊富に用意されています。サポートされている全マクロのリストは4.2を参照してください: macros

アクションは以下のように定義されています:

MySQL管理者グループの全てのメンバーにメッセージが送信されます。

2010/08/08 07:56

21.3 リモートコマンド

リモートコマンドはプロアクティブな監視の提供に効果的な機能です。Zabbixは、あらかじめ定義した条件が成立した場合に監視対象ホスト上でコマンドを実行することができます。

よく使われる機能の一部を次に示します:

  • レスポンスがないアプリケーション(WEBサーバ、ミドルウェア、CRM)を自動的に再起動
  • IPMI 'reboot'コマンドを利用してリクエストに対する応答がないリモートサーバをリブート
  • ディスク容量がなくなりそうな場合に、古いファイルを削除したり/tmpを空にするなどして自動的に空きディスク容量を確保
  • CPU負荷に応じて、VMをある物理ボックスから別のボックスへ移動
  • CPU(ディスク, メモリ, などの)リソースが不足するとクラウド環境に新規ノードを追加

リモートコマンドのアクション設定はメッセージ設定と同様ですが、唯一違うのはZabbixがメッセージを送信する代わりにコマンドを実行することです。

アクションのコンディション領域で、Apacheアプリケーションのうちの一つに障害が起こったときにアクションを実行させるように定義します。

障害に反応して、ZabbixはApacheプロセスを再起動しようとします:

ここで{HOSTNAME}の使用方法に注意してください。

ユーザ'Zabbix'には、このスクリプトを実行するためのパーミッションが必要です。また、Zabbixエージェントがリモートホスト上で動作し、接続を許可している必要があります。

詳細については、リモートコマンドチュートリアルを参照してください。

2010/08/08 07:57

21.4 繰り返し通知

繰り返し通知は、Zabbixのエスカレーション機能で最もよく使われるものの一つです。

アクションの領域でエスカレーションを有効にしてください:

期間(秒)の項目でエスカレーションステップの実行頻度(間隔)を設定します。デフォルトでは、次のステップが実行されるまでの間隔は1時間に設定されています。例 3600秒

エスカレーション機能を有効にすると、アクションのオペレーション領域でステップ、期間、コンディションといった追加オプションを設定できます。

1時間おきに5回メッセージを送信したい場合には、エスカレーションステップの1から5が有効になるようなオペレーションを定義します。個別のオペレーションで上書きしない限り、エスカレーションの間隔はアクションの実行条件に従います。

障害が発生した直後に、ステップ1で指定された全てのオペレーションが実行されます。1時間後、(もしその障害が継続している場合には)エスカレーション実行間隔が自動的に引き上げられて、ステップ2で指定された全てのオペレーションが実行されます。同様に(障害が継続している間は)ステップ5まで実行されます。

リカバリメッセージは、このエスカレーション範囲内で1通以上のメッセージを受け取ったユーザのみに送信されます。

有効なエスカレーションを生成したトリガが無効になった場合、Zabbixは既に通知を受け取っているユーザにこの事実を知らせるメッセージを送信します。
2010/08/08 07:58

21.5 障害通知の遅延

Zabbixのエスカレーション機能は障害通知を遅らせて送信する機能を有しています。

たとえば、長期に渡るMySQL障害だけを通知するには、エスカレーション実行間隔は10時間に変更され、カスタムデフォルトメッセージを使用します:

ステップ2にのみオペレーションが指定されます。つまり、1度エスカレーションが行われた後(たとえば10時間後)にアクションが実行されます:

よって、ユーザ「Alexei」は10時間以上障害が継続した場合のみメッセージを受け取ることになります。通知の遅延はエスカレーション実行間隔によってコントロールされます。

2010/08/08 07:59

21.6 上長へのエスカレーション

Zabbixのエスカレーション機能は他のユーザやユーザグループへ障害をエスカレーションするときにも使用できます。MySQL管理者が障害復旧対応をしていない?上長にエスカレーションせよ!

指定した間隔で定期的にMySQL管理者へメッセージを送信するので、障害がデータベースマネージャーにエスカレーションされる前に、管理者は4回のメッセージを受け取ります。マネージャーは、おそらく誰もその障害復旧対応をしておらず、その障害がまだ認識されていない場合のみメッセージを受け取ることになります。

メッセージ内の {ESC.HISTORY}マクロの使用について記述します。マクロは、すでに実行された全ステップの情報を含めることができるので、マネージャーは全てのメールとすでに実行された全てのアクションについての情報を受け取ることになります。MySQL管理者の皆さん、ご用心ください!

2010/08/08 07:59

21.7 複雑なシナリオ

下記の一連のアクションをご覧ください。複数のメッセージをMySQL管理者へ送信し、マネージャーへエスカレーションした後、ZabbixはMySQLデータベースを再起動しようとします。これは障害が2時間30分継続しており、障害が認識されていない場合に実行されます。

さらに30分経過しても障害が継続している場合には、Zabbixは日本の全てのユーザにメッセージを送信します。

さらに1時間経過すると、ZabbixはIPMIコマンドを利用してMySQLデータベースのサーバをリブートします(2番目のリモートコマンド)。

2010/08/08 08:00