障害対応を「最高のナレッジ」に変える。Confluence × PagerDuty/Datadog 自動連携の極意
こんにちは。現場の最前線で、日々「情報のサイロ化」という怪物と戦っているエンジニアの皆さん。
システム障害が起きたとき、皆さんはどうしていますか?
「Slackを遡って状況を把握する」「散らばったログをかき集める」「事後報告書(Post-mortem)をゼロから書く」。そんな、生産性を溶かすだけの非効率な作業に終止符を打ちましょう。
今回は、PagerDutyやDatadogから飛んでくるアラートをトリガーに、Confluenceのインシデントレポートを自動生成する仕組みを構築します。これをマスターすれば、障害対応の最中に「ナレッジが勝手に蓄積される」という、エンジニアにとって夢のような環境が手に入ります。
—
1. なぜ「自動ドキュメント化」が必要なのか?
インシデント対応の現場では、「記憶」は最も信頼できないソースです。
- 情報のサイロ化を防ぐ: 障害の発生時刻、影響範囲、最初の検知ツールが自動で記録されるため、属人性が排除されます。
- 事後報告書(Post-mortem)を最短化: 対応開始時点ですでに「雛形」ができているため、振り返り作業のコストを劇的に下げられます。
これから解説する仕組みは、単なる自動化ではありません。「障害という負のイベントを、組織の資産(ナレッジ)に変換するパイプライン」です。
—
2. システムの全体像:どうやって繋ぐか?
直接ツールを連携させても良いですが、柔軟性と拡張性を担保するため、「Webhook + 中継サーバー(AWS Lambdaなど)」の構成を推奨します。
1. 監視・オンコールツール(Datadog/PagerDuty): 障害発生時にWebhookを送信。
2. 中継サーバー(AWS Lambda): JSONデータを受け取り、Confluence API用に整形。
3. Confluence: API経由でページを作成。
—
3. 実践!HelloWorld的な自動化フロー
まずは最小構成で「アラートが飛んだらページが作られる」ことを確認しましょう。
手順1:Confluence APIトークンの取得
Confluenceの管理画面から「APIトークン」を発行します。
- `Atlassian Account` > `Security` > `API tokens`
手順2:Lambda関数の作成(Python)
このスクリプトが、外部からの信号をConfluenceの「ページ」に変換します。
import requests
import json
from requests.auth import HTTPBasicAuth
def lambda_handler(event, context):
# Confluenceの認証情報
email = “your-email@example.com”
api_token = “YOUR_API_TOKEN”
base_url = “https://your-domain.atlassian.net”
# 障害情報を取得(WebhookのJSONから抽出)
incident_name = event.get(‘title’, ‘不明な障害’)
# Confluence作成用のJSON構造
payload = {
“type”: “page”,
“title”: f”【インシデント】{incident_name}”,
“space”: {“key”: “INC”}, # インシデント専用スペースのキー
“body”: {
“storage”: {
“value”: “
障害対応ログ
対応を開始しました。ここに状況を追記してください。
“,
“representation”: “storage”
}
}
}
# APIリクエスト実行
response = requests.post(
f”{base_url}/wiki/rest/api/content”,
auth=HTTPBasicAuth(email, api_token),
json=payload,
headers={“Content-Type”: “application/json”}
)
return {“statusCode”: response.status_code, “body”: response.text}
手順3:動作確認
1. Datadogの「Webhook Integration」設定画面で、LambdaのAPI Gateway URLを指定します。
2. テストアラートを発火させます。
3. Confluenceの対象スペースを確認してください。新しいページが勝手に生成されていれば成功です!
—
4. 現場で「震えるほど役立つ」運用のコツ
ここからが、現場を知り尽くしたコーチからのアドバイスです。
- テンプレートを活用せよ:
Confluenceの「ページテンプレート」機能とAPIを組み合わせましょう。APIで作成する際、テンプレートIDを指定して呼び出せば、最初から「原因」「影響範囲」「再発防止策」の項目が埋まった綺麗なレポートが生成されます。
- Slackとの併用:
ページが作成されたら、そのURLを自動的にSlackのインシデントチャンネルに通知してください。「どこに書けばいい?」という迷いをゼロにするのが、チームの心理的安全性を高める秘訣です。
- 「未解決」を可視化せよ:
ダッシュボードページを作り、`page: INC` などのCQL(Confluence Query Language)を使って、まだ「対応中」のステータスのページを一覧表示させると、マネジメント層も安心します。
—
最後に:ツールは「文化」を作る
自動化の目的は、楽をすることだけではありません。「ドキュメントを書くのが当たり前」という文化を、強制力ではなく「仕組み」で作ることこそが、アジャイルな組織への近道です。
最初は小さな自動化からで構いません。まずは「アラートが飛んだら、とりあえず空のページができる」ところから始めてみてください。その小さな一歩が、数ヶ月後には強固なナレッジベースとなり、チームのベロシティを劇的に加速させているはずです。
何か詰まったら、いつでも聞いてください。私たちは「より良い開発体験」のためにここにいます。頑張ってくださいね!