PagerDuty 設定ガイド (動員編7) - Slack等との連携

PagerDutyは、Chatコミュニケーションツール([Slack](https://www.pagerduty.com/integrations/slack/), [MS Teams](https://www.pagerduty.com/integrations/microsoft-teams/), [Google Chat](https://www.pagerduty.com/integrations/google-chat/), [Cisco WebEx](https://help.webex.com/en-us/article/n3ouwaz/Webex-App-%7C-PagerDuty-bot)等)と連携させることができます。

ChatツールのChannel/SpaceをPagerDutyのServiceに紐付けることができるため、自分がOn-call担当でなくても、当該Serviceで発生したインシデントの情報を得ることができます。
また、Chatツールから直接インシデントに対して操作(Ack、担当者の追加・変更、Noteの追記等)を行ったり、新たなインシデントを起票することも可能です。

この記事ではSlackを例に、連携の設定方法とChatツールからPagerDutyを操作する方法についてご紹介します。

## Slack Integrationの手順
### PagerDuty accountとSlack Workspaceの連携
この設定にはPagerDutyのAdmin, Global Admin, またはAccount Owner権限が必要です。
(1) PagerDutyメニューから、Integrations > Extensions を開き、Slack Integrationをクリック

(2) "Authorize Integration"をクリック

(3) "+ Connect a new Workspace"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777160/037bbfc8-4e08-a044-ac2c-aee1ad26a1d3.png)
(4) 画面右上のプルダウンメニューから連携先のSlack Workspaceを選択し、"Allow"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777160/0da16162-0491-6803-06ea-9e620e424f82.png)
(5) Workspaceとの連携が完了しました。必要に応じてWorkspaceの設定を変更してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777160/b973b08b-f9cd-4b15-8dc2-63ef90feea66.png)

### PagerDuty ServiceとSlack Channelの紐付け
この設定はにPagerDutyのManager, Admin, Global Admin, またはAccount Onwer権限が必要です。
(1) Integrations > Slack Integration を開く

(2) Connectionを追加するWorkspaceの"View"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777160/9bb77f4d-c3de-b8f6-87d6-4cd3f7a0fabb.png)
(3) "Add Connection"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777160/63a52365-07e0-5442-d8a7-7b519107f913.png)
(4) PagerDuty Service/Slack Channel/Slackに通知する条件を指定し、"Add Connection"をクリック
* **PagerDuty Source**: PagerDutyのService
* **Slack Channel**: 上記Serviceと紐付けるSlack Channel
* **Notify the channel of these updates**: 通知を送るタイミングを指定
* **When the incident matches these criteria**: 特定のUrgencyまたはPriorityを持つインシデントのみを通知対象にする場合に設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777160/5cdb1b34-6aec-ac76-dfcf-35efed6b8cd8.png)

## Slack Integrationの活用
### /pd コマンド
``/pd``コマンドでインシデントを起票したり、現在のOn-call担当者を確認するなどの操作が可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777160/c9a63b08-903b-ca95-b17c-b80855aace04.png)
 ``/pd trigger``コマンド実行後のポップアップ画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777160/cffd143f-2720-885e-cc96-b105a397885c.png)
インシデント起票後のメッセージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777160/e9a947d9-753f-71c2-30a2-4116071b0b64.png)

### Incident Actions
Slack Channelに表示されたインシデント通知メッセージから、インシデントに対する様々な操作が可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777160/e5dd291c-0c8f-4f0c-7984-d023fc90e945.png)
* **Acknowledge**: インシデントのStatusをAcknowledgedに変更
* **Resolve**: インシデントのStatusをResolvedに変更
* More actions...
    * **View details**: インシデントの詳細を確認(PagerDuty Web Appを開く)
    * **Add a Note**: インシデントにNoteを追記
    * **Change Priority**: インシデントにPriorityを付与・変更
    * **Reassign**: インシデントの担当者を変更
    * **Add Responder**: インシデントの担当者を追加
    * **Escalate**: Escalation Policy上の次の担当者にEscalate
    * **View | Create Channel**: 当該インシデント用のSlack Channelを作成
    * **New Status Update**: Status Updateを投稿
    * **Run an Action**: 事前に定義されたAutomation Actionを実行
    * **Run a Workflow**: 事前に定義されたIncident Workflowsを実行

## PagerDuty設定ガイド 目次
[検知編](https://qiita.com/ymotomu/items/f9e8de2dfa94394df54c) | [トリアージ編](https://qiita.com/ymotomu/items/1a40022feabae53e85c9) | **[動員編](https://qiita.com/ymotomu/items/e6d13e5284a62e3a1100)** | 解決編 | 学習編
1. [通知を受けるまでの設定の流れ](https://qiita.com/ymotomu/items/e6d13e5284a62e3a1100)
1. [ユーザーの追加と通知設定](https://qiita.com/ymotomu/items/b67758adf6c55a948386)
1. [On-call Scheduleの作成 ](https://qiita.com/ymotomu/items/66c7157c2330d23d576f)
1. [Escalation Policyの作成](https://qiita.com/ymotomu/items/728461b1a63cf56594a3)
1. [Serviceの作成](https://qiita.com/ymotomu/items/3cb2d8898857cdcbab02)
1. [通知テストの実施](https://qiita.com/ymotomu/items/4f26d5ec1d713387aff9)
1. [Slack等との連携] << イマココ

## 参考リソース
* [PagerDuty Integration - Slack](https://www.pagerduty.com/integrations/slack/)
    * [Slack Integration Guide](https://support.pagerduty.com/main/lang-ja/docs/slack-integration-guide)
* [PagerDuty Integration - MS Teams](https://www.pagerduty.com/integrations/microsoft-teams/)
* [PagerDuty Integration - Google Chat](https://www.pagerduty.com/integrations/google-chat/)
* [PagerDuty Integration - Cisco WebEx](https://help.webex.com/en-us/article/n3ouwaz/Webex-App-%7C-PagerDuty-bot)
* [システム障害を未然に防ぐ「インシデント管理・対応」とは](https://www.pagerduty.co.jp/blog/what-is-incident-response)
* [PagerDuty - 14日間 無料トライアル](https://www.pagerduty.co.jp/lp/free-trial/)