アクションとして利用

以下の通りアラート一次対応を行うランブックの設定例を示します。

  • アラートが発生した機器の上位機器に該当するスコープの深刻度をチェックする
  • 深刻度が「0」の場合にインシデント起票をし、それ以外の場合は起票せずに Slack へ通知する
  • インシデント起票した後にはメール通知を行う
  • 通知するメールの文面にはアラートの内容とインシデントへのリンクを記載する

ランブックの全体は下図のようになります。

以下より、各ステップの設定やアクションの内容の詳細について説明します。

上位機種のスコープの深刻度を取得

アクション内容

同じスペースの特定のスコープの深刻度を Kompira cloud の API /api/apps/alerthub/scopes/{scopeId}/severities/{severityName} により取得します。1

アクションのレスポンス

深刻度は以下のような形式でレスポンスとして返却されます。

{
  "name": "test",
  "severity": 0
}

深刻度取得のレスポンスを JSON パース

JSON パースを挟むことにより、後続のステップで情報を扱いやすい形に加工して保存します。

steps.[ステップID].output.body でステップ ID が示すステップのレスポンスボディを指定してレスポンスを JSON パースします。

chrome_pOxXrPyj58

深刻度「0」と一致しているか判断

直前のステップにて JSON パースされた深刻度の情報が body.severity フィールドに保存されたため、その値を数値比較します。

比較結果により、処理を分岐させます。

chrome_oClhxnYObB

インシデントを起票

アクション内容

ランブックが実行される起因となったメッセージの情報を含めて Webhook アクションによりインシデント起票をします。

アクションのレスポンス

ここでは、正常にインシデントが起票された場合、以下のような形式でレスポンスが返却されるイメージとしています。

{
  "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
  "url": "https://example.com/incident/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/"
}

インシデント起票のレスポンスをJSONパース

直前のステップにて返ってきたレスポンス内容を後続のステップにて扱いやすい形に加工して保存します。

steps.[ステップID].output.body でステップ ID が示すステップのレスポンスボディを指定してレスポンスを JSON パースします。

chrome_NIKpXVYIpk

メール通知

ランブックが実行される起因となったメッセージの情報と直前のステップで起票したインシデントにアクセスするための URL を記載しメールを送信します。

chrome_NIKpXVYIpk

Slack通知

ランブックが実行される起因となったメッセージの情報を記載し Webhook アクションにて Slack 通知をします。

chrome_NIKpXVYIpk
1

詳細は Kompira cloud 共通メニューの API ドキュメントを参照してください。