スタートガイド > 3. アラートを受け取って自動対応しよう > 3-2. アラートの種類によって対応を分けたい

3-2. アラートの種類によって対応を分けたい

受信したアラートが件名にWARNINGを含む場合とNOTICEを含む場合でそれぞれ異なる対応を行うケースの実現例を示します。

1. 要件

1-1. 監視対象サービス

  • 危険度の高いアラートが発生したら、件名に WARNING を含むメールをOpsAidへ送信する
  • 危険度の低いアラートが発生したら、件名に NOTICE を含むメールをOpsAidへ送信する

1-2. OpsAid

  • 件名に WARNING を含むアラートを受信したら、担当者のユーザー01(組織に登録済み)に電話発信し、GithubにIssueを起票する
  • 件名に NOTICE を含むアラートを受信したら、GithubにIssueを起票する(電話発信は行わない)

1-3. Github

2. OpsAidの登録内容

以下の内容で、OpsAid側のアラート受信準備を行います。

2-1. プロジェクト作成

1-1. プロジェクトを用意しように従って、アラートを受信するプロジェクトを作成します。 アラートを受信するプロジェクトが既に作成されている場合は、このセクションは飛ばして構いません。

プロジェクトのメールアドレスが発行されたら、メモを取っておきます。

2-2. 担当者ユーザーをプロジェクトに追加

2-1. で用意したプロジェクトに、担当者のユーザー01のユーザーを追加します。
設定方法は

3-1. アラートが発生したら担当者に電話で通知したい
 > 2-2. 担当者ユーザーをプロジェクトに追加

を参照してください。

2-3. ルール登録

アラートを受信するプロジェクトに、ルールを2件登録します。
ルールの条件には以下の内容を設定します。

1件目

ルールの基本設定

  • ルール名: アラート受信ルール:WARNING
  • ルールの適用順序:1

マッチ条件

「キーワード条件で設定する」のタブを選択します。

  • キーワード条件
    • 「件名」に「WARNING」が「含まれる」

件名に WARNING を含むアラートを受信したら、このルールを適用します。

アクション設定

  • 自動コール
    • 呼び出し秒数: 20秒
    • リトライ回数: 2
    • 連絡先1: ユーザー01の電話番号

このルールが適用されたら、連絡先1のユーザー01の電話番号に電話を発信します。20秒間呼び出しを行い、応答があった場合は、結果[OK]でアクションを終了します。応答がなかった場合は、リトライ回数2回まで再度連絡先1に発信します。すべての発信で応答がなかった場合は、結果[NG]でアクションを終了します。

  • Github
    • 認証情報: 直接入力
    • API KEY: 起票するGithubユーザーのPersonal Access Key
    • オーナー名: andotasco
    • リポジトリ名: service01
    • Issueのタイトル: 【WARNING】アラート発生
    • Issueの内容
@ando-tasco
アラートが発生しました。至急確認して対応してください。
----------------------------------------
${SUBJECT}
${BODY}
----------------------------------------
${URL}

Issueの内容には、受信したアラートに関連する情報を埋め込むことが可能です。ここでは${SUBJECT}でアラートの件名、${BODY}でアラートの本文、${URL}でインシデント詳細画面のURLを埋め込みます。

このルールが適用されたら、 andotasco/service01 のGithubへIssueを投稿します。
投稿に成功したら、結果[OK]でアクションを終了します。投稿に失敗した場合は、結果[NG]でアクションを終了します。

インシデント設定

  • 条件にマッチした場合に作成するインシデントの設定
    • ステータス: 完了
    • 担当者: ユーザー01

その他の項目は任意で設定します。


2件目

ルールの基本設定

  • ルール名: アラート受信ルール:NOTICE
  • ルールの適用順序:2

マッチ条件

「キーワード条件で設定する」のタブを選択します。

  • キーワード条件
    • 「件名」に「NOTICE」が「含まれる」

件名に NOTICE を含むアラートを受信したら、このルールを適用します。

アクション

  • Github
    • 認証情報: 直接入力
    • API KEY: 起票するGithubユーザーのPersonal Access Key
    • オーナー名: andotasco
    • リポジトリ名: service01
    • Issueのタイトル: 【NOTICE】アラート発生
    • Issueの内容
@ando-tasco
アラートが発生しました。サービスを確認してください。
----------------------------------------
${SUBJECT}
${BODY}
----------------------------------------
${URL}

インシデント設定

  • 条件にマッチした場合に作成するインシデントの設定
    • ステータス: 完了
    • 担当者: ユーザー01

その他の項目は任意で設定します。


2件のルールが設定できたら、OpsAidのアラート受信準備は完了です。

3. アラート受信時の動き

上記のルールをプロジェクトに登録した状態で、監視対象サービスでアラートが発生すると、以下の流れでアラートの自動対応が行われます。

3-1. WARNINGアラートの場合

  1. 監視対象サービスから、プロジェクトのメールアドレスへ向けて、件名にWARNINGを含むアラートを送信する
  2. OpsAidでプロジェクトがアラートを受信する
  3. プロジェクトに登録されたルールに、アラートがマッチするかチェックする。アラートの件名にWARNINGが含まれているので、アラート受信ルール:WARNINGの実行条件にマッチする
  4. ルールの実行条件にマッチしたので、自動でルールのアクションが実行される
    • ユーザー01へ電話発信が行われる
    • andotasco/service01 のGithubへIssueが投稿される
  5. ルールの実行条件にマッチしたので、自動でインシデントが起票される
  6. 全てのアクションの結果を受けて、ルールの実行結果が起票したインシデントに記録される

3-2. NOTICEアラートの場合

  1. 監視対象サービスから、プロジェクトのメールアドレスへ向けて、件名にNOTICEを含むアラートを送信する
  2. OpsAidでプロジェクトがアラートを受信する
  3. プロジェクトに登録されたルールに、アラートがマッチするかチェックする。アラートの件名にNOTICEが含まれているので、アラート受信ルール:NOTICEの実行条件にマッチする
  4. ルールの実行条件にマッチしたので、自動でルールのアクションが実行される
    • andotasco/service01 のGithubへIssueが投稿される
  5. ルールの実行条件にマッチしたので、自動でインシデントが起票される
  6. 全てのアクションの結果を受けて、ルールの実行結果が起票したインシデントに記録される

以上で、OpsAidの自動対応が終了します。


以上の設定を行うことで、受信したアラートが件名にWARNINGを含む場合とNOTICEを含む場合でそれぞれ異なる対応を行うケースの実現が可能です。

次は 3-3. 同じアラートを5分間に3回受け取ったら、監視メンバー(複数名)に電話で通知したい に進みます。