Kompira

Menu Menu

Enterprise Technical information

外部との連携 Zabbixからの通知をKompiraで受信する

運用自動化を検討するにあたり、構成する機器の監視を行うために専用のツールを使用しているケースが多いと思います。Kompiraを利用して簡易的な監視を行う事も出来ますが、Zabbixなどをすでに利用している場合には、これらの監視ツールとKompiraの連携を行う方が効率的でしょう。 今回は代表的なシステム監視ツールであるZabbixで検知した障害情報などをKompiraで受信する方法についてご紹介します。ここではZabbixからユーティリティー”kompira_sendevt”コマンドを呼び出して、Kompiraに情報を送信します。
動作確認環境
ソフトウェア バージョン
Kompira 1.5.5.post8
OS CentOS Linux release 7.8.2003
Zabbix 3.0 LTS
 
  Kompira側の準備 “kompira_sendevt”コマンドで送信されてくる情報を、チャネルを利用して受信します。 次のようなジョブフローを作成して、実行状態にしておいてください。
</system/channels/Alert> ->
[message = $RESULT] ->
print('${message}を受信しました') ->
self()
  Zabbix側の準備 方針としては「アクション」に”kompira_sendevt”を実行させる記述を行い、別途に登録したホスト、トリガーにより起動するものとします。今回はエージェントの導入が不要な”Template App HTTP Service”を利用して、リモートからWebサーバーを監視する想定としたシンプルチェックとします。 設定 -> アクション -> アクションの作成 名称は「Kompira通知」としました。   アクションの設定1   アクションの実行条件 デフォルトの「トリガーB」を削除して、「トリガー名」-「含まれる」-「HTTP」を追加します。 アクションの設定2   アクションの実行内容 アクションの設定3   ここで「タイプ」を「カスタムスクリプト」、「実行内容のタイプ」を「リモートコマンド」に変更しています。 「次で実行」は「Zabbixサーバー」を選択します。 「コマンド」には次のようなkompira_sendevtコマンドを記述しています。
/opt/kompira/bin/kompira_sendevt status="{TRIGGER.STATUS}" severity="{TRIGGER.NSEVERITY}" hostname="{HOSTNAME}" trigger_name="{TRIGGER.NAME}" trigger_key="{TRIGGER.KEY}" detail="{TRIGGER.KEY}: {ITEM.LASTVALUE}"
  「ホスト」の追加 「ホスト名」「エージェントのIPアドレス」に対象のWebサーバーの名称&IPアドレスを記載します。 ホストの追加   ホスト > テンプレートの追加 続いてテンプレートに”Template App HTTP Service”を追加します。 テンプレートの設定   これらの登録が完了するとZabbixはWebサーバーの監視を始めます。 障害発生として検知させるため、監視対象のWebサーバーのデーモンを、例えば次の様なコマンドで停止します。  
# service httpd stop
  Zabbixがhttpdからの応答が無くなった事を検知すると、アクションで設定した”kompira_sendevt”を呼び出してKompiraのチャネルにデータを送信します。Kompira側で先に動かしていたチャネル受信データを表示するジョブフローのコンソールには次の様な表示が出ます。   チャネルでの受信   上記はZabbixが検知した障害情報の内容となっています。以降は受信した内容に応じて通知や復旧処理をジョブフローに追加する事が出来ます。 システムの監視には、死活監視のみならず各種のメトリックスの閾値監視なども行えるZabbixを利用し、検知した情報を利用して担当者への通知や一次対応などを、Kompiraを用いて自動化することが出来るようになります。  
WEBセミナー公開中! 「Zabbix+Kompira Enterprise、Pigeonを使った障害監視と通知の自動化」

スタートガイド

Kompiraジョブフローの基礎

ジョブフローの簡単な例

Kompiraの機能

外部との連携