Datadog Agent設定の極意 - datadog.yaml の構造と最適化テクニック
Datadog Agentをインストールした直後の状態は、いわば「既製品のスーツ」のようなものです。そのまま着用することもできますが、真にあなたのシステムの体型に合わせ、最高のパフォーマンスを引き出すためには、適切な「仕立て(設定)」が欠かせません。
Datadog Agentの設定において中心的な役割を果たすのが、datadog.yaml というメインの設定ファイルです。このファイルには、どこにデータを送るか、どの機能を有効にするか、どのようなタグを付与するかといった、Agentの挙動に関するすべての定義が凝縮されています。
本記事では、初学者からプロフェッショナルまでを対象に、datadog.yaml の基本構造から、大規模環境での環境変数による管理、そして本番環境で推奨されるセキュアかつ効率的な設定のベストプラクティスについて、徹底的に深掘りします。
1. datadog.yaml の基礎知識と配置場所
Agentが起動時に読み込むメインの設定ファイルは、OSごとに以下の場所に配置されます。設定変更後は、Agentサービスの再起動(または reload)が必要であることを忘れないでください。
- Linux:
/etc/datadog-agent/datadog.yaml - Windows:
C:\ProgramData\Datadog\datadog.yaml - macOS:
~/.datadog-agent/datadog.yaml
このファイルは YAML 形式で記述されており、インデント(空白)が重要な意味を持ちます。編集の際は、シンタックスエラーを避けるために適切なテキストエディタを使用することを推奨します。
2. 最初にマスターすべき主要パラメータ
何百もある設定項目のうち、運用において特に重要なものを整理しました。
必須項目:接続と認証
api_key: Datadogポータルから取得したAPIキー。site: データを送信する地域(例:ap1.datadoghq.com)。これを間違えるとデータが一切表示されません。
データの識別:ホスト名とタグ
hostname: デフォルトではOSのホスト名が自動取得されますが、クラウド環境や不規則な命名規則の環境では、ここで明示的に指定することを推奨します。tags: ホストに付与するメタデータ。env:productionやteam:backendなど、組織構造に合わせたタグを付与します。
送信データの制御(機能の有効化)
logs_enabled: ログ収集を有効にする場合はtrueに設定します(デフォルトはfalse)。apm_config.enabled: APM(トレース)の受信を制御します。process_config.enabled: プロセスリストの収集を制御します。
3. 設定の優先順位と読み込みフロー(Mermaid図)
Agentの設定は、datadog.yaml 以外にもいくつかの方法で上書き可能です。トラブルシューティングのために、その優先順位(プレシデンス)を理解しておきましょう。
コンテナ環境(Docker/Kubernetes)では、datadog.yaml をマウントするよりも、**環境変数(Environment Variables)**を使用して設定を行うのが一般的です。環境変数は常に YAML ファイル内の設定を上書きします。
- 例:
DD_API_KEY環境変数は、datadog.yaml内のapi_key項目を上書きします。
4. 設定管理手法の比較
環境の規模や特性に応じて、設定の管理方法を選択しましょう。
| 管理手法 | 特徴 | 適した環境 | メリット | デメリット |
|---|---|---|---|---|
| 直接編集 | 手動でファイルを変更 | 1〜5台の小規模環境 | 直感的で分かりやすい | 台数が増えると管理不能になる |
| 環境変数 (DD_XXX) | OSやコンテナの変数で設定 | Docker, Kubernetes, CI/CD | コード化しやすく、秘密情報の隔離が容易 | 複雑なリスト形式の設定が書きにくい |
| 構成管理 (Ansible等) | テンプレートから配布 | 大規模な仮想マシン群 | 数百台への一括反映、一貫性の担保 | ツール習得のコスト |
| Secrets Management | 外部Vault等から取得 | セキュリティ重視の環境 | APIキーなどの生データを隠蔽可能 | 設定が高度で複雑 |
5. 本番環境向けのチューニングとセキュリティ
ログレベルの最適化
デフォルトのログレベル(INFO)は、平常時には多すぎる場合があります。 本番環境では log_level: warn に設定することで、Agent自体のディスクI/Oとログ消費を抑え、本当に重要なトラブルの種だけをログファイルに残すことができます。
権限と秘密情報の保護
datadog.yaml に生のAPIキーを記載することはセキュリティ上のリスクです。上述の環境変数を利用するか、Datadog Agent 7からサポートされている「シークレット管理(Secret Management)」機能を活用し、実行時にスクリプト経由でキーを取得する構成を検討してください。
プロキシ設定
企業内ネットワークなど、外部へのアクセスが制限されている環境では以下の設定が必須となります。
proxy:
https: http://user:password@proxy-server:3128
no_proxy:
- 169.254.169.254 # AWSメタデータエンドポイントなど6. 設定の妥当性確認とデバッグ
設定を変更した後は、必ず以下のコマンドを使用してバリデーションを行ってください。
datadog-agent configcheck: 設定ファイルの文法ミスや、現在適用されている最終的な設定値をすべて表示します。datadog-agent status: 設定した機能(ログ、APMなど)が「Active」になっているかを確認します。datadog-agent diagnose: ネットワーク接続や権限など、より深いレベルでの診断を実行します。
7. まとめ
datadog.yaml は、オブザーバビリティという宇宙を航海するための「航海計画書」です。 最初は API キーとタグだけを設定することから始まりますが、システムの理解が深まるにつれ、プロキシ、サンプリング、セキュリティ設定といった高度な項目へと活用範囲が広がっていきます。
適切な設定管理は、単なる運用の効率化だけでなく、データの正確性とセキュリティの担保に直結します。本記事で紹介した「階層的な優先順位」と「環境変数の活用」を意識して、あなたの環境に最適化された唯一無二の監視基盤を構築してください。
関連記事:
出典: