Event Orchestrationによる自動実行
この演習では、PagerDutyでEventを受信した際に、Event Orchestrationのルールに基づいてAcutomation Actionを自動実行する方法を学びます。
Event Orchestrationの設定#
今回は各Service固有のルールを管理する、Service Orchestration Rulesを利用します。
参考: PagerDuty 設定ガイド (トリアージ編4) - Event Orchestrationでアラートへの対処を自動化する
-
PagerDutyにログインし、上部メニューの Services > Service Directory を開き、以前作成したServiceをクリックします。
-
Serviceの詳細画面が開いたら、Settingsタブをクリックします。
-
Settignsタブ内を下にスクロールし、Event Managementの箇所にある View Event Orchestration Rulesボタンをクリックします。
-
Service Orchestration Rulesの設定画面が開いたら、+ New Ruleボタンをクリックします。
-
Condition設定画面では、ルールを適用する条件を指定します。右側に以前送信したEventのデータが確認できるので、今回はこれを利用して条件を作成します。
画面右側に表示されている過去のEvent名をクリックします。 -
Eventに含まれていたデータが表示されるので、今回は
"group": "prod-datapipe"
をクリックしてみます。 -
左側の条件に「Groupフィールドに prod-datapipe が含まれていること」という条件が追加されました。
+Andボタンをクリックします。 -
"severity": "critical"
をクリックします。
以上で、「Groupフィールドに prod-datapipe が含まれている」かつ「Severityフィールドに critical が含まれている」という条件が設定できました。Nextをクリックしてください。 -
次は条件に一致した場合に、どのような処理を行うのかについて設定を行います。
左メニューのAutomation Actionsをクリックし、右画面のプルダウンメニューから以前作成したAutomation Actionを選択してください。画面右下のSaveをクリックします。 -
以上で、Service Orchestration Ruleが作成できました。
今後は"group": "prod-datapipe"
を含むEventをこのServiceで受信すると、Automation Actionが自動実行されます。
EventによるAutomation Actionのトリガー#
-
PagerDuty Event APIv2のリファレンスページをブラウザで開きます。
-
画面右のBody編集画面内で、routing_keyの値に以前保存したIntegration Keyの値を入力し、Send API Requestボタンをクリックしてください。
PagerDutyで正常にリクエストが受け付けられると、Response画面に 202 Accepted が表示されます。 -
PagerDutyにログインし、AIOps > Operations Consoleを開きます。
(AIOpsメニューが表示されない場合は、Incidents > All Incidentsを開いてください。)
表示されているインシデントのタイトルをクリックし、詳細画面を開きます。 -
インシデント詳細画面を下にスクロールし、Timelineタブを開きます。自動診断の実行結果が出力されていれば成功です。
トラブルシューティング#
Eventを送ってもインシデントが作成されない場合、以下を確認してください。
-
以前作成したインシデントが残っていないか:
Triggered
またはAcknowledged
ステータスのままの同一インシデントが残っていると、PagerDutyは新しくインシデントを作成せずに既存のインシデントにアラートを集約します。インシデントをResolveした後に、再度Eventを送信してください。 -
Eventを送信する際に、正しいIntegration Keyの値を指定しているか:
Integration Keyは Services > Service Directory から対象のサービスを選択し、Integrationsタブを開くと確認することができます。
以上で、PagerDutyで特定のEventを受信した際に、Automation Actionを自動実行することができました。
次はRBAで少し高度なワークフローを作成する方法を学びます。