メインコンテンツまでスキップ

通報前に外部システムの状態を自動チェックして不要な通報を抑制する

概要の説明

障害通報の運用では、監視アラートが発生した時点ですでにシステムが回復していることがあります。そのような場合でも従来の設定では通報が飛んでしまい、対応者が混乱したり不要な対応工数が発生したりすることがあります。

通報前ワークフローを使うと、パターンマッチ後・通報実行前に任意の処理を自動実行できます。これにより次のような運用が実現できます。

  • 障害対象システムの稼働状態を確認し、すでに回復していれば通報しない
  • 外部 API を呼び出して追加情報を取得してから通報する
  • 複数の条件を組み合わせて通報の要否を判断する

この記事では、通報前に外部システムへ HTTP GET を送り、200 が返れば正常稼働と判断して通報を抑制するフローを例に、設定から結果確認までを説明します。

設定の流れ

  1. ワークフローを作成する
  2. パターンの通報前ワークフローに設定する
  3. 実行結果を確認する

ワークフローを作成する

① パターン管理の通報前ワークフロー設定を開く

パターン管理画面で対象パターンを開き、「通報前ワークフロー設定」の「ワークフロー選択」ボタンをクリックします。

注意

通報前ワークフローはパターンタイプが単発・集約・件数指定の場合のみ利用できます。

② 新しいワークフローを作成する

ワークフロー一覧画面が開きます。右上の + ボタンをクリックして新規作成画面へ進みます。

③ 基本情報を入力する

「基本情報」タブでワークフローの名前を入力します。

④ ワークフローのフローを定義する

「ワークフロー」タブでノードを配置してフローを定義します。

今回の例では次のフローを作成します。

開始 → HTTPステータスチェック → (200 の場合)→ 終了(通報停止)
→ (200 以外の場合)→ 終了(通報実行)
  1. ノードメニューから HTTP ステータスチェック部品をドラッグ&ドロップして配置します。
  2. ノードの設定ボタンをクリックし、チェック先の URL を入力します(例: https://your-system.example.com/health)。
  3. パス部品を 2 つ追加して「成功(200)」と「失敗」の分岐を作ります。
  4. ステータスチェック成功側の終了ノードに、通報停止メッセージを設定します。

通報停止メッセージ

終了ノードの「出力」に以下の JSON を設定すると、そのパスを通ったときに通報が停止されます。

{
"amc_do_report": false
}

YAML で確認する場合

「YAML」タブで直接 YAML を確認・編集できます。上記のフローは次のような YAML になります。

備考

通報前ワークフローでは実行時にインプットパラメータを指定できないため、URL などの値はワークフロー定義内に固定値として記述します。

version: 1
tasks:
start:
action: core.pass
next: status_check
status_check:
action: core.http_status_check
url: https://your-system.example.com/health
on_success: skip
on_failure: notify
skip:
action: core.end
output:
amc_do_report: false
notify:
action: core.end
output:
result: error
  1. 設定が完了したら「保存」をクリックします。
備考

ワークフローのノード設定や部品の詳細については ワークフロー基盤機能 を参照してください。

パターンの通報前ワークフローに設定する

① ワークフローをパターンに紐付ける

ワークフロー一覧画面に戻り、作成したワークフローの「選択」ボタンをクリックしてパターンに反映します。

パターン編集画面の「通報前ワークフロー設定」欄に選択したワークフロー名が表示されていることを確認し、パターンを保存します。

備考

パターンの通報前ワークフロー設定の詳細については パターン管理 - 通報前ワークフロー を参照してください。

実行結果を確認する

監視アラートがパターンにマッチすると、通報前ワークフローが自動実行されます。実行結果はエスカレーション履歴から確認できます。

① エスカレーション履歴を開く

エスカレーション履歴一覧から対象のエスカレーションをクリックして詳細を開きます。

② 通報前ワークフローの実行結果を確認する

詳細画面の「通報前ワークフロー」欄で実行結果を確認します。

「詳細情報」タブでは、フローへのインプットパラメータやノードごとの出力内容を確認できます。

備考

実行結果の確認方法の詳細については 通報前ワークフロー - 実行結果の確認方法 を参照してください。