Docker 監視の設定で問題が発生している場合は、これらの一般的な問題と解決策を確認してください。
ヒント
一般的な NRDOT トラブルシューティング: コレクターの起動の問題、設定の検証、ネットワーク接続、および NrIntegrationError 診断については、「 NRDOT トラブルシューティング ガイド」を参照してください。 以下の問題は Docker コンテナ監視に特有のものです。
問題: Dockerコンテナは実行されていますが、10 分以上経過してもNew RelicにDockerが表示されません。
診断:
$# Check Docker daemon accessibility$docker info$
$# Test Docker socket permissions$ls -l /var/run/docker.sock$
$# Verify containers are running$docker ps$
$# Check collector logs for Docker-specific errors$journalctl -u nrdot-collector | grep -i "docker"解決策:
Dockerソケット アクセス: nrdot-collector ユーザーをdockerグループに追加します。
bash$sudo usermod -aG docker nrdot-collector$sudo systemctl restart nrdot-collectorDocker API バージョン: Docker API バージョンが 1.25 以上であることを確認します。
bash$docker version --format '{{.Client.APIVersion}}'
問題: Dockerソケットにアクセスすると、 Collectorログに「権限が拒否されました」と表示されます。
診断:
$# Check socket ownership and permissions$ls -la /var/run/docker.sock$
$# Check collector user membership$groups nrdot-collector$
$# Check collector logs for permission errors$journalctl -u nrdot-collector | grep -i "permission denied"解決策:
$# Option 1: Add collector user to docker group (recommended)$sudo usermod -aG docker nrdot-collector$sudo systemctl restart nrdot-collector$
$# Option 2: Adjust socket permissions (less secure)$sudo chmod 666 /var/run/docker.sock$
$# Option 3: Run collector as root (not recommended for production)$# Modify systemd service file User= setting問題: 一部のコンテナではメトリクスが表示されますが、他のコンテナでは表示されないか、またはメトリクスが散発的に表示されます。
診断:
$# Check for containers with networking issues$docker inspect $(docker ps -q) | grep -A5 "NetworkSettings"$
$# Review collector configuration$cat /etc/nrdot-collector/docker-stats-config.yaml | grep -A10 "docker_stats:"$
$# Check for resource constraints$docker stats --no-stream$
$# Check collector logs for specific errors$journalctl -u nrdot-collector | grep -i "docker_stats"解決策:
- コンテナの可視性: コレクターで構成されたDockerソケット パスを介してすべてのコンテナにアクセスできることを確認します。
- リソース制限: コンテナの応答が遅い場合は、コレクターのタイムアウト値を増やします。
/etc/nrdot-collector/docker-stats-config.yamlを編集:receivers:docker_stats:timeout: 10s # Increase from default 5scollection_interval: 30s # Reduce frequency if needed - ネットワークネームスペース: 制限されたネットワークネームスペース内の一部のコンテナはアクセスできない可能性があります
問題: ログ収集が設定されているが、コンテナログがNew Relicに表示されません。
診断:
$# Check log directory permissions$ls -la /var/lib/docker/containers/$
$# Verify receiver creator is discovering containers$journalctl -u nrdot-collector | grep -i "receiver.*creator\|docker.*observer"$
$# Check if containers have exposed ports (required for discovery)$docker ps --format 'table {{.Names}}\t{{.Ports}}'$
$# Verify logs pipeline is configured$journalctl -u nrdot-collector | grep -i "logs"解決策:
ファイル権限: ログディレクトリへのアクセスを許可:
bash$sudo chmod -R 755 /var/lib/docker/containers/$# Or add collector to docker group$sudo usermod -aG docker nrdot-collector$sudo systemctl restart nrdot-collectorコンテナ ポートの公開: コンテナ検出のためにポートを公開します:
bash$# When running containers, expose at least one port$docker run -p 8080:8080 my-app:latest$# Or use --expose flag$docker run --expose 80 my-app:latestVerify log config : ログ コレクションの設定が含まれていることを確認します。
bash$# Check systemd override$sudo systemctl cat nrdot-collector | grep -A2 "ExecStart="$# Should point to: --config=/etc/nrdot-collector/docker-stats-config.yaml (or combined config with logs)New Relic でのログのクエリ:
FROM Log SELECT * WHERE newrelic.source='api.logs.otlp' SINCE 1 hour ago
問題: OpenTelemetry Collector が起動に失敗するか、すぐにクラッシュします。
診断:
$# Check collector status$sudo systemctl status otelcol-contrib$
$# View recent logs$journalctl -u otelcol-contrib --since "1 hour ago" -f$
$# Test configuration syntax$otelcol-contrib --config-validate --config=/etc/otelcol-contrib/config.yaml解決策:
- 設定エラー: YAML 構文エラーを修正し、すべての必須フィールドが存在することを確認します
- 権限がありません: コレクターユーザーが設定ファイルへの読み取りアクセス権を持っていることを確認してください
- 環境変数:
NEWRELIC_LICENSE_KEYとNEWRELIC_OTLP_ENDPOINTが正しく設定されていることを確認してください
問題: Dockerコンテナは実行されていますが、10 分以上経過してもNew Relicにメトリクスが表示されません。
診断:
$# Verify collector is running and processing data$journalctl -u otelcol-contrib | grep -i "docker\|error\|export"$
$# Check Docker daemon accessibility$docker info$
$# Test Docker socket permissions$ls -l /var/run/docker.sock$
$# Verify containers are running$docker ps解決策:
Docker ソケット アクセス: コレクター ユーザーを docker グループに追加します。
bash$sudo usermod -aG docker otelcol-contrib$sudo systemctl restart otelcol-contribライセンスキーの問題: ライセンスキーが正しく、適切な権限があることを確認してください。
bash$echo $NEWRELIC_LICENSE_KEY$# Should be 40-character NRAK-prefixed key for US, or EU equivalentネットワーク接続: OTLP エンドポイントのアクセシビリティをテスト:
bash$# For US region$curl -v -H "api-key: $NEWRELIC_LICENSE_KEY" https://otlp.nr-data.net/v1/metrics$$# For EU region$curl -v -H "api-key: $NEWRELIC_LICENSE_KEY" https://otlp.eu01.nr-data.net/v1/metricsDocker API バージョン: Docker API バージョンが 1.25 以上であることを確認します。
bash$docker version --format '{{.Client.APIVersion}}'
問題: Dockerソケットにアクセスすると、 Collectorログに「権限が拒否されました」と表示されます。
診断:
$# Check socket ownership and permissions$ls -la /var/run/docker.sock$
$# Check collector user membership$groups otelcol-contrib解決策:
$# Option 1: Add collector user to docker group (recommended)$sudo usermod -aG docker otelcol-contrib$sudo systemctl restart otelcol-contrib$
$# Option 2: Adjust socket permissions (less secure)$sudo chmod 666 /var/run/docker.sock$
$# Option 3: Run collector as root (not recommended for production)$# Modify systemd service file User= setting問題: 一部のコンテナではメトリクスが表示されますが、他のコンテナでは表示されないか、またはメトリクスが散発的に表示されます。
診断:
$# Check for containers with networking issues$docker inspect $(docker ps -q) | grep -A5 "NetworkSettings"$
$# Review collector configuration$grep -A20 "docker_stats:" /etc/otelcol-contrib/config.yaml$
$# Check for resource constraints$docker stats --no-stream解決策:
コンテナの可視性: コレクターで構成されたDockerソケット パスを介してすべてのコンテナにアクセスできることを確認します。
リソース制限: コンテナの応答が遅い場合は、コレクターのタイムアウト値を増やします。
docker_stats:timeout: 10s # Increase from default 5scollection_interval: 30s # Reduce frequency if neededネットワークネームスペース: 制限されたネットワークネームスペース内の一部のコンテナはアクセスできない可能性があります
問題: OpenTelemetry Collector が過剰なシステム リソースを消費します。
診断:
$# Monitor collector resource usage$top -p $(pgrep otelcol-contrib)$
$# Check metric collection frequency$grep -A10 "docker_stats:" /etc/otelcol-contrib/config.yaml$
$# Count active containers$docker ps --format 'table {{.Names}}\t{{.Status}}' | wc -l解決策:
収集間隔を調整する: コンテナ数の多い環境では監視頻度を減らします。
docker_stats:collection_interval: 30s # Increase from 15s高価なメトリクスを無効にする: 必要がない場合は、CPU ごとのメトリクスをオフにします。
docker_stats:metrics:container.cpu.usage.percpu:enabled: falseバッチ処理を構成する: 環境に合わせてバッチ処理を最適化します。
batch:timeout: 60ssend_batch_size: 1024
問題: ログ収集が設定されているが、コンテナログがNew Relicに表示されません。
診断:
$# Check log directory permissions$ls -la /var/lib/docker/containers/$
$# Verify receiver creator is discovering containers$journalctl -u otelcol-contrib | grep -i "receiver.*creator\|docker.*observer"$
$# Check if containers have exposed ports (required for discovery)$docker ps --format 'table {{.Names}}\t{{.Ports}}'解決策:
ファイル権限: ログディレクトリへのアクセスを許可:
bash$sudo chmod -R 755 /var/lib/docker/containers/$# Or add collector to docker group$sudo usermod -aG docker otelcol-contribコンテナ ポートの公開: コンテナ検出のためにポートを公開します:
bash$# When running containers, expose at least one port$docker run -p 8080:8080 my-app:latest$# Or use --expose flag$docker run --expose 80 my-app:latestオブザーバー構成: Docker オブザーバー設定を確認します。
docker_observer:endpoint: unix:///var/run/docker.sockuse_hostname_if_present: trueuse_container_labels: true
問題: メトリクスが間違ったNew Relicアカウントまたは組織に表示されます。
診断:
$# Verify license key format and region$echo $NEWRELIC_LICENSE_KEY | cut -c1-4$# Should show "NRAK" for US accounts$
$# Check configured endpoint$echo $NEWRELIC_OTLP_ENDPOINT解決策:
- 米国のアカウント:使用
https://otlp.nr-data.net - EUアカウント:使用
https://otlp.eu01.nr-data.net - ライセンスキーの確認: 正しいアカウントのライセンスキーを使用していることを確認してください
問題が解決しない場合は、 OpenTelemetry Collector のトラブルシューティング ガイドとNew Relic OpenTelemetry のドキュメントを確認してください。
次のステップ
問題が解決した場合:
- セットアップに戻る: Docker監視セットアップガイドに戻って設定を完了します
- データの探索:メトリクスリファレンスガイドを使用して、Docker メトリクスをクエリして視覚化する方法を学びます
- アラートの設定: 重要なコンテナのメトリクスに対してアラート条件を使用してプロアクティブな監視を作成する