運用自動化を検討するにあたり、構成する機器の監視を行うために専用のツールを使用しているケースが多いと思います。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セミナー公開中!