Agentのトラブルシューティング
Datadog Agentは非常に安定したソフトウェアですが、環境(権限、ネットワーク、OS設定)の影響を受けて正常に動作しない場合があります。こうした際、Agent自体に備わっている自己診断コマンドを使いこなすことで、解決までの時間を劇的に短縮できます。
本記事では、エンジニアが知っておくべきAgentの重要なCLIコマンドと、調査の起点となるログの確認方法について解説します。
必須のトラブルシューティングコマンド
Datadog Agentがインストールされたホスト上で以下のコマンドを実行することで、内部状態を詳細に把握できます。(※Linux/macOSでは通常 sudo が必要です)
1. datadog-agent status
Agentの現在の健康状態を確認する最も基本的なコマンドです。
- 確認内容: エージェント本体と各インテグレーション(コレクター)の稼働状況、NTPオフセット(時刻のズレ)、API送信の成功数、収集されているメトリクス数などが表示されます。
- 注目ポイント:
Collectorセクションで、各チェックの横にErrorが出ていないかを確認します。
2. datadog-agent flare
設定ファイルとログを一つのアーカイブにまとめ、Datadogサポートへ送信するためのコマンドです。
- 用途: サポートへ問い合わせる際に必ず求められる資料です。
- セキュア設計: 送信前に、パスワードやAPIキーなどの機密情報は自動的にマスク(伏せ字)されます。
3. datadog-agent diagnose
接続性やファイル権限など、Agentが正常に動作するための前提条件を自動チェックします。
- 用途: 「なぜかデータが届かない」という初期段階で実行すると、通信ブロックや権限不足などの原因を即座に指摘してくれます。
4. datadog-agent configcheck
現在読み込まれている全ての設定情報を表示します。
- 用途: 環境変数の上書き設定や、オートディスカバリー(Auto Discovery)が正しく機能しているかを確認するのに役立ちます。
5. datadog-agent check [check_name]
特定のインテグレーションを単発で実行し、出力を確認します。
- 例:
datadog-agent check mysql - 用途: 設定変更後に、実際にメトリクスが正しく取得できるかを即座に検証できます。
ログファイルの場所
OSによってログファイルの保存場所が異なります。問題解決のヒントが最も集まる場所です。
| OS | ログファイルのパス |
|---|---|
| Linux | /var/log/datadog/agent.log |
| Windows | C:\ProgramData\Datadog\logs\agent.log |
| macOS | /opt/datadog-agent/logs/agent.log |
Agentにおける「よくある問題」と解決策
権限不足 (Permission Denied)
Agentの実行ユーザー(通常 dd-agent)が、監視対象のログファイルやDockerソケット、プロセス情報にアクセスできないケースです。
- 対策:
diagnoseコマンドで権限エラーが出ている箇所を特定し、適切なユーザーグループ(例:dockerグループ)への追加やパーミッション修正を行います。
NTPによる時刻のズレ (Clock Drift)
ホストのシステム時刻がDatadog側と大きく(通常10分以上)ズレている場合、データが有効期限切れとして破棄されます。
- 対策:
statusコマンドでNTPの状況を確認し、必要に応じてNTPクライアント(Chronyなど)を再起動・調整します。
まとめ
Agentのトラブルシューティングは、「statusで全体の把握」「diagnoseで前提条件の確認」「ログで詳細なエラー特定」の3ステップで行うのが効率的です。もしこれらで解決しない場合は、迷わず flare を取得して次のステップ(サポートへの問い合わせ)へ進みましょう。
出典: Datadog Docs - Agent Commands出典: Datadog Docs - Agent Log Files