Kompira AlertHub 設定例集 目次
Kompira AlertHub 設定例集
株式会社フィックスポイント の Kompira AlertHub の設定例集です。
Kompira AlertHub 全体の操作方法については、Kompira AlertHub 基本マニュアルを参照してください。
最終更新日: 2024/04/16
具体的な設定方法
AlertHub を実際に利用するにあたり、よくある使用例に沿って設定方法を説明します。
30分以内に10件以上のアラートが発生したらSlackに通知する
AlertHub によって、一定数アラートを受信した際にだけ通知したい場合の具体例を記載します。
今回は、監視システムに大量にアラートメッセージを受信している想定で設定します。
設定のポイント
トリガーの実行条件において下記二点を設定しアラートを絞り込みます。
-
「指定条件を満たす直近のイベント件数を指定値と比較する」
- 過去
1800
秒間に「深刻度の変化量」が1
「と等しい」イベントが10
「以上の」回数発生した
※「30 分間にアラートが 10 回以上発生した」ことを指定しています
- 過去
-
「直近のアクション実行件数を指定値と比較する」
- 過去
1800
秒間に、アクションが0
「と等しい」回数実行された
※「30 分以内に Slack への通知が行われていない」ことを指定しています
- 過去
以下より、設定の手順を記載します。
受信スロットの作成
受信スロットを作成します。
画面横のメニューから「受信スロット」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- Webhook を選択します
- 任意の表示名を入力します
- 保存をクリックします
受信スロットが作成され、一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、Zabbix と連携するための URL を取得します。
スコープの作成
スコープを作成します。
画面横のメニューから「スコープ」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 警戒判定閾値に任意の数値を設定します
- 障害判定閾値に任意の数値を設定します
- 必要に応じて「深刻度自動復旧の有効化」にチェックを入れ、復旧時間を指定します
- 保存をクリックします
ルールの作成
ルールを作成します。
画面横のメニューから「ルール」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 最初に作成した受信スロットを選択します
イベントの設定
「イベント(対象スコープを直接指定)」の「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 「直接指定」を選択します
- 作成したスコープを選択します
- 作成ボタンをクリックします
イベントの編集画面が表示されるため、以下の通り入力します1。
- 任意の深刻度名を入力します
- 「1」と入力します
- プルダウンより「増やす」を選択します
最後に、ルール作成画面を一番下までスクロールし保存ボタンをクリックします。
アクションの作成
アクションを作成します。
画面横のメニューから「アクション」をクリックし、画面右上の「WEBHOOK」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- Slack へ通知するための Webhook URL を入力します
- リクエスト本文に記載したい内容を入力します
- 保存ボタンをクリックします
Slack 通知に必要な Webhook URL の取得については、Slack のドキュメント を参照してください。
リクエスト本文は JSON 形式で入力します。
通知内容の設定については、Kompira AlertHub 基本マニュアル > 設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
トリガーの作成
トリガーを作成します。
画面横のメニューから「スコープ」をクリックし、スコープの作成 で作成したスコープをクリックします。
スコープの詳細画面に遷移するため、「トリガー」タブをクリックし、画面右端の「+」をクリックします。
ダイアログが表示されるため、任意の表示名を入力します。
実行条件の設定
「実行条件」の「+」をクリックします。
ダイアログが表示されるため、「指定条件を満たす直近のイベント件数を指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します2。
1800
と入力します- プルダウンより「深刻度の変化量」を選択します
1
と入力します- プルダウンより「と等しい」を選択します
10
と入力します- プルダウンより「以上の」を選択します
もう一度「実行条件」の「+」をクリックします。
「直近のアクション実行件数を指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します3。
1800
秒と入力します0
と入力します- プルダウンより「と等しい」を選択します
最後に、「実行」にて アクションの作成 で作成したアクションを選択し、保存ボタンをクリックします。
以上で、AlertHub 上の設定は終了です。
動作確認
動作確認を行います。
実際に 10 件アラートを送信してみると、スコープのステータスが「警戒」となり実行履歴にアクションを行った履歴が表示されます。
以下のように、Slack 上でも設定した通りの通知を受信することが確認できれば、動作確認は終了です。
アラートを 1 件受信すると深刻度が 1 上がる設定です。
今回は、30 分以内に 10 件以上のアラートが発生した場合に通知する必要があります。
そのため、「『1800 秒』の間に『深刻度が 1
ずつ変化する』イベントが『10 回以上』発生した」と設定しています。
10 件を超えて連続してアラートが発生した場合もアクションの実行が 1 回となるように、1800 秒間にアクションが発生していない場合にのみアクションを発生させるよう設定しています。
ログ監視の不要な復旧通知を送信しない
AlertHub によって、特定のステータス以外の通知のみを受信したい場合の具体例を記載します。
今回は、ログ監視の通知メッセージを受信しており、通知が不要な「warning」のステータスについての通知も受信してしまっている想定で設定します。
設定のポイント
処理フローで不要なステータスを含む場合に通知しないよう設定します。
- 「フィールドが文字列を含むかどうか確認する」を選択
- もし
message.content.data.alert.status
がwarning
を包含「しなかった」場合
- もし
message.content.data.alert.status
は、アラートのリクエストボディにおける項目の一例として設定しています。
受信するリクエストボディから指定したい箇所を設定してください。
以下より、設定の手順を記載します。
受信スロットの作成
受信スロットを作成します。
画面横のメニューから「受信スロット」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- Webhook を選択します
- 任意の表示名を入力します
- 保存をクリックします
受信スロットが作成され、一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、監視システムと連携するための URL を取得します。
スコープの作成
スコープを作成します。
画面横のメニューから「スコープ」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 警戒判定閾値に任意の数値を設定します
- 障害判定閾値に任意の数値を設定します
- 必要に応じて「深刻度自動復旧の有効化」にチェックを入れ、復旧時間を指定します
- 保存をクリックします
ルールの作成
ルールを作成します。
画面横のメニューから「ルール」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 最初に作成した受信スロットを選択します
処理フローの設定
「処理フロー」の「+」をクリックします。
ダイアログが表示されるため、「フィールドが文字列を含むかどうか確認する」を選択し、作成ボタンをクリックします。
処理フローの編集画面が表示されるため、以下の通り入力します1。
message.content.data.alert.status
と入力します2warning
と入力します- プルダウンより「しなかった」を選択します
イベントの設定
「イベント(対象スコープを直接指定)」の「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 「直接指定」を選択します
- 作成したスコープを選択します
- 作成ボタンをクリックします
イベントの編集画面が表示されるため、以下の通り入力します3。
- 任意の深刻度名を入力します
- 「1」と入力します
- プルダウンより「増やす」を選択します
最後に、ルール作成画面を一番下までスクロールし保存ボタンをクリックします。
アクションの作成
アクションを作成します。
画面横のメニューから「アクション」をクリックし、画面右上の「メール」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- メール送信先の名前とメールアドレスを入力します
- 送信するメールの件名を入力します
- 送信するメールの本文を入力します
- 保存ボタンをクリックします
通知内容の設定については、Kompira AlertHub 基本マニュアル > 設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
トリガーの作成
トリガーを作成します。
画面横のメニューから「スコープ」をクリックし、スコープの作成 で作成したスコープをクリックします。
スコープの詳細画面に遷移するため、「トリガー」タブをクリックし、画面右端の「+」をクリックします。
ダイアログが表示されるため、任意の表示名を入力します。
実行条件の設定
「実行条件」の「+」をクリックします。
ダイアログが表示されるため、「イベントのフィールドを指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します4。
- プルダウンより「深刻度の変化量」を選択します
- 「1」と入力します
- プルダウンより「と等しい」と入力します
もう一度「実行条件」の「+」をクリックします。
「深刻度の増減を判定する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、「増えた」を選択します4。
最後に、「実行」にて アクションの作成 で作成したアクションを選択し、保存ボタンをクリックします。
以上で、AlertHub 上の設定は終了です。
動作確認
動作確認を行います。
今回は、ステータスが warning
以外のアラートについて通知設定を行いました。
実際にステータスが warning
ではないアラートを受信すると、深刻度が 1 ずつ上がっており、アクションも作動していることが分かります。
以下のように、status
が warning
ではないアラートについてメールで受信できていることを確認します。
以上で動作確認は終了です。
リクエストボディに含まれるアラートのステータスが warning
以外の場合、深刻度を上げる設定です。
監視ツールから送信されるリクエストボディの status
を取得するよう設定しています。
処理フローで設定したアラートを受信した場合、深刻度が 1 上がる設定です。
ルールの作成 で、アラートのステータスが warning
以外の場合に深刻度が 1
上がるように設定しているため、深刻度が 1 増加したらアクションが作動するように設定します。
00:00 から 01:00 についてはアラート発生時のメール送信をしない
監視対象のサーバー等が夜間に自動再起動をしているため、特定の時間帯はアラートが不要となる場合の例を記載します。
今回は、監視対象から送信される webhook のリクエストボディから特定のフィールドを指定して、対象のフィールドが指定値以外の値となった場合に通知する設定も併せて行います。
設定のポイント
スコープから静観スケジュールを設定する方法とランブックを設定する方法があります。
静観スケジュールを設定する場合
対象のスコープの「設定」タブを開いて静観スケジュールを作成し、以下の通り設定します。
静観スケジュールを設定すると、指定時間内はアクションが実行されなくなります。
- 表示名:任意の表示名
- 開始:設定日の 00:00
- 終了:設定日の 01:00
- 繰り返し設定:毎日
ランブックを設定する場合
以下の通り作成します。
- 現在の日時を取得
- オペレーターステップから「現在の日時を取得する」を選択する
- 任意のフィールド名を設定する
- オペレーターステップから「現在の日時を取得する」を選択する
- 日時が 00:00 から 01:00 の範囲か判定
- ブランチステップから「日時が指定した時刻の範囲内であるか確認する」を選択する
- 「もし
1で指定したフィールド
の時刻が00:00
から01:00
の範囲内である場合」と設定する
- 「もし
- ブランチステップから「日時が指定した時刻の範囲内であるか確認する」を選択する
- 範囲外の場合にメールを送信
- アクションステップから事前に作成したアクションを追加する
- 1~3 で作成したステップを順番に繋げる
- ブランチステップとアクションステップは「else」を繋げる
受信スロットの作成
受信スロットを作成します。
画面横のメニューから「受信スロット」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- Webhook を選択します
- 任意の表示名を入力します
- 保存をクリックします
受信スロットが作成され、一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、監視システムと連携するための URL を取得します。
スコープの作成
スコープを作成します。
画面横のメニューから「スコープ」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 警戒判定閾値に任意の数値を設定します
- 障害判定閾値に任意の数値を設定します
- 必要に応じて「深刻度自動復旧の有効化」にチェックを入れ、復旧時間を指定します
- 保存をクリックします
この後から、静観スケジュールを使用する場合とランブックを使用する場合で設定方法が異なります。
ランブックを使用したい場合は、ランブックの設定 を参照してください。
静観スケジュールの設定
今回は、「00:00 から 01:00 についてはアラート発生時のメール送信をしない」という設定をしたいため、該当の時刻について静観スケジュールを設定します。
作成したスコープがスコープ一覧に表示されるため、表示名をクリックし「設定」タブを選択します。
画面を下にスクロールし、静観スケジュールの右端にある「+」をクリックします。
ダイアログが出現するため、以下の通り入力します。
- 任意の表示名を入力します
- 静観スケジュールの開始日時を入力します
- 静観スケジュールの終了日時を入力します
- 必要に応じて繰り返しの設定を選択します
- 保存ボタンをクリックします
ルールの作成
ルールを作成します。
画面横のメニューから「ルール」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 最初に作成した受信スロットを選択します
イベントの設定
「イベント(対象スコープを直接指定)」の「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 「受信データのパスで指定」を選択します
- 作成したスコープを選択します
- 作成ボタンをクリックします
イベントの編集画面が表示されるため、以下の通り入力します1。
- 指定したいフィールドを入力します
- 「1」と入力します
- プルダウンより「増やす」を選択します
最後に、ルール作成画面を一番下までスクロールし保存ボタンをクリックします。
アクションの作成
アクションを作成します。
画面横のメニューから「アクション」をクリックし、画面右上の「メール」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- メール送信先の名前とメールアドレスを入力します
- 送信するメールの件名を入力します
- 送信するメールの本文を入力します
- 保存ボタンをクリックします
通知内容の設定については、Kompira AlertHub 基本マニュアル > 設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
トリガーの作成
トリガーを作成します。
画面横のメニューから「スコープ」をクリックし、スコープの作成 で作成したスコープをクリックします。
スコープの詳細画面に遷移するため、「トリガー」タブをクリックし、画面右端の「+」をクリックします。
ダイアログが表示されるため、任意の表示名を入力します。
実行条件の設定
「実行条件」の「+」をクリックします。
ダイアログが表示されるため、「イベントの深刻度名を指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します2。
- 通知が不要な場合の深刻度名を入力します
- プルダウンより「と等しくない」と入力します
もう一度「実行条件」の「+」をクリックします。
「深刻度の増減を判定する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、「増えた」を選択します。
最後に、「実行」にて アクションの作成 で作成したアクションを選択し、保存ボタンをクリックします。
以上で、静観スケジュールを使用した AlertHub 上の設定は終了です。
ランブックの設定
ランブックを使用する場合の設定方法です。
ランブックを設定する前に、アクションの作成 を参照しアクションを作成してください。
画面横のメニューから「ランブック」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、任意の表示名を入力し保存ボタンをクリックします。
日時取得のステップ追加
ランブックのフロー編集画面が表示されます。
左上の「+」マークをクリックしオペレーターステップの「現在の日時を取得する」を選択します。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- フィールド名に任意の名前を入力します
- 保存ボタンをクリックします
時刻判断のステップ追加
左上の「+」マークをクリックしブランチステップの「日時が指定した時刻の範囲内であるか確認する」を選択します。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 日時取得のステップ追加 で設定したフィールド名を入力します
- 通知を受け取らない開始時間を入力します
- 通知を受け取らない終了時間を入力します
- タイムゾーンを選択します
- 保存ボタンをクリックします
アクションステップの追加
左上の「+」マークをクリックしアクションステップの中から、アクションの作成 で作成したアクションを選択します。
ダイアログが表示されるため、任意の表示名を入力し保存ボタンをクリックします。
最後にステップを順番に繋げ、保存ボタンをクリックします。
以上で、ランブックの設定は終了です。
動作確認
動作確認を行います。
監視サーバーからの通知を受信すると、以下の通り深刻度が変化し深刻度名が normal
でないものの時にアクションが実行されていることが分かります。
実際に、今回は深刻度名 error
の通知が届いていることが確認できました。
また、静観スケジュールを設定した 00:00~01:00 は、 normal
以外の深刻度名であってもアクションが行われなかったことを確認できました。
受信したリクエストボディから、特定のフィールド message.content.data.status
を指定して深刻度名とする設定です。
今回は、深刻度名を message.content.data.status
というようにフィールドを指定して設定しています。
該当のフィールドについて、normal
のような特定の文字列でなかった場合、アクションが発生するようにする設定です。
ランブックを使って日中帯と夜間帯のアラート発生をメール送信と電話に切り替えて通知したい
時間帯によって、アラートを通知する手段を分けたい場合の具体例を記載します。
今回は、ランブックを使用して時間帯によって通知の手段を分けるよう設定します。
ランブックの基本的な操作方法については、Kompira AlertHub ランブック操作マニュアルを参照してください。
設定のポイント
以下の手順でランブックを設定しアクションの切り分けを行います。
事前に日中連絡用のアクションと夜間連絡用のアクションを作成しておきます。
- 現在の日時を取得
- オペレーターステップから「現在の日時を取得する」を選択
- 任意のフィールド名を設定する
- オペレーターステップから「現在の日時を取得する」を選択
- 日中か夜間かの判定
- ブランチステップから「日時が指定した時刻の範囲内であるか確認する」を選択
- 「もし
1で指定したフィールド
の時刻が日中開始時間
から日中終了時間
の範囲内である場合」と設定する
- 「もし
- ブランチステップから「日時が指定した時刻の範囲内であるか確認する」を選択
- 日中と夜間それぞれのアクションを設定
- アクションステップから事前に作成した日中連絡用のアクションと夜間連絡用のアクションを追加
- 1~3 で作成したステップを順番に繋げる
- 「then」は日中連絡用のアクションステップと繋げる
- 「else」は夜間連絡用のアクションステップと繋げる
以下より、設定の手順を記載します。
受信スロットの作成
受信スロットを作成します。
画面横のメニューから「受信スロット」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- メールを選択します
- 任意の表示名を入力します
- 保存をクリックします
受信スロットが作成され、一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、アラートの送信先となるメールアドレスを取得します。
スコープの作成
スコープを作成します。
画面横のメニューから「スコープ」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 警戒判定閾値に任意の数値を設定します
- 障害判定閾値に任意の数値を設定します
- 必要に応じて「深刻度自動復旧の有効化」にチェックを入れ、復旧時間を指定します
- 保存をクリックします
ルールの作成
ルールを作成します。
画面横のメニューから「ルール」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 最初に作成した受信スロットを選択します
イベントの設定
「イベント(対象スコープを直接指定)」の「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 「直接指定」を選択します
- 作成したスコープを選択します
- 作成ボタンをクリックします
イベントの編集画面が表示されるため、以下の通り入力します。
- 任意の深刻度名を入力します
- 「1」と入力します
- プルダウンより「増やす」を選択します
最後に、ルール作成画面を一番下までスクロールし保存ボタンをクリックします。
アクションの作成
アクションを作成します。
今回は、日中と夜間で通知の手段を分けるため、アクションを 2 つ作成します。
画面横のメニューから「アクション」をクリックし、画面右上の「メール」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- メール送信先の名前とメールアドレスを入力します
- 送信するメールの件名を入力します
- 送信するメールの本文を入力します
- 保存ボタンをクリックします
通知内容の設定については、Kompira AlertHub 基本マニュアル > 設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
続いて、画面右上の「Pigeon」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 使用するコールフローを選択します
- 使用するガイダンスを選択します
- 保存ボタンをクリックします
Pigeon の詳しい設定方法については、Kompira Pigeon 基本マニュアル > 設定の流れ を参照してください。
ランブックの作成
ランブックを作成します。
ランブックでは、AlertHub がアラートを受信しイベントが発生した時間によってアクションの内容を分けるよう設定します。
画面横のメニューから「ランブック」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、任意の表示名を入力し保存をクリックします。
ランブックのフロー編集画面が表示されるため、左上の「+」マークをクリックします。
オペレーターステップの「現在の日時を取得する」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 任意のフィールド名を入力します
- 保存ボタンをクリックします
同様に新規ステップ追加から、ブランチステップの「日時が指定した時刻の範囲内であるか確認する」をクリックします。
ダイアログが表示されるため、以下の通り入力します1。
- 任意の表示名を入力します
- オペレーターステップで指定したフィールド名を入力します
- 任意の開始時刻を入力します
- 任意の終了時刻を入力します
- タイムゾーンを選択します
- 保存ボタンをクリックします
最後にアクションステップを追加します。
アクションの作成 で作成したアクションをクリックします。
ダイアログが表示されるため、任意の表示名を入力し保存ボタンをクリックします。
各ステップを以下の通りに並べ、黄色くハイライトされている通りに繋げます。
フローが完成したら、右上の保存ボタンをクリックします。
トリガーの作成
トリガーを作成します。
画面横のメニューから「スコープ」をクリックし、スコープの作成 で作成したスコープをクリックします。
スコープの詳細画面に遷移するため、「トリガー」タブをクリックし、画面右端の「+」をクリックします。
ダイアログが表示されるため、任意の表示名を入力します。
実行条件の設定
「実行条件」の「+」をクリックします。
ダイアログが表示されるため、「深刻度の増減を判定する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、「増えた」を選択します。
画面をスクロールし、ランブックの作成 で作成したランブックを選択し、保存ボタンをクリックします。
以上で、AlertHub 上の設定は終了です。
動作確認
動作確認を行います。
今回は、9:00~20:00 はメールで通知するよう設定し、それ以外の時間は電話連絡が行われるように設定しています。
実際に 9:00~20:00 の間に受信スロットへアラートを送信してみると、ランブックの実行履歴から日中帯用に設定したアクションが実行されていることが分かります。
また、実際にメールが送信されたことを確認できました。
続いて、夜間帯にも受信スロットへアラートを送信すると、夜間帯用に設定したアクションが実行され Pigeon の架電が行われました。
Pigeon の連絡履歴からも架電された履歴が確認できました。
オペレーターステップで指定した time
というフィールドの日時が 9:00~20:00 以内かどうかを判断するための設定です。
アラートを3分間集約してほしい
アラートが連続で発生した際などに、まとめてアラートを知らせてほしい場合の具体例を記載します。
今回は、180 秒間に連続してアラートが発生した場合、初報以外のアラートを関連メッセージとして扱い、アクションを一度だけ発生させます。
設定のポイント
トリガーの作成時に関連メッセージを設定することで、アラートを集約します。
-
実行条件の設定で以下の 2 つを設定
- 「イベントのフィールドを指定値と比較する」:「変化前の深刻度」が
0
「と等しい」値である - 「一定時間経過後の指定した名前を持つ深刻度の値を指定値と比較する」:
180
秒経過後、深刻度指定した深刻度名
が任意の深刻度の値
「以上の」値である
※「深刻度が 0 から変化し、3 分後の深刻度が指定した数値より高い場合」にアクションを実行するよう指定しています
- 「イベントのフィールドを指定値と比較する」:「変化前の深刻度」が
-
関連メッセージで以下の 2 つを設定
- 「深刻度の増減を判定する」:深刻度が「増えた」
- 「イベントの深刻度名を起点のイベントの深刻度名と比較する」:深刻度名が起点イベントの深刻度名「と等しい」
※「同様のイベントの深刻度名で深刻度が増えた場合」に関連メッセージとして集約するよう指定しています
関連メッセージは、「XX 秒経過後」のように秒数指定を実行条件で設定していないと設定できないため、注意してください。
受信スロットの作成
受信スロットを作成します。
画面横のメニューから「受信スロット」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- Webhook を選択します
- 任意の表示名を入力します
- 保存をクリックします
受信スロットが作成され、一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、監視システムと連携するための URL を取得します。
スコープの作成
スコープを作成します。
画面横のメニューから「スコープ」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 警戒判定閾値に任意の数値を設定します
- 障害判定閾値に任意の数値を設定します
- 必要に応じて「深刻度自動復旧の有効化」にチェックを入れ、復旧時間を指定します
- 保存をクリックします
ルールの作成
ルールを作成します。
画面横のメニューから「ルール」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 最初に作成した受信スロットを選択します
イベントの設定
「イベント(対象スコープを直接指定)」の「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 「直接指定」を選択します
- 作成したスコープを選択します
- 作成ボタンをクリックします
イベントの編集画面が表示されるため、以下の通り入力します。
- 任意の深刻度名を入力します
5
と入力します- プルダウンより「増やす」を選択します
最後に、ルール作成画面を一番下までスクロールし保存ボタンをクリックします。
アクションの作成
アクションを作成します。
画面横のメニューから「アクション」をクリックし、画面右上の「メール」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- メール送信先の名前とメールアドレスを入力します
- 送信するメールの件名を入力します
- 送信するメールの本文を入力します
- 保存ボタンをクリックします
通知内容の設定については、Kompira AlertHub 基本マニュアル > 設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
トリガーの作成
トリガーを作成します。
画面横のメニューから「スコープ」をクリックし、スコープの作成 で作成したスコープをクリックします。
スコープの詳細画面に遷移するため、「トリガー」タブをクリックし、画面右端の「+」をクリックします。
ダイアログが表示されるため、任意の表示名を入力します。
実行条件の設定
「実行条件」の「+」をクリックします。
ダイアログが表示されるため、「イベントのフィールドを指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します1。
- プルダウンより、「変化前の深刻度」を選択します
0
と入力します- プルダウンより、「と等しい」を選択します
続いて、再度「実行条件」の「+」をクリックします。
「一定時間経過後の指定した名前を持つ深刻度の値を指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します1。
180
と入力します- イベントの設定 で設定した深刻度名を入力します
5
と入力します- プルダウンより、「以上の」を選択します
関連メッセージの設定
「関連メッセージ」の「有効化」にチェックを入れ、「+」をクリックします。
ダイアログが表示されるため、「深刻度の増減を判定する」を選択し、作成ボタンをクリックします。
関連メッセージの編集画面が表示されるため、プルダウンより「増えた」を選択します2。
続いて、再度「関連メッセージ」の「+」をクリックします。
ダイアログが表示されるため、「イベントの深刻度名を起点イベントの深刻度名と比較する」を選択し、作成ボタンをクリックします。
関連メッセージの編集画面が表示されるため、プルダウンより「と等しい」を選択します2。
最後に、「実行」にて アクションの作成 で作成したアクションを選択し、保存ボタンをクリックします。
以上で、AlertHub 上の設定は終了です。
動作確認
動作確認を行います。
実際にアラートを複数件送信してみると、以下の通りイベントが 3 回発生し深刻度が 15 となっていますが、アクションは 1 回のみ発生していることが分かります。
メールを確認してみると、初報分のみアクションを送信し、関連メッセージもカウントされていることが確認できました。
深刻度が 0
から変化し 180 秒経過した時点でイベントの設定
で設定した深刻度の値が警戒閾値の 5
を超えている場合にアクションが発生する設定です。
関連メッセージは、「XX
秒経過後」のように秒数指定を実行条件で設定していないと設定できないため、注意してください。
関連メッセージに含むイベントとして、深刻度を増加させた上で、初報のアラートにより発生したイベントと同じ深刻度名のイベントを指定する設定です。
同種のアラート発生は、初報から1時間は通知が必要ない
1 つのスコープで受信したアラートについて、一定時間は通知が不要となる場合の具体例を記載します。
設定のポイント
トリガーの実行条件において以下の通り設定することで初報のみアクションを発生させるようにします。
- 「直近のアクション実行件数を指定値と比較する」
- 過去
3600
秒間に、アクションが0
「と等しい」回数実行された
※「過去 1 時間以内に、アクションが実行された回数が 0 回であった」ことを指定しています
- 過去
受信スロットの作成
受信スロットを作成します。
画面横のメニューから「受信スロット」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- Webhook を選択します
- 任意の表示名を入力します
- 保存をクリックします
受信スロットが作成され、一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、監視システムと連携するための URL を取得します。
スコープの作成
スコープを作成します。
画面横のメニューから「スコープ」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 警戒判定閾値に任意の数値を設定します
- 障害判定閾値に任意の数値を設定します
- 必要に応じて「深刻度自動復旧の有効化」にチェックを入れ、復旧時間を指定します
- 保存をクリックします
ルールの作成
ルールを作成します。
画面横のメニューから「ルール」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 最初に作成した受信スロットを選択します
イベントの設定
「イベント(対象スコープを直接指定)」の「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 「直接指定」を選択します
- 作成したスコープを選択します
- 作成ボタンをクリックします
イベントの編集画面が表示されるため、以下の通り入力します。
- 任意の深刻度名を入力します
- 「1」と入力します
- プルダウンより「増やす」を選択します
最後に、ルール作成画面を一番下までスクロールし保存ボタンをクリックします。
アクションの作成
アクションを作成します。
画面横のメニューから「アクション」をクリックし、画面右上の「メール」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- メール送信先の名前とメールアドレスを入力します
- 送信するメールの件名を入力します
- 送信するメールの本文を入力します
- 保存ボタンをクリックします
通知内容の設定については、Kompira AlertHub 基本マニュアル > 設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
トリガーの作成
トリガーを作成します。
画面横のメニューから「スコープ」をクリックし、スコープの作成 で作成したスコープをクリックします。
スコープの詳細画面に遷移するため、「トリガー」タブをクリックし、画面右端の「+」をクリックします。
ダイアログが表示されるため、任意の表示名を入力します。
実行条件の設定
「実行条件」の「+」をクリックします。
ダイアログが表示されるため、「直近のアクション実行件数を指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します1。
3600
秒と入力します0
と入力します- プルダウンより「と等しい」と入力します
最後に、「実行」にて アクションの作成 で作成したアクションを選択し、保存ボタンをクリックします。
以上で、AlertHub 上の設定は終了です。
動作確認
動作確認を行います。
実際にアラートを複数件送信してみると、イベントは都度発生しましたがアクションは最初のイベントの 1 回のみが実行されています。
メールを確認してみると、初報のみアラートを受信したことが確認できました。
1 時間(=3600 秒)の間にイベントが複数回発生してもアクションを初報の 1 回のみとするための設定です。
異常が1分以内に回復したらアラート発生の通知が必要ない
アラートが発生しても一定時間内に障害から回復した場合は通知が不要な場合の具体例を記載します。
今回は、アラート発生から一定の時間以上経過した場合の障害通知とその後に回復した場合の回復通知が送信されるように設定します。
設定のポイント
障害通知用と回復通知用のルールとトリガーをそれぞれ設定します。
ルール
受信するアラートの webhook メッセージを判断材料として利用し、障害通知用ルールを以下の通り作成します。
今回は、受信するアラートのリクエストボディに status
という項目がありその値を比較する想定で設定しています。
アラートのステータスが error
の場合、深刻度を上げる設定です。
- 処理フローの設定
- 「フィールドが文字列を含むかどうか確認する」:
message.content.data.status
がerror
を包含「した」場合
- 「フィールドが文字列を含むかどうか確認する」:
- イベントの設定
- 「イベント(対象スコープを直接指定)」で「直接指定」を選択
- 深刻度名
障害通知
を1
「増やす」
回復通知用ルールを以下の通り作成します。
障害通知と逆で、リクエストボディの status
が error
でなかったの場合、深刻度を 0 に戻します。
- 処理フローの設定
- 「フィールドが文字列を含むかどうか確認する」:
message.content.data.status
がerror
を包含「しなかった」場合
- 「フィールドが文字列を含むかどうか確認する」:
- イベントの設定
- 「イベント(対象スコープを直接指定)」で「直接指定」を選択
- 深刻度名
障害通知
を0
「にする」
トリガー
障害通知用と回復通知用のトリガーをそれぞれ作成し、実行条件を以下の通り設定します。
- 障害通知用
- 「スコープステータスを指定値と比較する」:スコープステータスが「正常」「と等しくない」
- 「一定時間経過後のスコープステータスを指定値と比較する」:
60
秒経過後、スコープステータスが「正常」「と等しくない」
障害通知アラートが発生した後、60
秒後もスコープの深刻度が変化していない場合に障害通知を送信する設定です。
アラートを複数件受信し深刻度が一定値とならないことを考慮し、スコープステータスにて判断しています。
- 回復通知用
- 「スコープステータスを指定値と比較する」:スコープステータスが「正常」「と等しい」
- 「指定条件を満たす直近のイベント件数を指定値と比較する」:過去
60
秒間に「深刻度の変化量」が1
「以上の」イベントが0
「と等しい」回数発生した
回復通知は障害通知アラートの発生から 60 秒以内に回復した場合は送信しないようにしたいため、回復前の 60 秒間に異常が発生しなかった(=異常が発生したのは 60 秒より前である)ことを条件として設定しています。
受信スロットの作成
受信スロットを作成します。
画面横のメニューから「受信スロット」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- Webhook を選択します
- 任意の表示名を入力します
- 保存をクリックします
受信スロットが作成され、一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、監視システムと連携するための URL を取得します。
スコープの作成
スコープを作成します。
画面横のメニューから「スコープ」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 警戒判定閾値を
1
と設定します - 障害判定閾値に任意の数値を設定します
- 「深刻度自動復旧の有効化」のチェックは未入力のままにします
- 保存をクリックします
ルールの作成
ルールを作成します。
今回は、障害通知と回復通知をそれぞれ処理するため、2 つのルールを作成します。
まず、障害通知を受信した際のルールを設定します。
画面横のメニューから「ルール」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 最初に作成した受信スロットを選択します
処理フローの設定
「処理フロー」の「+」をクリックします。
ダイアログが表示されるため、「フィールドが文字列を含むかどうか確認する」を選択し、作成ボタンをクリックします。
処理フローの編集画面が表示されるため、以下の通り入力します1。
message.content.data.status
と入力しますerror
と入力します- プルダウンより「した」を選択します
イベントの設定
「イベント(対象スコープを直接指定)」の「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 「直接指定」を選択します
- 作成したスコープを選択します
- 作成ボタンをクリックします
イベントの編集画面が表示されるため、以下の通り入力します。
- 任意の深刻度名を入力します
- 「1」と入力します
- プルダウンより「増やす」を選択します
ルール作成画面を一番下までスクロールし保存ボタンをクリックします。
続いて、回復通知を受信した際のルールを作成します。
障害通知の際と同様に、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 最初に作成した受信スロットを選択します
処理フローの設定
「処理フロー」の「+」をクリックします。
ダイアログが表示されるため、「フィールドが文字列を含むかどうか確認する」を選択し、作成ボタンをクリックします。
処理フローの編集画面が表示されるため、以下の通り入力します。
message.content.data.status
と入力しますerror
と入力します- プルダウンより「しなかった」を選択します
イベントの設定
「イベント(対象スコープを直接指定)」の「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 「直接指定」を選択します
- 作成したスコープを選択します
- 作成ボタンをクリックします
イベントの編集画面が表示されるため、以下の通り入力します。
- 障害通知の際と同様の深刻度名を入力します
0
と入力します- プルダウンより「にする」を選択します
ルール作成画面を一番下までスクロールし保存ボタンをクリックします。
アクションの作成
アクションを作成します。
今回は、障害通知と回復通知の 2 つについてアクションを作成します。
画面横のメニューから「アクション」をクリックし、画面右上の「WEBHOOK」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 外部のアプリケーションへ通知するための Webhook URL を入力します
- リクエスト本文に記載したい内容を入力します
- HTTP ヘッダーを指定します
- 保存ボタンをクリックします
通知内容の設定については、Kompira AlertHub 基本マニュアル > 設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
同様に、回復通知も作成します。
トリガーの作成
トリガーを作成します。
今回は、障害通知と回復通知をそれぞれ発生させるため、2 つのトリガーを作成します。
まず、障害を通知する際のトリガーを設定します。
画面横のメニューから「スコープ」をクリックし、スコープの作成 で作成したスコープをクリックします。
スコープの詳細画面に遷移するため、「トリガー」タブをクリックし、画面右端の「+」をクリックします。
ダイアログが表示されるため、任意の表示名を入力します。
実行条件の設定
「実行条件」の「+」をクリックします。
ダイアログが表示されるため、「スコープステータスを指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します2。
- プルダウンより「正常」を選択します
- プルダウンより「と等しくない」を選択します
もう一度「実行条件」の「+」をクリックします。
「一定時間経過後のスコープステータスを指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します2。
60
秒と入力します- プルダウンより「正常」を選択します
- プルダウンより「と等しくない」を選択します
最後に、「実行」にて アクションの作成 で作成したアクションを選択し、保存ボタンをクリックします。
続いて、回復通知を行う際のトリガーを作成します。
障害通知の際と同様に、トリガーの画面右端の「+」をクリックし任意の表示名をクリックます。
実行条件の設定
「実行条件」の「+」をクリックします。
「スコープステータスを指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します3。
- プルダウンより「正常」を選択します
- プルダウンより「と等しい」を選択します
もう一度「実行条件」の「+」をクリックします。
「指定条件を満たす直近のイベント件数を指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します3。
60
秒と入力します- プルダウンより「深刻度の変化量」を選択します
1
と入力します- プルダウンより「以上の」を選択します
0
と入力します- プルダウンより「と等しい」を選択します
最後に、「実行」にて アクションの作成 で作成したアクションを選択し、保存ボタンをクリックします。
以上で、AlertHub 上の設定は終了です。
動作確認
動作確認を行います。
実際にアラートを飛ばしてみると、黄色網掛け部分の通り、1 分以内に深刻度が回復した場合はアクションが発生しませんでした。
一方、下図の赤枠部分の通り、1 分以内に回復しなかった場合とその後回復した場合にはアクションが発生しました。
通知先のアプリケーションでも、アクションの内容を確認することができました。
今回は、受信するアラートのリクエストボディに status
という項目がありその値を比較する想定で設定しています。
アラートのステータスが「error」の場合、深刻度を上げる設定です。
障害通知アラートが発生した後、60
秒後もスコープの深刻度が変化していない場合に障害通知を送信する設定です。
アラートを複数件受信し深刻度が一定値とならないことを考慮し、スコープステータスにて判断しています。
回復通知は障害通知アラートの発生から 60 秒以内に回復した場合は送信しないようにしたいため、回復前の 60 秒間に異常が発生しなかった(=異常が発生したのは 60 秒より前である)ことを条件として設定しています。
アラートメッセージの中に「error」の文字列があったらメール送信が必要だが、「error.html」であれば送信は必要ない
アラートメッセージに特定の文字列などが含まれることを条件としたい場合の例を記載します。
設定のポイント
処理フローの設定において、正規表現を利用することで該当するアラートを判別します1。
- 「フィールドが正規表現にマッチするかどうか確認する」
message.content.html
が.*error([^\.]|$).*
とマッチ「した」場合
受信スロットの作成
受信スロットを作成します。
画面横のメニューから「受信スロット」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- メールを選択します
- 任意の表示名を入力します
- 保存をクリックします
受信スロットが作成され、一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、アラートの送信先となるメールアドレスを取得します。
スコープの作成
スコープを作成します。
画面横のメニューから「スコープ」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 警戒判定閾値に任意の数値を設定します
- 障害判定閾値に任意の数値を設定します
- 必要に応じて「深刻度自動復旧の有効化」にチェックを入れ、復旧時間を指定します
- 保存をクリックします
ルールの作成
ルールを作成します。
画面横のメニューから「ルール」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 最初に作成した受信スロットを選択します
処理フローの設定
「処理フロー」の「+」をクリックします。
ダイアログが表示されるため、「フィールドが正規表現にマッチするかどうか確認する」を選択し、作成ボタンをクリックします。
処理フローの編集画面が表示されるため、以下の通り入力します1。
message.content.html
と入力します.*error([^\.]|$).*
と入力します- プルダウンより「した」を選択します
イベントの設定
「イベント(対象スコープを直接指定)」の「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 「受信データのパスで指定」を選択します
- 作成したスコープを選択します
- 作成ボタンをクリックします
イベントの編集画面が表示されるため、以下の通り入力します。
- 指定したいフィールドを入力します
- 「1」と入力します
- プルダウンより「増やす」を選択します
最後に、ルール作成画面を一番下までスクロールし保存ボタンをクリックします。
アクションの作成
アクションを作成します。
画面横のメニューから「アクション」をクリックし、画面右上の「メール」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- メール送信先の名前とメールアドレスを入力します
- 送信するメールの件名を入力します
- 送信するメールの本文を入力します
- 保存ボタンをクリックします
通知内容の設定については、Kompira AlertHub 基本マニュアル > 設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
トリガーの作成
トリガーを作成します。
画面横のメニューから「スコープ」をクリックし、スコープの作成 で作成したスコープをクリックします。
スコープの詳細画面に遷移するため、「トリガー」タブをクリックし、画面右端の「+」をクリックします。
ダイアログが表示されるため、任意の表示名を入力します。
画面を下にスクロールし「実行」にて アクションの作成 で作成したアクションを選択し、保存ボタンをクリックします。
以上で、AlertHub 上の設定は終了です。
動作確認
動作確認を行います。
実際に受信したアラートに error
の文字列があった場合、深刻度が上昇しアクションが実行されました。
アクション送信先のメールでも、アクションの内容を確認できました。
AlertHub では正規表現の否定先読みが使用できないため、今回は同等の条件を満たすパターンを使用しています。
webhook メッセージの内容を AlertHub 上で扱いたい
AlertHub は、アラートを webhook メッセージにより受信し、リクエストボディの内容を参照したり情報を加工して使用できます。
AlertHub では、リクエストボディが JSON 形式且つ Content-Type が application/json
であれば、メッセージの情報をフィールドにパースできます。
今回は、Content-Type が application/json
でない場合に JSON の情報をパースする具体例を記載します。
例として受信するアラートの webhook メッセージは以下の通りです。
{
"network": {
"networkId": "a22da125-6d20-4949-b271-XXXXXXXXX",
"displayName": "sample",
"becomeStableAfter": 7,
"becomeOutdatedAfter": 30
},
"task": {
"taskId": "de85e95e-8116-4eb1-a186-XXXXXXXXXX",
"namespace": "sonar",
"method": "scan",
"reference": {
"snapshotId": "867a6477-b950-41e3-a201-XXXXXXXXXX"
},
"status": "succeeded",
"startedAt": "2023-06-01T07:14:19Z",
"terminatedAt": "2023-06-01T07:15:02Z",
"createdAt": "2023-06-01T07:14:18Z",
"createdBy": "1b38e14f-7abb-49f0-9c6f-XXXXXXXXXX"
}
}
設定のポイント
ルールとトリガーにおいて JSON パースを行い、処理の判断や通知内容で使用できるようにします。
ルール
処理フローとイベントを以下の通り設定します。
- 処理フロー
- フィールドを JSON としてパースする:
message.content.body
を JSON パースして一時フィールドbody
に保存する
- フィールドを JSON としてパースする:
- イベント
- 深刻度の指定方法を「受信データのパスで指定」:深刻度名
body.example
と指定する
- 深刻度の指定方法を「受信データのパスで指定」:深刻度名
メッセージの内容を使ってルールで条件判断するため、処理フローでは JSON パースを行います。
上記では、処理フローで JSON パースしたリクエストボディの中身を body
という一時フィールドに保存しています。
そのため、イベントでは一時フィールドの値を指定し body.example
というように body
を頭に付けて指定します。
トリガー
パラメーター加工フローを以下の通り設定します。
- フィールドを JSON としてパースする:
message.content.body
を JSON パースして一時フィールドscan
に保存する
メッセージの内容をアクションで使うため、JSON パースを行います。
ルールの一時フィールドに保存した値は、アクションの内容には使用できないため改めて JSON パースを行います。
今回は、パラメーター加工フローにて scan
という一時フィールドに保存しているため、アクションでは scan.example
のように値を指定します。
受信スロットの作成
受信スロットを作成します。
画面横のメニューから「受信スロット」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- Webhook を選択します
- 任意の表示名を入力します
- 保存をクリックします
受信スロットが作成され、一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、監視システムと連携するための URL を取得します。
スコープの作成
スコープを作成します。
画面横のメニューから「スコープ」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 警戒判定閾値に任意の数値を設定します
- 障害判定閾値に任意の数値を設定します
- 必要に応じて「深刻度自動復旧の有効化」にチェックを入れ、復旧時間を指定します
- 保存をクリックします
ルールの作成
ルールを作成します。
画面横のメニューから「ルール」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 最初に作成した受信スロットを選択します
処理フローの設定
「処理フロー」の「+」をクリックします。
ダイアログが表示されるため、「フィールドを JSON としてパースする」を選択し、作成ボタンをクリックします。
処理フローの編集画面が表示されるため、以下の通り入力します。
- プルダウンより
message.content.body
を選択します - 任意のフィールド名を入力します
ここでは、イベントでリクエストボディの中身を指定できるように JSON パースし body
という一時フィールドに保存しています。
イベントの設定
「イベント(対象スコープを直接指定)」の「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 「受信データのパスで指定」を選択します
- 作成したスコープを選択します
- 作成ボタンをクリックします
イベントの編集画面が表示されるため、以下の通り入力します。
- 任意の深刻度名をパスで指定します
- 「1」と入力します
- プルダウンより「増やす」を選択します
今回は、処理フローの設定 で JSON パースしたリクエストボディの中身を body
という一時フィールドに保存しています。
そのため、リクエストボディの値を指定する際には、body.example.example
というように body
を頭に付けて指定します。
ルール作成画面を一番下までスクロールし保存ボタンをクリックします。
アクションの作成
アクションを作成します。
画面横のメニューから「アクション」をクリックし、画面右上の「WEBHOOK」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 外部のアプリケーションへ通知するための Webhook URL を入力します
- リクエスト本文に記載したい内容を入力します1
- HTTP ヘッダーを指定します
- 保存ボタンをクリックします
通知内容の設定については、Kompira AlertHub 基本マニュアル > 設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
トリガーの作成
トリガーを作成します。
画面横のメニューから「スコープ」をクリックし、スコープの作成 で作成したスコープをクリックします。
スコープの詳細画面に遷移するため、「トリガー」タブをクリックし、画面右端の「+」をクリックします。
ダイアログが表示されるため、任意の表示名を入力します。
実行条件の設定
「実行条件」の「+」をクリックします。
ダイアログが表示されるため、「深刻度の増減を比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、プルダウンより「増えた」を選択します。
パラメーター加工フローの設定
「パラメーター加工フロー」の「+」をクリックします。
ダイアログが表示されるため、「フィールドを JSON としてパースする」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します。
- 処理フローの設定と同様に
message.content.body
を指定します - 任意のフィールド名を入力します
アクションの内容に受信したリクエストボディの値を記載するため、トリガーのパラメーター加工フローにて再度 JSON パースを行います。
ルールの一時フィールドに保存した値は、アクションの内容には使用できないため注意してください。
今回は、パラメーター加工フローにて scan
という一時フィールドに保存しているため、アクションでは scan.example.example
のように値を指定しています。
画面を下にスクロールし「実行」にて アクションの作成 で作成したアクションを選択し、保存ボタンをクリックします。
以上で、AlertHub 上の設定は終了です。
動作確認
動作確認を行います。
実際にアラートを送信してみると、リクエストボディの中から対象の値を取り出して深刻度名に埋め込めました。
受信したアクションからも、同様に必要な値を取り出して記載できたことが確認できました。
アクション内での値の指定については、パラメーター加工フローの設定 で保存した値を使用します。
ホストごとにスコープを登録しているが、同一の障害アラートで同時に深刻度を上昇させたい
複数のスコープで共通の要素により深刻度を変化させたい場合の具体例を記載します。
今回は 2 つのホストについてそれぞれのスコープで監視している想定で設定します。
設定のポイント
各スコープにて属性を設定し、ルールのイベント設定で対象スコープを条件指定します。
スコープ
各スコープ内の「設定」タブで下記のように属性を追加します。
- 属性
アラート
:値ルーター異常
ルール
イベントの設定で、「イベント(対象スコープを条件指定)」を行います。
スコープ条件で「直接指定」を選択し、以下の通り指定します。
- スコープ属性の
アラート
がルーター異常
と一致するスコープ
受信スロットの作成
受信スロットを作成します。
画面横のメニューから「受信スロット」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- Webhook を選択します
- 任意の表示名を入力します
- 保存をクリックします
受信スロットが作成され、一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、監視システムと連携するための URL を取得します。
スコープの作成
スコープを作成します。
今回は、2 つのホストを監視している想定でのため、スコープを 2 つ作成します。
画面横のメニューから「スコープ」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 警戒判定閾値に任意の数値を設定します
- 障害判定閾値に任意の数値を設定します
- 必要に応じて「深刻度自動復旧の有効化」にチェックを入れ、復旧時間を指定します
- 保存をクリックします
同様に、もう 1 つのスコープも作成します。
スコープ一覧画面に 2 つスコープができたことを確認します。
属性の設定
作成したスコープの表示名をクリックし、スコープの詳細画面を表示します。
「設定」タブをクリックし、「属性」の右端にある「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の属性の名前を入力します
- 名前に対応する任意の値を入力します
- 保存ボタンをクリックします
同様に、もう 1 つのスコープも同じ属性を設定します。
ルールの作成
ルールを作成します。
画面横のメニューから「ルール」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 最初に作成した受信スロットを選択します
処理フローの設定
「処理フロー」の「+」をクリックします。
ダイアログが表示されるため、「フィールドを文字列比較する」を選択し、作成ボタンをクリックします。
処理フローの編集画面が表示されるため、以下の通り入力します1。
- プルダウンより
message.content.data.router
と入力します NG
と入力します- 「と等しい」を選択します
イベントの設定
「イベント(対象スコープを条件指定)」の「+」をクリックします。
ダイアログが表示されるため、「直接指定」を選択し作成ボタンをクリックします。
「スコープ」の「+」をクリックします。
ダイアログが表示されるため、「直接指定」を選択し作成ボタンをクリックします。
イベントの編集画面が表示されるため、以下の通り入力します2。
ルール作成画面を一番下までスクロールし保存ボタンをクリックします。
アクションの作成
アクションを作成します。
画面横のメニューから「アクション」をクリックし、画面右上の「メール」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- メール送信先の名前とメールアドレスを入力します
- 送信するメールの件名を入力します
- 送信するメールの本文を入力します
- 保存ボタンをクリックします
通知内容の設定については、Kompira AlertHub 基本マニュアル > 設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
トリガーの作成
トリガーを作成します。
トリガーは、両方のスコープにおいて設定が必要です。
画面横のメニューから「スコープ」をクリックし、スコープの作成 で作成したスコープをクリックします。
スコープの詳細画面に遷移するため、「トリガー」タブをクリックし、画面右端の「+」をクリックします。
ダイアログが表示されるため、任意の表示名を入力します。
実行条件の設定
「実行条件」の「+」をクリックします。
ダイアログが表示されるため、「スコープステータスを指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します3。
- プルダウンより「障害」を選択します
- プルダウンより「と等しい」を選択します
再度、「実行条件」の「+」をクリックします。
「イベントの深刻度名を指定値と比較する」を選択し、作成ボタンをクリックします。
実行条件の編集画面が表示されるため、以下の通り入力します3。
- イベントの設定 で指定した深刻度名と同じ名前を入力します
- プルダウンより「と等しい」を選択します
画面を下にスクロールし「実行」にて アクションの作成 で作成したアクションを選択し、保存ボタンをクリックします。
同様に、もう 1 つのスコープもトリガーを設定します。
以上で、AlertHub 上の設定は終了です。
動作確認
動作確認を行います。
実際に受信したアラートのリクエストボディにおいて、router
の項目が NG
となっていた場合、両方のスコープでイベントが発生しアクションが実行されました。
アクション送信先のメールでも、両方のアクションの内容を確認できました。
今回は、受信するアラートのリクエストボディに router
という項目がある想定で、その値が NG
となった場合にイベントが発生するように設定しています。
属性の アラート
に router 異常
を設定している全てのスコープをイベントの対象とし、障害閾値の 5
まで深刻度を上げる設定です。
イベントの設定 で、深刻度名 router error
を指定しスコープステータスが「障害」となるように設定しているため、両方の要素が揃って初めてアクションが発生するよう設定しています。
意図しない送信元からのメールメッセージを除外したい
AlertHub でメールによるメッセージを受信してアクションを実行する場合に、特定の送信元から送られたメールであることを簡易的にチェックする設定方法を記載します。
本設定により、想定しない送信元からのメールについては処理を行わないようにできます。
設定のポイント
ルールの処理フローもしくはランブックのブランチステップで、メール内容が想定している送信元のものであるか条件判断します。
条件判断にはメールヘッダーの以下の情報を利用します。
- Received
- From
メールヘッダーについては偽装の可能性が一切ないとは言えないため、完全な方法ではないことにご留意ください。
受信スロットの作成
受信スロットを作成します。
画面横のメニューから「受信スロット」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- メールを選択します
- 任意の表示名を入力します
- 保存をクリックします
受信スロットが作成され、一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、アラートの送信先となるメールアドレスを取得します。
アクションの作成
アクションを作成します。
画面横のメニューから「アクション」をクリックし、画面右上の「メール」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
ここでは、受信したメールをそのまま転送するアクションとするため、件名と本文は受信したメッセージの内容を利用します。
- 任意の表示名を入力します
- メール送信先の名前とメールアドレスを入力します
- 送信するメールの件名を入力します
- 送信するメールの本文を入力します
- 保存ボタンをクリックします
通知内容の設定については、Kompira AlertHub 基本マニュアル > 設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
ランブックの作成
ランブックを作成します。
ランブックでは、ブランチステップを利用して以下の点を確認します。
- Received ヘッダーに想定する送信メールサーバーのアドレスが含まれていること
- From ヘッダーに想定する送信元メールアドレスが含まれていること
画面横のメニューから「ランブック」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、任意の表示名を入力し保存をクリックします。
ランブックのフロー編集画面が表示されるため、左上の「+」マークをクリックします。
ブランチステップの「フィールドが文字列を含むかどうか確認する」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
message.metadata.headers.Received.0
を入力します- 想定される送信メールサーバーのアドレスを入力します
- プルダウンより「を含む」を選択します
- 保存ボタンをクリックします
ここでは、Received
ヘッダーの 1 番目の要素の内容をチェックしています。
再度、左上の「+」マークをクリックし、ブランチステップの「フィールドが文字列を含むかどうか確認する」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
message.metadata.from.email
を入力します- 想定される送信元メールアドレスを入力します
- プルダウンより「を含む」を選択します
- 保存ボタンをクリックします
最後にアクションステップを追加します。
アクションの作成 で作成したアクションをクリックします。
ダイアログが表示されるため、任意の表示名を入力し保存ボタンをクリックします。
各ステップを以下の通りに並べ、黄色くハイライトされている通りに繋げます。
フローが完成したら、右上の保存ボタンをクリックします。
受信スロットからランブックを呼び出す設定
ランブックを受信スロットから直接呼び出すために、受信スロットを編集します。
作成したランブックをプルダウンから選択し、保存ボタンをクリックします。
動作確認
動作確認を行います。
受信スロットのメールアドレスへ、意図している送信元からメールを送信します。
ランブックの各ステップの実行が正常に完了し、メールが転送されました。
AlertHub 全体の仕組み
AlertHub の構成要素と AlertHub がアラートを受信してからアクションを発生させるまでの一連の流れについて説明します。
AlertHub の構成要素
AlertHub を構成する基本的な要素と役割について記載します。
- スコープ:監視対象のひとまとまりを指す
- 受信スロット:監視対象からアラートを受信する
- ルール:アラートの内容を見て仕分けをする
- イベント:ルールによって発生し、スコープの深刻度1を増減させる
- トリガー:イベントの発生によりアクションを行うか判断する
- アクション:AlertHub から通知や連携する
- ランブック:AlertHub で行う条件判断やアクション実行を柔軟に行うための機能
以下より、AlertHub での一連の流れについて説明します。
アラートを受信する
AlertHub は、まず各ツールやサービスのアラートを一度全て受信スロットで受信します。
アラートを仕分ける
受信スロットに受信したアラートを設定したルールに基づいて仕分け、イベントを発生させます。
この部分をランブックに置き換えて、さらに詳しく条件を加えたり次のステップであるトリガーを介さずにアクションを発生させることも可能です。
アクションを発生させる
イベントが発生すると、設定に応じて各スコープの深刻度1が増減します。
深刻度の増減やイベントの内容といった実行条件に応じて、トリガーがアクションを発生させます。
この部分もランブックに置き換えることができ、さらに処理を分岐させてイベントの内容によりアクションを変更する等の設定が可能です。
深刻度は、各スコープのステータスを変更するための数値です。
ステータスはスコープの状態を表し「正常」「警戒」「障害」の三段階があります。