こんにちは、MSPの後藤田です。
弊社では、インシデント管理プラットフォームのPagerDutyを活用し、アラートに対して24時間365日体制で対応しています。

今回は、PagerDutyの機能を組み合わせて、社内エスカレーションをより円滑に行う方法の一例をご紹介します。
記事の流れとしては、半自動でエスカレーションを行う仕組みについての設定方法と、実際の動きについてデモンストレーションを交えて紹介していきます。

完成系のイメージ

まずは、今回紹介する設定で、実現できるフローの完成イメージをお伝えします。

1. アラート発報
2. 初回アサインされるMSPが確認(Acknowledged)
3. 担当部署へPagerDutyの機能を使ってエスカレーション
⚫︎2クリックで、Slack連携およびエスカレーションポリシーに基づいて担当部署に通知(電話連絡、メッセージ通知など)を行う。

このフローにより、社内エスカレーションの際に手動で連絡をする手間を省き、ワークフローを動かすだけで迅速なエスカレーションが可能になります。
また、必要最小限の操作(2クリック)になるので、誰でも同じようにエスカレーションを行うことができます。
本記事ではどのように設定を行い、「ワークフローで迅速なエスカレーションが出来るか。」についてのみに焦点を絞っていますのでご了承ください。

ユースケース

今回紹介する方法の効果的なユースケースとしては、以下のシナリオを想定してます。

1.PagerDutyのインシデントを別のチームに割り当てるケース
・(例)MSPから担当部署へのエスカレーションを行う場合
2.割り当て先がサービスによって異なる場合
・各サービスに応じて異なる担当部署に割り当てる必要がある場合。
3. エスカレーション方法の標準化を行いたい場合
・アラート対応者が複数人いる場合、エスカレーション方法が人によって異なる場合がある。

上記のようなケースで、今回紹介するエスカレーション方法が有効に機能すると考えています。

登場するPagerDutyの用語、機能の紹介

本題に入る前に、今回の設定に使用するPagerDutyの用語と機能について簡単に説明します。

1.Escalation policy(エスカレーションポリシー)
インシデント発生時に誰に、どの順番で通知するかを事前に設定するポリシーです。複数の担当者やチームに対して、段階的に通知を行うことが可能です。

2.Escalate(エスカレート)
インシデント対応が、エスカレーションポリシーの次のレベルのオンコール担当者に移動することを「エスカレート」と呼びます。担当者が応答しない場合(Acknowledgedされない)には自動的にエスカレートされます。インシデントが解決されない場合は、手動でエスカレーションすることも可能です。

3.Reassign (リアサイン_再割り当て)
インシデントを、別のユーザまたはチームに割り当てることができます。インシデントを再割り当てする場合、別のエスカレーションポリシー、アカウント内の任意のユーザー、または現在のエスカレーションポリシー内の別のレベルに割り当てることができます。

4.インシデントワークフロー
インシデント対応時の手作業を自動化する機能で、ノーコードでカスタマイズ可能なインシデント対応のワークフローを作成できます。
「Conditional Trigger(条件によるトリガー)」と「Manual Trigger(手動トリガー)」の2種類があり、事前に定義された対応をワークフローとして動かすだけで作業を自動化できます。

設定編

設定手順の解説

0.前提

サービスの作成方法や各種通知等の基本設定は割愛してます。

1.エスカレーションポリシーを作成する


事前にエスカレーション先を定義し、対象のエスカレーションポリシーを作成します。
(1) People > Escalation Policies を開き、画面右上の「+ New Escalation Policy」をクリック


(2) Escalation Policyの各項目を作成する。

2.インシデントワークフローを作成する

ここでは、「Manual Trigger(手動トリガー)」で以下の作業を自動化します。

1.規定のSlackチャンネルに、メンションを付けてメッセージを送る
2.規定のエスカレーションポリシーにリアサインを行い、担当部署へのエスカレーションを行う。

(1)Automation > Incident Workflows をクリックする


(2)New Workflowをクリック


(3)Create Incident Workflowを設定する


(4)Builderタブでワークフローの設定をする

(5)Add action > Slack > Send a Message to Channelをクリックし設定を進める

(6) + をクリック > PagerDuty Incident Management > Reassign the Incidentを選択し設定を進める

これで設定自体は完了となります。次は実際の動きを確認してみます。

実践編

デモンストレーション

ここでは、実際の動きを見てどのようにエスカレーションが行われるかをデモンストレーションしていきます。

1.アラート発報

⚫︎アラートが発報され、MSPが確認を開始します

2.MSP から 担当部署へエスカレーション

⚫︎Run Workflow > Incident Workflowsから作成したワークフローをクリック
この最小限の操作を実行後は、自動でワークフローの定義通りにエスカレーションが行われます。

3.自動でSlackに連携

4.自動でエスカレーションポリシーにリアサインされ、エスカレーションが開始される

まとめ

以上が、PagerDutyを活用した半自動エスカレーションの設定方法と実際の動作例です。
この仕組みを導入することで、対応にかかる時間を大幅に短縮し、手動連絡によるミスや遅延を防ぐことに役立ちます。
特に、複数のサービスからインシデントが同時に発生するような状況においても、迅速かつ正確なエスカレーションが可能となります。

今回紹介したのはあくまで一例となります。インシデントワークフローも、様々な使い方ができますので気になる方は一度触ってみてください。

本記事で紹介した方法が、皆様のエスカレーションフローの最適化に少しでもお役に立てば幸いです。