Si vous rencontrez des problèmes avec votre configuration de monitoring Docker, consultez ces problèmes courants et leurs solutions.
Conseil
Dépannage général de NRDOT: Pour les problèmes de démarrage du collecteur, la validation de la configuration, la connectivité réseau et les diagnostics NrIntegrationError, consultez le Guide de dépannage NRDOT. Les problèmes ci-dessous sont spécifiques à le monitoring des conteneurs Docker.
Problème: Les conteneurs Docker sont en cours d'exécution, mais aucune métrique Docker n'apparaît dans New Relic après plus de 10 minutes.
Diagnostics:
$# 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"Solutions:
Accès au socket Docker: Ajouter l'utilisateur nrdot-collector au groupe docker :
bash$sudo usermod -aG docker nrdot-collector$sudo systemctl restart nrdot-collectorVersion de l'API Docker: Assurez-vous que la version de l'API Docker est 1.25+ :
bash$docker version --format '{{.Client.APIVersion}}'
Problème: Les logs du Collector affichent « permission denied » lors de l'accès au socket Docker.
Diagnostics:
$# 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"Solutions:
$# 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= settingProblème: Certains conteneurs affichent des métriques tandis que d'autres non, ou les métriques sont sporadiques.
Diagnostics:
$# 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"Solutions:
- Visibilité des conteneurs: Assurez-vous que tous les conteneurs sont accessibles via le chemin du socket Docker configuré dans le collecteur
- Limites de ressources: Augmentez les valeurs de délai d'attente du collecteur si les conteneurs sont lents à répondre. Modifier votre
/etc/nrdot-collector/docker-stats-config.yaml:receivers:docker_stats:timeout: 10s # Increase from default 5scollection_interval: 30s # Reduce frequency if needed - Espaces de noms réseau: Certains conteneurs dans des espaces de noms réseau restreints peuvent ne pas être accessibles
Problème: Collecte de logs configurée mais les logs de conteneurs n'apparaissent pas dans New Relic.
Diagnostics:
$# 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"Solutions:
Permissions de fichier: accordez l'accès au répertoire des 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-collectorExposition des ports de conteneurs: exposez les ports pour la découverte des conteneurs :
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:latestVérifier la configuration des logs: Assurez-vous que votre configuration de collecte de logs est incluse :
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)Interroger les logs dans New Relic:
FROM Log SELECT * WHERE newrelic.source='api.logs.otlp' SINCE 1 hour ago
Problème: OpenTelemetry Collector ne démarre pas ou plante immédiatement.
Diagnostics:
$# 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.yamlSolutions:
- Erreurs de configuration: Corrigez les erreurs de syntaxe YAML et assurez-vous que tous les champs obligatoires sont présents
- Permissions manquantes: Assurez-vous que l'utilisateur du collecteur dispose d'un accès en lecture au fichier de configuration
- Variables d'environnement: Vérifiez que
NEWRELIC_LICENSE_KEYetNEWRELIC_OTLP_ENDPOINTsont correctement définies
Problème: Les conteneurs Docker sont en cours d'exécution, mais aucune métrique n'apparaît dans New Relic après plus de 10 minutes.
Diagnostics:
$# 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 psSolutions:
Accès au socket Docker: Ajoutez l'utilisateur du collecteur au groupe docker :
bash$sudo usermod -aG docker otelcol-contrib$sudo systemctl restart otelcol-contribProblèmes de clé de licence: vérifiez que votre clé de licence est correcte et dispose des autorisations appropriées :
bash$echo $NEWRELIC_LICENSE_KEY$# Should be 40-character NRAK-prefixed key for US, or EU equivalentConnectivité réseau: Tester l'accessibilité du point de terminaison 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/metricsVersion de l'API Docker: Assurez-vous que la version de l'API Docker est 1.25+ :
bash$docker version --format '{{.Client.APIVersion}}'
Problème: Les logs du Collector affichent « permission denied » lors de l'accès au socket Docker.
Diagnostics:
$# Check socket ownership and permissions$ls -la /var/run/docker.sock$
$# Check collector user membership$groups otelcol-contribSolutions:
$# 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= settingProblème: Certains conteneurs affichent des métriques tandis que d'autres non, ou les métriques sont sporadiques.
Diagnostics:
$# 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-streamSolutions:
Visibilité des conteneurs: Assurez-vous que tous les conteneurs sont accessibles via le chemin du socket Docker configuré dans le collecteur
Limites de ressources: Augmentez les valeurs de délai d'attente du collecteur si les conteneurs sont lents à répondre :
docker_stats:timeout: 10s # Increase from default 5scollection_interval: 30s # Reduce frequency if neededEspaces de noms réseau: Certains conteneurs dans des espaces de noms réseau restreints peuvent ne pas être accessibles
Problème: Le collecteur OpenTelemetry consomme des ressources système excessives.
Diagnostics:
$# 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 -lSolutions:
Ajuster l'intervalle de collecte: Réduisez la fréquence de monitoring pour les environnements comptant un grand nombre de conteneurs :
docker_stats:collection_interval: 30s # Increase from 15sDésactiver les métriques coûteuses: désactivez les métriques par CPU si elles ne sont pas nécessaires :
docker_stats:metrics:container.cpu.usage.percpu:enabled: falseConfigurer le traitement par lots: Optimisez la mise en lots pour votre environnement :
batch:timeout: 60ssend_batch_size: 1024
Problème: Collecte de logs configurée mais les logs de conteneurs n'apparaissent pas dans New Relic.
Diagnostics:
$# 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}}'Solutions:
Permissions de fichier: accordez l'accès au répertoire des logs :
bash$sudo chmod -R 755 /var/lib/docker/containers/$# Or add collector to docker group$sudo usermod -aG docker otelcol-contribExposition des ports de conteneurs: exposez les ports pour la découverte des conteneurs :
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:latestConfiguration de l'observateur: Vérifiez les paramètres de l'observateur Docker :
docker_observer:endpoint: unix:///var/run/docker.sockuse_hostname_if_present: trueuse_container_labels: true
Problème: Les métriques apparaissent dans le mauvais compte ou la mauvaise organisation New Relic.
Diagnostics:
$# 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_ENDPOINTSolutions:
- Comptes US: Utilisez
https://otlp.nr-data.net - Comptes UE: Utilisez
https://otlp.eu01.nr-data.net - Vérifiez la clé de licence: Assurez-vous d'utiliser la clé de licence du bon compte
En cas de problèmes persistants, consultez le guide de dépannage du collecteur OpenTelemetry et la documentation OpenTelemetry de New Relic.
Prochaines étapes
Si vous avez résolu vos problèmes :
- Retour à la configuration: Retournez au guide de configuration du monitoring Docker pour terminer votre configuration
- Explorez vos données: Apprenez à interroger et visualiser vos métriques Docker avec le guide de référence des métriques
- Configurer des alertes: Créez un monitoring proactif avec des conditions d'alerte pour les métriques critiques des conteneurs