Zabbix からの通知を Kompira Enterprise で受信する

運用自動化を検討するにあたり、構成する機器の監視を行うために専用のツールを使用しているケースが多いと思います。Kompira Enterprise を利用して簡易的な監視を行うこともできますが、Zabbix などをすでに利用している場合には、これらの監視ツールと Kompira Enterprise の連携を行う方が効率的でしょう。

今回は代表的なシステム監視ツールである Zabbix で検知した障害情報などを Kompira Enterprise で受信する方法についてご紹介します。ここでは Zabbix から「kompira_sendevt」コマンドを呼び出して、Kompira Enterprise に情報を送信します。

kompira_sendevt のインストールについては「チャネルを利用して外部システムからデータを受信する」を参照してください。

※本稿では Zabbix がインストール済みで、そのサーバーに kompira_sendevt もインストールしてある状態を想定しています。


動作確認環境

ソフトウェア バージョン
Kompira Enterprise 1.5.5.post11
OS CentOS 7.8.2003
Zabbix 5.0 LTS

または

ソフトウェア バージョン
Kompira Enterprise 1.6.2.post4
OS CentOS 7.8.2003
Zabbix 5.0 LTS

Kompira Enterprise 側の準備

kompira_sendevt コマンドで送信されてくる情報を、チャネルを利用して受信します。
次のようなジョブフローを作成して、実行状態にしておいてください。

</system/channels/Alert> ->
[message = $RESULT] ->
print('${message} を受信しました') ->
self()

Zabbix 側の準備

方針としては「アクション」に kompira_sendevt を実行させる記述を行い、別途に登録したホスト、トリガーにより起動して、Kompira Enterprise にアラートを送るものとします。

今回はエージェントの導入が不要な Template App HTTP Service を利用して、リモートから Web サーバーを監視する想定としたシンプルチェックを行います。

アクションの実行条件

左のサイドバーの「設定」>「アクション」からトリガーアクション設定画面に移り、右上の「アクションの作成」ボタンをクリックしてアクションを作成します。
今回のアクション名は「Kompira通知」としました。

実行条件は以下のように「トリガー名」>「含む」>「HTTP」を選択して追加します。

アクションの実行内容

以下のように実行内容タブに移って、「実行内容」の「追加」をクリックします。

ここで「実行内容のタイプ」を「リモートコマンド」に、「ターゲットリスト」を「現在のホスト」に、「タイプ」を「カスタムスクリプト」に変更します。
「次で実行」は「Zabbixサーバー」を選択します。

「コマンド」には以下のような kompira_sendevt コマンドを記述しています。<Kompira Enterprise アドレス> には、送信先の Kompira Enterprise のサーバー名または IP アドレスを記載してください

/opt/kompira/bin/kompira_sendevt -s <Kompira Enterprise アドレス> status="{TRIGGER.STATUS}" severity="{TRIGGER.NSEVERITY}" hostname="{HOSTNAME}" trigger_name="{TRIGGER.NAME}" trigger_key="{TRIGGER.KEY}" detail="{TRIGGER.KEY}: {ITEM.LASTVALUE}"

ホストの追加
左のサイドバーの「設定」>「ホスト」からホスト設定画面に移り、右上の「ホストの作成」ボタンをクリックしてホスト情報を作成します。

「ホスト名」「エージェントのIPアドレス」に、監視対象の Web サーバーの名称と IP アドレスを記載します。「グループ」には用途に合わせて適当なものを加えてください。今回は「Linux Servers」としました。

続いてテンプレートタブに移り、「Template App HTTP Service」 を追加します。その後、下の追加ボタンをクリックしてください。

これらの登録が完了すると Zabbix は Web サーバーの監視を始めます。
障害発生として検知させるため、監視対象の Web サーバーのデーモンを、例えば次のようなコマンドで停止します。

$ sudo systemctl stop httpd

Zabbix が httpd からの応答が無くなったことを検知すると、アクションで設定した kompira_sendevt を呼び出して Kompira Enterprise のチャネルにデータを送信します。Kompira Enterprise 側で先に動かしていたチャネル受信データを表示するジョブフローのコンソールには次のような表示が出ます。

上記は Zabbix が検知した障害情報の内容となっています。以降は受信した内容に応じて通知や復旧処理をジョブフローに追加することができます。

本稿のように Zabbix と Kompira Enterprise を連携させることで、システムの監視には Zabbix を利用して、検知した情報を利用した担当者への通知などの一次対応には Kompira Enterprise を利用するというような、機能分担ができるようになります。


WEBセミナー公開中!

Zabbix+Kompira Enterprise、Pigeonを使った障害監視と通知の自動化

TOP