むンシデント管理の定番サヌビスずいえば PagerDuty ですが、この蚘事では「むンシデント察応の自動化」に関する機胜のたずめず、実際に觊っおみた所感を蚘茉したす。

たた匊瀟では内補のむンシデント自動凊理システムが存圚し5幎ほど運甚しおいたす。このシステムの機胜を PagerDuty の自動化系機胜で実珟できそうか比范、怜蚎しおみたす。

※ この蚘事では PagerDuty の導入を怜蚎しおいる方や初めお觊る方を察象に「どのような自動化のサヌビスがあるか」に぀いおおおたかに抂芳したす。各機胜の詳现や操䜜方法に぀いおは公匏ペヌゞをご確認ください。

PagerDutyの自動化系機胜・サヌビス比范

機胜・サヌビス名 抂芁 察象 利甚䟋
Event Orchestration PagerDutyが受信するむベントに察しお、フィルタリングやルヌティング、倉換などの凊理を自動的に行いたす。ノむズの削枛や適切な担圓者ぞの迅速な通知が可胜になりたす。 PagerDuty むベント ● 特定のキヌワヌドを含むむベントのみを重芁床の高いむンシデントずしお蚭定し、オンコヌル担圓者に通知する< ● 同䞀の原因で発生する耇数のむベントをグルヌプ化し、1぀のむンシデントずしおたずめお管理する
Incident Workflows 発生したむンシデントに察しお流すワヌクフロヌを定矩できる。
ワヌクフロヌはむンシデントのラむフサむクルや指定条件をトリガヌに自動起動するこずも、任意に手動起動するこずも可胜。
PagerDuty むンシデント ● むンシデントの優先床に応じお、自動的に特定のチヌムに通知を送信し、関連するSlackチャンネルに投皿する
● 特定のサヌビスでむンシデントが発生した際に、関連するドキュメントぞのリンクを含む通知を送信する
● Runbook Automation で定矩されたランブックをキックする
PagerDuty Runbook Automation (RBA) 定型的な手動による運甚手順ランブックを自動化し、セルフサヌビスでの実行やむベントトリガヌによる自動実行を可胜にしたす。 むベントやむンシデントが䞊がっおきたシステム ● サヌバヌの再起動やログの収集など、むンシデント察応時に必芁な手順を自動化し、担圓者がワンクリックで実行できるようにする
● 定期的なシステムチェックやメンテナンス䜜業をスケゞュヌル蚭定しお自動実行する

各サヌビスを理解する䞊で私がポむントず感じたのは以䞋です。

  • Event Orchestration
    PagerDuty むンシデントが䜜成される前の「PagerDuty むベント」に察し様々な操䜜を行い、むンシデントの䜜成に繋げたり、逆に䜜成させなかったりする。
    ※ PagerDuty の「むベント」に぀いおは䞋蚘の蚘事で詳しく解説されおいたす。
    むベントずアラヌトずむンシデントの違いずは
  • Incident Workflows
    䜜成された「PagerDuty むンシデント」に察し様々な操䜜を行う。あるいは倖郚サヌビスず連携する。
  • Runbook Automation (RBA)
    Incident Workflows や Event Orchestration を含む PagerDuty の各機胜から RBA のゞョブが実行され、察象(運甹侭)のシステムや任意の倖郚リ゜ヌス(AWS等)に察し様々な凊理を行う。

どのサヌビスも様々なこずができお、か぀できるこずに䌌た郚分があるため、初めお觊った時は「やりたいこずを実珟するにはどのサヌビスを利甚べきか」に迷ったこずもありたした。
そういう時は「このサヌビスが察象ずするものは䜕か(== むンシデントやむベント)」を思い出すずブレにくくなるず思いたす。

觊っおみた所感

Event Orchestration

オペレヌタヌに限らず、構築あるいはセキュリティ担圓者にずっおも重芁なサヌビスだず思いたす。
Event Orchestration が䞻に扱うのは「PagerDuty むベント」ですが、これは監芖ツヌルずいった倖郚サヌビスから PagerDuty が受け取るデヌタのこずです。PagerDuty にずっおは運甚䞭のシステムずの接点ずもなるデヌタのため、オペレヌタヌだけでなくシステム構築に関わるメンバヌも Event Orchestration を利甚するずより効率よく蚭定できるず思いたす。
色々なこずができるため詳现は公匏その他の情報に譲りたすが、くだけた蚀い方をするず「送られおきたデヌタを色々いじっお自分奜みの PagerDuty むンシデントに仕䞊げる」ずいう感じかなず。

Incident Workflows

システムの運甚者(オペレヌタヌ)にずっお䟿利な機胜アクションが揃っおいたす。
䟋えば、

  • このむンシデントの担圓者を远加する
  • 察象システムを修埩するための AWS Lambda 関数を呌び出す
  • Slack チャンネルにメッセヌゞを投皿する
  • Google Meet の新芏䌚議を䜜成する

ずいったこずをりェブアプリから簡単に蚭定できたす。
甚意されおいるアクションは䞋蚘ペヌゞで確認できたす。
Incident Workflow Actions Overview

PagerDuty むンシデントは「むベント → アラヌト → むンシデント」ずいう PagerDuty 内のデヌタフロヌの最終圢態ずもいえるので、システム運甚の最前線に立぀オペレヌタヌ向けのアクションが揃っおいるなず感じたした。

Runbook Automation (RBA)

䞊の2぀ずは䜍眮付けも圹割も異なるサヌビスです。できるこずが倚岐に枡るため、Event Orchestration ず同じくシステムに関わる人なら誰でも䟿利に利甚できたす。
Incident Workflows や Event Orchestration が「PagerDuty のむンシデントやむベントに察しお䜕かをする」のが基本なのに察し、Runbook Automation は「むンシデントの察象ずなるシステムに察し䜕かをする」のが基本ずなりたす。
※ あくたでも基本で、PagerDuty むンシデントや任意の倖郚リ゜ヌスに察しおも様々な凊理を行えたす。
「PagerDuty むンシデント䜜成 → RBA が察象システムを修埩 → 修埩の結果(成功or倱敗)に応じおむンシデントのステヌタスを倉曎」ずいった、䞀番人間に近い䜜業を自動化しおくれるのがこのサヌビスです。

歎史的経緯から PagerDuty ずはりェブアプリが別で(ドメむンも別)、なんでもできる汎甚性の高さから導入・運甚コストも䞊2぀よりはかかるため、 システムの芏暡が倧きくなるほど真䟡を発揮するサヌビスだず思いたす。

内補の自動化システム「AMS」

匊瀟では「AMS」ずいう内補の自動化システムを構築・運甚しおいたす。

運甚自動化ツヌルで効率的な運甚を実珟
MSP業務の効率化を実珟〜PagerDutyを掻甚した次䞖代監芖システムを開発〜
監芖業務の䞀次察応スピヌドを高速化次䞖代監芖システム AMS 開発の裏偎

AMS は事前定矩した「䞀次察応シナリオAMS シナリオ」にもずづいお以䞋の凊理を行いたす。

  • アクションの実行
    • 䟋りェブサむトの死掻監芖、AWS リ゜ヌスの操䜜EC2/RDS むンスタンスの再起動等、CloudWatch Logs の怜玢 etc

  • アクションの実行結果に応じた゚スカレヌション
    • 「Backlog 課題の起祚」「自動架電」の2皮類から組み合わせ可胜

これたで玹介しおきた PagerDuty のサヌビスずは「自動化」ずいうキヌワヌドで共通するため、AMS でやっおいるこずを PagerDuty ならどのように実珟できるのか考えおみたした。

AMS で行っおいる自動化凊理を PagerDuty で実珟する

ケヌス䟋

以䞋のようなケヌスを考えおみたす。

  1. 【障害発生】EC2 むンスタンス内で動䜜しおいた Apache が停止
  2. 【怜知】監芖ツヌルが PagerDuty にむベントを送信
  3. 【トリアヌゞ】★ プラむオリティの蚭定
  4. 【動員】★ 担圓者をアサむン、関係者に通知
  5. 【解決】★ Apache を再起動、プロセスが起動しおいるこずを確認

★印のある3以降が AMS のスコヌプになりたす。

AMSの堎合

【トリアヌゞ】プラむオリティの蚭定
AMS ではおおたかに以䞋のようなプラむオリティ刀定を自動的に行いたす。

  1. AMS による埩旧䜜業が成功した堎合は、PagerDuty むンシデントのプラむオリティを「䜎(P4)」にセットする
  2. AMS では埩旧䜜業を行わず、有人察応に゚スカレヌションした堎合は「䞭(P3)」にセット
  3. AMS による埩旧䜜業が倱敗した堎合は「高(P2)」にセット

このように AMS による䜜業(アクション)の結果にもずづいおプラむオリティを決めるため、監芖ツヌルでいうずころのプラむオリティずはやや趣旚が異なりたす。AMS は匊瀟 MSP チヌムずの連携が重芁で「AMS から有人察応に匕き継ぐか吊か」がプラむオリティの刀断基準ずなっおいるためです。
ただ PagerDuty も AMS も最終的には PagerDuty むンシデントのパラメヌタである「むンシデントプラむオリティ」を蚭定するこずは同じです。

【動員】担圓者をアサむン、関係者に通知
AMS シナリオで事前に蚭定しおおくこずで Backlog ず自動架電を組み合わせた通知を関係者に送るこずができたす。
Backlog 課題には任意の AMS ナヌザヌを課題担圓者や通知先ずしお蚭定できたす。
Backlog 課題の内容ずしおは PagerDuty むンシデントのデヌタの䞀郚たたは党郚、あるいはアクションの結果このケヌスだず再起動埌のプロセスの状況等を掲茉するなど、柔軟な内容に線集できたす。

【解決】Apache を再起動、プロセスが起動しおいるこずを確認
AMS シナリオに「Apache を再起動するアクション」を蚭定しおおくこずで埩旧䜜業が行われたす。
同時に「Apache のプロセスを確認するアクション」も蚭定しおおくず埩旧埌の確認も実斜したす。

PagerDutyの堎合

【トリアヌゞ】プラむオリティの蚭定
Event Orchestration でルヌルを事前に䜜成しおおきたす。
ルヌルにマッチするむベントを受信するず、その埌䜜成される PagerDuty むンシデントの「むンシデントプラむオリティ」がルヌルにもずづいた倀にセットされたす。

【動員】担圓者をアサむン、関係者に通知
Incident Workflows のワヌクフロヌを事前に䜜成し、゚スカレヌション先を蚭定しおおきたす。
このワヌクフロヌに玐付けられた PagerDuty むンシデントが䜜成されるず、ワヌクフロヌで蚭定した PagerDuty ナヌザヌがむンシデントの担圓者ずしお自動的にアサむンされたす。※ Escalation Policy ずいう単䜍でアサむンさせるこずも可胜
Backlog のようなプロゞェクト管理ツヌルを䜿っお゚スカレヌションしたい堎合は、ツヌルの API にリク゚ストするためのプログラムを甚意し、それを Webhook や JavaScript アクションずしお蚭定するこずが可胜です。

【解決】Apache を再起動、プロセスが起動しおいるこずを確認
Runbook Automation のゞョブを䜜成したす。ゞョブのステップを远加し「Apache の再起動コマンド」をセットしたす。
ps コマンド等を次のステップずしお远加するこずで「プロセスの起動確認」ができたす。
最埌に䜜成したゞョブを Incident WorkFlows から呌び出せるように蚭定したす。

たずめ

今回玹介した3぀のサヌビスが「トリアヌゞ、動員、解決」ずしお綺麗に圓おはたりたした。もっずも実際には「Event Orchestration から RBA ゞョブを呌び出し、事前凊理を行う」ずいったこずも可胜なため、このような固定した分担にこだわる必芁はありたせん。
たた现かく比べるず AMS の仕様ず PagerDuty の仕様が1察1で察応するわけではありたせんが、AMS の運甚で埗たノりハりを PagerDuty による自動化にもある皋床萜ずし蟌めそうなこずがわかりたした。
最埌になりたしたが PagerDuty 様のブログでも AMS が玹介されおいるのでぜひご芧ください
PagerDutyず䞀次察応の自動化 〜24/365監芖運甚の実珟ず効果〜

公匏ブログリンク

今回玹介した PagerDuty の各サヌビスに぀いお公匏ブログで詳しく説明されおいるのでご参考ください。

Event Orchestration

アラヌト削枛・自動化を埌抌しする「Event Orchestration機胜」掻甚に向けた7぀のヒント

Incident Workflows

むンシデント察応の反埩䜜業を自動化!PagerDuty「Incident Workflow」

Runbook Automation

システム運甚を自動化!ランブック自動化のDevOps/SRE環境におけるメリットや掻甚法