Contents
前提条件と必要権限
このセクションでは、Datadog と Slack を安全に連携させるために最低限必要なロールや権限を整理します。適切な権限が付与されていないとインテグレーションのインストール自体が失敗し、後続の設定作業が無意味になるため、事前確認は必須です。
Datadog のロール概要
Datadog では「Organization Admin」もしくは「Team Lead」の権限を持つユーザーだけがインテグレーションの追加・設定を行えます。これらのロールは Datadog コンソール > Organization Settings > Roles から確認できます(※最新情報は公式ドキュメントDatadog Rolesをご参照ください)。
Slack ワークスペースの管理者権限
Slack 側では Workspace Owner または Admin がアプリのインストールを行うことができます。プライベートチャンネルへ通知する場合は、対象チャンネルに対してもアプリを招待する必要があります。管理権限の有無は Slack 管理コンソール > Settings & Permissions で確認できます(※公式ガイドSlack Permissions)。
Datadog と Slack のインテグレーション設定手順(公式ドキュメントに基づく)
本章では、2024 年 10 月時点で公開されている Datadog の UI と Slack の OAuth フローを踏まえた設定手順を解説します。将来の UI 変更や機能追加があった場合は、必ず公式ドキュメントを最新状態で確認してください。
インテグレーションページへのアクセス方法
Datadog コンソール左側メニューから Integrations → Browse integrations を選択し、検索フィールドに「Slack」と入力します。検索結果のカードに表示される Install(または Connect)ボタンをクリックすると、OAuth 認可画面へ遷移します。
OAuth 認可フローと推奨スコープ
Slack へのアクセス権限は「最小権限」の原則に従い、必要最低限のスコープだけを付与することが推奨されています。2024 年版 Slack API の標準スコープは以下の通りです(※詳細は公式ドキュメントSlack Scopesをご確認ください)。
| スコープ | 用途 |
|---|---|
chat:write |
メッセージ送信 |
channels:read |
パブリックチャンネル一覧取得 |
groups:read |
プライベートチャンネル(グループ)一覧取得 |
im:write |
ダイレクトメッセージ送信(必要時) |
OAuth トークンの有効期限はデフォルトで 90 日 です。期限が近づいたら Datadog のインテグレーション画面から Re‑authorize を実行し、トークンを更新してください。
ワークスペースへのアプリ追加確認
認可が完了すると Datadog は自動的に Slack ワークスペースへアプリをインストールします。インストール結果は Slack 管理コンソール → Manage apps に「Datadog」アプリとして表示されるので、必ず確認しておきましょう。
通知先チャンネルの設定
この章では、パブリック・プライベートそれぞれのチャンネルに対する通知設定手順と、メンションオプションの活用方法を説明します。正しいチャンネル選択はインシデント情報の可視性確保につながります。
パブリックチャンネルへの通知手順
Datadog のインテグレーション画面で Channel Mapping セクションに移動し、Add channel ボタンから対象のパブリックチャンネル名(例:#infra-alerts)を入力して保存します。保存後は「Notify on」項目で通知対象(alert / recovery など)を選択できます。
|
1 2 3 4 5 |
channel: "#infra-alerts" notify_on: - alert - recovery |
プライベートチャンネルへ通知するための招待方法
プライベートチャンネルに対しては、まず Slack 側で Datadog アプリを手動で招待します。/invite @Datadog コマンドでアプリを追加した後、Datadog の Channel Mapping に同じチャンネル名(例:#oncall-private)を登録してください。
- Slack で対象プライベートチャンネルを開く
/invite @Datadogと入力し招待- Datadog インテグレーション画面に戻り、Add channel →
#oncall-privateを追加
モニターでの Slack 通知カスタマイズ
ここでは、モニター作成時に Slack へ送信するメッセージをテンプレート変数で動的に生成し、受信者が即座に状況を把握できるようにする方法を紹介します。
テンプレート変数の活用例
Datadog が提供する組み込み変数({{alert.title}}、{{alert.query}} など)を利用すれば、アラート内容を自動で埋め込んだリッチテキストが生成できます。以下は実際に使用できるテンプレート例です。
|
1 2 3 4 5 |
:warning: *{{alert.title}}* がトリガーされました。 - 条件: {{alert.query}} - 現在値: {{alert.current_value}} - 詳細: {{alert.link}} |
メッセージフォーマットとテスト送信手順
モニター作成画面で Notify your team → Slack アイコン をクリックし、先ほどのテンプレートを Message フィールドに貼り付けます。その後、画面右上の Test Notification ボタンを使用して実際に Slack へ送信し、フォーマットが期待通りか確認してください。
Workflow Automation によるリトライロジック実装
自動化ワークフローで Slack 通知にリトライ機能を組み込むと、一時的な API エラーやレートリミットによる送信失敗を防げます。以下は公式サンプルをベースにした最小構成の JSON 定義です。
JSON 定義例(解説付き)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{ "name": "Slack alert with retry", "trigger": { "type": "monitor_alert", "monitor_id": "{{monitor.id}}" }, "actions": [ { "type": "slack.post_message", "channel": "#infra-alerts", "message": ":alert: *{{alert.title}}* が検出されました。 詳細は {{alert.link}} を確認。", "retries": 3, "backoff_seconds": 10 } ] } |
retries: 最大再試行回数(ここでは 3 回)backoff_seconds: 各リトライ間の待機秒数(10 秒)
有効化・テストの流れ
- Workflow Automation → Create workflow を選択
- JSON エディタに上記コードを貼り付け、Validate で構文チェック
- Enable ボタンで有効化し、画面右上の Test から手動トリガー実行
テスト結果が Slack に届けば設定完了です。失敗した場合は retries と backoff_seconds の値を調整してください。
Slack の /datadog コマンドとエラー対処
Slack 上から Datadog の情報に直接アクセスできるコマンドは、オンコール対応時の迅速な判断を支援します。本節ではインストール手順と代表的なエラーパターンへの公式対策をご紹介します。
コマンド一覧とインストール手順
Datadog アプリは Slack の App Directory から追加できます。インストール後に利用できる主なスラッシュコマンドは以下の通りです(詳細は公式ページDatadog for Slackをご参照ください)。
| コマンド | 効果 |
|---|---|
/datadog status |
現在のアラート一覧を表示 |
/datadog mute <monitor_id> |
指定モニターを一時的にミュート |
/datadog unmute <monitor_id> |
ミュート解除 |
/datadog help |
コマンドヘルプを表示 |
よくあるエラーと公式ドキュメントでの対策
- 権限不足:Slack のアプリ設定画面で要求スコープが足りない場合は、Datadog インテグレーション画面の Re‑authorize から再認可してください(参照: Slack OAuth Scopes)。
- トークン期限切れ:OAuth トークンはデフォルトで 90 日です。期限が近づいたら Datadog の API Tokens ページから新しいトークンを発行し、インテグレーション設定に上書きします。
- レートリミット:Slack API は 1 分間あたり 20 リクエストの制限があります。Workflow Automation で
retriesとbackoff_secondsを増やすか、通知頻度を調整して回避してください(公式ガイド: Slack Rate Limits)。
まとめとチェックリスト
本記事の手順を実施することで、Datadog のアラートが確実に Slack に届く環境を構築できます。設定完了後は定期的な権限レビューとシークレットローテーションを行い、セキュリティと可用性を維持してください。
設定完了チェックリスト
- [ ] Datadog アカウントに Organization Admin または Team Lead 権限が付与されている
- [ ] Slack ワークスペースで Owner / Admin 権限があるユーザーがインテグレーションを実施した
- [ ] Integrations → Slack の Install/Connect が成功し、公式ドキュメント通りのスコープが付与されている
- [ ] パブリック・プライベート両方の通知チャンネルが正しく Channel Mapping に登録され、必要に応じて @here/@channel が設定済み
- [ ] モニター作成時にテンプレート変数を組み込んだカスタムメッセージが設定され、テスト通知で内容が確認できた
- [ ] Workflow Automation にリトライロジック (
retries,backoff_seconds) が実装され、有効化・テスト済み - [ ] Slack の
/datadogコマンドがインストールされ、status/mute等の基本操作が正常に動作する
上記をすべてクリアできれば、本番環境での運用開始に向けた準備は完了です。今後は 定期的なシークレットローテーション(例: GitHub Actions + Datadog API)と 権限レビュー を自動化し、継続的にセキュリティレベルを保ちましょう。
参考リンク
- Datadog Integration – Slack: https://docs.datadoghq.com/integrations/slack/
- Datadog Role‑Based Access Control: https://docs.datadoghq.com/account_management/role_based_access_control/
- Slack OAuth Scopes: https://api.slack.com/scopes
- Slack Rate Limits: https://api.slack.com/docs/rate-limits
- Slack App Directory – Datadog: https://slack.com/apps/A0F7V4Z9R-datadog
これらの公式情報は随時更新されるため、設定作業を行う際は最新バージョンをご確認ください。