- 重要な情報
- はじめに
- 用語集
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
Agent がホストでデータを収集するためには、特定のアクセス許可が必要です。このページでは最も一般的なアクセス許可に関する問題とその解決方法について説明します。
Datadog Agent をホストで実行する際、アクセス許可に関連する以下のような問題が発生することがあります。このような問題は、Agent の適切なログ作成を妨げる可能性があります。
IOError: [Errno 13] Permission denied: '/var/log/datadog/supervisord.log'
Agent のログファイルと、ログファイルが含まれるディレクトリのオーナーが Datadog Agent ユーザー: dd-agent
であることを確認します。オーナーが Agent ユーザーではない場合、Agent はログエントリーをファイルに書き込むことはできません。下記の例は、ファイルのオーナーシップ情報を表示するためにUnix システムで利用できるコマンドです。
ls -l /var/log/datadog/
total 52300
-rw-r--r-- 1 dd-agent dd-agent 5742334 Jul 31 11:49 collector.log
-rw-r--r-- 1 dd-agent dd-agent 10485467 Jul 28 02:45 collector.log.1
-rw-r--r-- 1 dd-agent dd-agent 1202067 Jul 31 11:48 dogstatsd.log
-rw-r--r-- 1 dd-agent dd-agent 10485678 Jul 28 07:04 dogstatsd.log.1
-rw-r--r-- 1 dd-agent dd-agent 4680625 Jul 31 11:48 forwarder.log
-rw-r--r-- 1 dd-agent dd-agent 10485638 Jul 28 07:09 forwarder.log.1
-rw-r--r-- 1 dd-agent dd-agent 1476 Jul 31 11:37 jmxfetch.log
-rw-r--r-- 1 dd-agent dd-agent 31916 Jul 31 11:37 supervisord.log
-rw-r--r-- 1 dd-agent dd-agent 110424 Jul 31 11:48 trace-agent.log
-rw-r--r-- 1 dd-agent dd-agent 10000072 Jul 28 08:29 trace-agent.log.1
ファイルのオーナーが dd-agent
ユーザー以外の場合、下記のコマンドを使用してオーナーシップを変更し、Agent を再起動します。
sudo chown -R dd-agent:dd-agent /var/log/datadog/
Agent ログの場所に関する詳細情報はこちらからご確認ください。
Agent の起動時に、ソケットのアクセス許可に関する次のような問題が発生することがあります。
Starting Datadog Agent (using supervisord):Error: Cannot open an HTTP server: socket.error reported errno.EACCES (13)
一見したところ、適切なソケットがすでに使用されているために Agent が接続できないように見えるかもしれません。しかし、長引く Agent プロセスが残留していないことを再度確認済みで、Agent 用の適切なポートが使用可能であると確認できていても、上記のエラーが続くことがあります。
Linux ホストの場合、正常に起動するためには /opt/datadog-agent/run
ディレクトリのオーナーが dd-agent
である必要があります。まれに、このディレクトリのオーナーシップが dd-agent
以外に変更されてしまうことがあります。これにより、Agent の起動時に上記のエラーが発生します。次のコマンドを実行して、このディレクトリのオーナーシップを再度確認します。
ls -al /opt/datadog-agent/run
ファイルのオーナーが dd-agent
以外の場合は、次のコマンドを実行して修正します。
chown dd-agent -R /opt/datadog-agent/run
このように変更後は、Agent 起動コマンドが Agent を正常に起動させることができるはずです。上記のステップに従ったにもかかわらず、引き続きこの問題が発生する場合は、Datadog サポートチームにご相談ください。
Linux OS で実行している Agent のプロセスチェックを有効化している場合、デフォルトでは system.processes.open_file_descriptors
メトリクスが収集または報告されません。
これは、プロセスが Agent ユーザー dd-agent
ではなく、他のユーザーの元で実行されるプロセスチェックにより監視されている場合に発生します。実際、dd-agent
ユーザーには、Agent がメトリクスのデータを収集するために参照する /proc
の全ファイルへの完全なアクセス権がありません。
プロセスチェックコンフィギュレーションの try_sudo
オプションを有効化し、適切な sudoers
ルールを追加します。
dd-agent ALL=NOPASSWD: /bin/ls /proc/*/fd/
これにより、プロセスチェックで sudo
を使用して ls
コマンドを実行できるようになりますが、パスが /proc/*/fd/
のコンテンツリストのみが対象です。
この行が Datadog の error.log
ファイル、sudo: sorry, you must have a tty to run sudo
に含まれている場合は、visudo
を実行し、Default requiretty
の行をコメントアウトします。
v6.3 以前の Agent v6 を実行している場合は、Agent をアップデートして try_sudo
オプションを使用するようにしてください。アップデートできない場合は、この問題の回避策として Agent を root
として実行します。
注: Agent を root
として実行することは推奨されていません。Datadog Agent に限らず、また、何らかの信用性の低い現象が懸念されるわけでもありませんが、デーモンを root
として実行することは推奨されていません。これは、Linux のプロセスにおける基本的なベストプラクティスです。個人的に懸念事項がある場合、オープンソースである Agent は GitHub レポジトリを使用してご自身やチームで監査することが可能です。
/etc/systemd/system/multi-user.target.wants/datadog-agent.service
を開き、[Service]
の user
属性を変更します
Agent v5 を実行している場合は、最新バージョンの Agent 6 へアップデートし、try_sudo
オプションを使用してください。アップデートできない場合は、この問題の回避策として、Agent を root
として実行します。
注: Agent を root
として実行することは推奨されていません。Datadog Agent に限らず、また、何らかの信用性の低い現象が懸念されるわけでもありませんが、デーモンを root
として実行することは推奨されていません。これは、Linux のプロセスにおける基本的なベストプラクティスです。個人的に懸念事項がある場合、オープンソースである Agent は GitHub レポジトリを使用してご自身やチームで監査することが可能です。
詳細情報と、Linux マシンで利用可能なこのメトリクスのその他の取得メソッドについては、下記の GitHub に関する問題をご参照ください。
お役に立つドキュメント、リンクや記事: