アクションとして利用
以下の通りアラート一次対応を行うランブックの設定例を示します。
- アラートが発生した機器の上位機器に該当するスコープの深刻度をチェックする
- 深刻度が「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 パースします。
深刻度「0」と一致しているか判断
直前のステップにて JSON パースされた深刻度の情報が body.severity
フィールドに保存されたため、その値を数値比較します。
比較結果により、処理を分岐させます。
インシデントを起票
アクション内容
ランブックが実行される起因となったメッセージの情報を含めて Webhook アクションによりインシデント起票をします。
アクションのレスポンス
ここでは、正常にインシデントが起票された場合、以下のような形式でレスポンスが返却されるイメージとしています。
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"url": "https://example.com/incident/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/"
}
インシデント起票のレスポンスをJSONパース
直前のステップにて返ってきたレスポンス内容を後続のステップにて扱いやすい形に加工して保存します。
steps.[ステップID].output.body
でステップ ID が示すステップのレスポンスボディを指定してレスポンスを JSON パースします。
メール通知
ランブックが実行される起因となったメッセージの情報と直前のステップで起票したインシデントにアクセスするための URL を記載しメールを送信します。
Slack通知
ランブックが実行される起因となったメッセージの情報を記載し Webhook アクションにて Slack 通知をします。
詳細は Kompira cloud 共通メニューの API ドキュメントを参照してください。