スタートガイド > 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
- Issueを起票するGithubは andotasco/service01 とする
-
Issueを起票するGithub ユーザーで Personal Access Token を取得しておく
コマンドライン用の個人アクセストークンを作成する - Githubヘルプ権限は repo(Full control of private repositories) にチェックを付けておく
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
アラートの場合
- 監視対象サービスから、プロジェクトのメールアドレスへ向けて、件名に
WARNING
を含むアラートを送信する - OpsAidでプロジェクトがアラートを受信する
- プロジェクトに登録されたルールに、アラートがマッチするかチェックする。アラートの件名に
WARNING
が含まれているので、アラート受信ルール:WARNINGの実行条件にマッチする - ルールの実行条件にマッチしたので、自動でルールのアクションが実行される
- ユーザー01へ電話発信が行われる
- andotasco/service01 のGithubへIssueが投稿される
- ルールの実行条件にマッチしたので、自動でインシデントが起票される
- 全てのアクションの結果を受けて、ルールの実行結果が起票したインシデントに記録される
3-2. NOTICE
アラートの場合
- 監視対象サービスから、プロジェクトのメールアドレスへ向けて、件名に
NOTICE
を含むアラートを送信する - OpsAidでプロジェクトがアラートを受信する
- プロジェクトに登録されたルールに、アラートがマッチするかチェックする。アラートの件名に
NOTICE
が含まれているので、アラート受信ルール:NOTICEの実行条件にマッチする - ルールの実行条件にマッチしたので、自動でルールのアクションが実行される
- andotasco/service01 のGithubへIssueが投稿される
- ルールの実行条件にマッチしたので、自動でインシデントが起票される
- 全てのアクションの結果を受けて、ルールの実行結果が起票したインシデントに記録される
以上で、OpsAidの自動対応が終了します。
以上の設定を行うことで、受信したアラートが件名にWARNING
を含む場合とNOTICE
を含む場合でそれぞれ異なる対応を行うケースの実現が可能です。