複数情報の組み合わせによる深刻度でアラートを集約する
Kompira AlertHub では、受信したメッセージ内の情報を「深刻度」として扱い、アクションを実行するかどうかの判断基準として利用することができます。
この深刻度の名前に、受信メッセージ内の複数の情報を組み合わせた値を使用することで、単純な条件設定では難しい「特定の組み合わせが 5 回発生したときにのみメール通知する」といった高度な制御が可能になります。
本例では、受信メールに含まれる「ホスト名」と「イベント」を組み合わせてひとつの深刻度として管理し、その発生回数に応じて通知を行う設定方法を解説します。
本設定例では、以下の形式のメールを受信することを想定します。
検知時刻:12:00:00
ステータス:PROBLEM
重要度:Average
ホスト名:testhost
発生イベント:ルーター異常
設定のポイント
以下の手順でランブックを設定し、受信メッセージ内の「ホスト名」と「イベント」を組み合わせた深刻度をカウントアップさせるイベントを発行します。
- 受信メッセージから「ホスト名」を取り出す
- オペレータステップから「フィールドから正規表現によって値を1つ取り出す」を選択
- 「ホスト名」を取り出す正規表現と、取り出した値を保存する任意のフィールド名を設定
- オペレータステップから「フィールドから正規表現によって値を1つ取り出す」を選択
- 受信メッセージから「発生イベント」を取り出す
- オペレータステップから「フィールドから正規表現によって値を1つ取り出す」を選択
- 「発生イベント」を取り出す正規表現と、取り出した値を保存する任意のフィールド名を設定
- オペレータステップから「フィールドから正規表現によって値を1つ取り出す」を選択
- オペレーターステップから取り出した 2 つのフィールドを結合
- オペレーターステップから「2つのフィールドを結合する」を選択
- 「
1で指定したフィールドと2で指定したフィールドを結合して任意のフィールドに保存する」と設定
- 「
- オペレーターステップから「2つのフィールドを結合する」を選択
- 3で指定したフィールド名の深刻度を1増やす
- イベントステップから「対象スコープを直接指定して、深刻度名を受信データのパスで指定」を選択
- スコープ
- イベントを発生させるスコープをプルダウンで選択
- 深刻度
- 「深刻度名
3で指定したフィールドを1増やす」と設定
- 「深刻度名
- スコープ
- イベントステップから「対象スコープを直接指定して、深刻度名を受信データのパスで指定」を選択
以下より、設定の手順を記載します。
スコープを作成する
深刻度の上昇をトリガーにアクションを起動させるスコープを作成します。本例では複数のサーバから構成される「システム」単位でスコープを用意します。
画面横のメニューから「スコープ」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 警戒判定閾値に任意の数値を設定します
- 障害判定閾値に任意の数値を設定します
- 保存をクリックします
受信スロットに紐づけるランブックを作成する
受信メッセージの複数項目を結合させた深刻度名で、深刻度を上昇させるランブックを作成します。
ランブックで実施することは以下の通りです。
- メールからホスト名を取り出す
- メールから発生イベントを取り出す
- 取り出した 2 つを結合する
- 結合した文字列を使用して、スコープの深刻度を上昇させる
ランブックをクリックします。
ランブックの新規作成をクリックします。(ここで作成されるランブックをランブックAとします)
ダイアログが表示されるため、任意の表示名を入力し保存をクリックします。
ランブックのフロー編集画面が表示されるため、左上の「+」マークをクリックします。
「フィールドから正規表現によって値をひとつ取り出す」を選択し、正規表現によってメールからホスト名を取り出し、適当なフィールド(ここでの格納先は
hostname としています)に格納するオペレーターを作成します。
また、同じ手順で正規表現によってメールから発生イベントを取り出し、フィールドに格納するオペレーターを作成します。(ここでの格納先は
occurred_event としています)
左上の「+」マークをクリックし、「2つのフィールドを結合する」を選択します。
①と②に先ほどホスト名と発生イベントを格納したフィールド名を入力し、③に結合後の文字列を格納するフィールド名を指定して保存します。
今回の受信メールで、上記処理を実施した場合、
hostname には「testhost」、occurred_event には「ルーター異常」が格納され、
severityname には「testhostルーター異常」という文字列が格納されます。
左上の「+」マークをクリックし、「対象スコープを直接指定して、深刻度名を受信データのパスで指定」を選択します。
スコープに スコープを作成する で作成したスコープを指定し、受信データには結合文字列を格納したフィールドを指定して保存します1。
最後に、各ステップを矢印で結び、保存してください。
受信スロットの作成
受信スロットを作成します。
画面横のメニューから「受信スロット」をクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 種別はメールを選択します
- 表示名は任意に入力します
- ランブック欄は 受信スロットに紐づけるランブックを作成する で作成したランブックAを指定します
- 保存をクリックします
受信スロットが作成され、一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、メールアドレスを取得します。
メール通知のアクションを作成する
アクションを作成します。
画面横のメニューから「アクション」をクリックし、画面右上の「メール」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 送信先のメールアドレスを入力します
- 件名を入力します
- 本文欄に記載したい内容を入力します
- 保存ボタンをクリックします
スコープにトリガーを作成する
画面横のメニューから「スコープ」をクリックし、スコープを作成する で作成したスコープをクリックします。
詳細画面で「トリガー」タブをクリックし、画面右端の「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- メール通知を行うための深刻度の増加に関わる任意の実行条件を指定します
- 例えば以下のように指定します
- 「指定条件を満たす直近のイベント件数を指定値と比較する」を選択し、「過去
1800秒間に深刻度の変化量が1と等しいイベントが5以上の回数発生した」を条件に追加します
- 「指定条件を満たす直近のイベント件数を指定値と比較する」を選択し、「過去
- 例えば以下のように指定します
- 実行にはアクションを選択し、プルダウンメニューからメール通知のアクションを作成する で作成したアクションを指定します
- 最後に保存ボタンをクリックします
動作確認
動作確認を行います。
実際に例にあげた文面のメールを送信すると、以下の通りスコープの「testhostルータ異常」深刻度が変化しています。
次にホスト名が「testhost2」であるメールを送信すると、以下の通りスコープの「testhost2ルータ異常」深刻度が変化します。
このようにメール内の複数の要素を組み合わせて、深刻度を管理することができます。
ホスト名と発生イベントが同一の組み合わせであるメールを 5 通送信すると、深刻度が 5 となり、アクションが実行された履歴が表示されます。
最後にアクションに指定したメール送信先で以下のようなメールを受信できていることを確認します。
この例では単純にスコープを直接指定していますが、メール内の情報(本文、件名、送信元メールアドレスなど)から異常が発生したシステムを特定し、そのシステムに対応するスコープの深刻度を上げるような制御も可能です。詳しくは 2.10. ホストごとにスコープを登録しているが、同一の障害アラートで同時に深刻度を上昇させたい にてご紹介しています