Si tiene problemas con su configuración de monitoreo de Docker, consulte estos problemas comunes y sus soluciones.
Sugerencia
Solución de problemas generales de NRDOT: Para problemas de inicio del colector, validación de la configuración, conectividad de red y diagnósticos de NrIntegrationError, consulta la Guía de solución de problemas de NRDOT. Los siguientes problemas son específicos del monitoreo de contenedores Docker.
Problema: Los contenedores Docker están en ejecución, pero no aparecen métricas de Docker en New Relic después de más de 10 minutos.
Diagnósticos:
$# 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"Soluciones:
Acceso al socket de Docker: Agregue el usuario nrdot-collector al grupo docker:
bash$sudo usermod -aG docker nrdot-collector$sudo systemctl restart nrdot-collectorVersión de la API de Docker: Asegúrese de que la versión de la API de Docker sea 1.25+:
bash$docker version --format '{{.Client.APIVersion}}'
Problema: Los logs del colector muestran "permiso denegado" al acceder al socket de Docker.
Diagnósticos:
$# 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"Soluciones:
$# 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= settingProblema: Algunos contenedores muestran métricas mientras que otros no, o las métricas son esporádicas.
Diagnósticos:
$# 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"Soluciones:
- Visibilidad de contenedores: Asegúrese de que todos los contenedores sean accesibles a través de la ruta del socket de Docker configurada en el recopilador
- Límites de recursos: Aumente los valores de tiempo de espera del colector si los contenedores tardan en responder. Editar su
/etc/nrdot-collector/docker-stats-config.yaml:receivers:docker_stats:timeout: 10s # Increase from default 5scollection_interval: 30s # Reduce frequency if needed - Espacios de nombres de red: Algunos contenedores en espacios de nombres de red restringidos pueden no ser accesibles
Problema: Se configuró la recolección de logs, pero los logs del contenedor no aparecen en New Relic.
Diagnósticos:
$# 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"Soluciones:
Permisos de archivo: Otorgar acceso al directorio de 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-collectorExposición de puertos del contenedor: Exponga los puertos para el descubrimiento de contenedores:
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:latestVerifique la configuración de logs: Asegúrese de que su configuración de recolección de logs esté incluida:
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)Consultar logs en New Relic:
FROM Log SELECT * WHERE newrelic.source='api.logs.otlp' SINCE 1 hour ago
Problema: OpenTelemetry Collector falla al iniciar o se cierra de inmediato.
Diagnósticos:
$# 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.yamlSoluciones:
- Errores de configuración: Corrija los errores de sintaxis YAML y asegúrese de que todos los campos obligatorios estén presentes
- Permisos faltantes: Asegúrese de que el usuario del recopilador tenga acceso de lectura al archivo de configuración
- Variables de entorno: Verifique que
NEWRELIC_LICENSE_KEYyNEWRELIC_OTLP_ENDPOINTestén configuradas correctamente
Problema: Los contenedores de Docker se están ejecutando, pero no aparecen métricas en New Relic después de más de 10 minutos.
Diagnósticos:
$# 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 psSoluciones:
Acceso al socket de Docker: Agregue el usuario del recopilador al grupo docker:
bash$sudo usermod -aG docker otelcol-contrib$sudo systemctl restart otelcol-contribProblemas con la clave de licencia: Verifique que su clave de licencia sea correcta y tenga los permisos adecuados:
bash$echo $NEWRELIC_LICENSE_KEY$# Should be 40-character NRAK-prefixed key for US, or EU equivalentConectividad de red: Pruebe la accesibilidad del endpoint 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/metricsVersión de la API de Docker: Asegúrese de que la versión de la API de Docker sea 1.25+:
bash$docker version --format '{{.Client.APIVersion}}'
Problema: Los logs del colector muestran "permiso denegado" al acceder al socket de Docker.
Diagnósticos:
$# Check socket ownership and permissions$ls -la /var/run/docker.sock$
$# Check collector user membership$groups otelcol-contribSoluciones:
$# 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= settingProblema: Algunos contenedores muestran métricas mientras que otros no, o las métricas son esporádicas.
Diagnósticos:
$# 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-streamSoluciones:
Visibilidad de contenedores: Asegúrese de que todos los contenedores sean accesibles a través de la ruta del socket de Docker configurada en el recopilador
Límites de recursos: Aumente los valores de tiempo de espera del colector si los contenedores tardan en responder:
docker_stats:timeout: 10s # Increase from default 5scollection_interval: 30s # Reduce frequency if neededEspacios de nombres de red: Algunos contenedores en espacios de nombres de red restringidos pueden no ser accesibles
Problema: OpenTelemetry Collector consume recursos del sistema excesivos.
Diagnósticos:
$# 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 -lSoluciones:
Ajustar el intervalo de recolección: Reduzca la frecuencia de monitoreo para entornos con un alto número de contenedores:
docker_stats:collection_interval: 30s # Increase from 15sDesactive las métricas costosas: Desactive las métricas por CPU si no son necesarias:
docker_stats:metrics:container.cpu.usage.percpu:enabled: falseConfigure el procesamiento por lotes: Optimice el procesamiento por lotes para su entorno:
batch:timeout: 60ssend_batch_size: 1024
Problema: Se configuró la recolección de logs, pero los logs del contenedor no aparecen en New Relic.
Diagnósticos:
$# 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}}'Soluciones:
Permisos de archivo: Otorgar acceso al directorio de logs:
bash$sudo chmod -R 755 /var/lib/docker/containers/$# Or add collector to docker group$sudo usermod -aG docker otelcol-contribExposición de puertos del contenedor: Exponga los puertos para el descubrimiento de contenedores:
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:latestConfiguración del observador: Verifique la configuración del observador de Docker:
docker_observer:endpoint: unix:///var/run/docker.sockuse_hostname_if_present: trueuse_container_labels: true
Problema: Las métricas aparecen en la cuenta u organización de New Relic incorrecta.
Diagnósticos:
$# 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_ENDPOINTSoluciones:
- Cuentas de EE. UU.: Use
https://otlp.nr-data.net - Cuentas de la UE: Use
https://otlp.eu01.nr-data.net - Verifique la clave de licencia: Asegúrese de usar la clave de licencia de la cuenta correcta
Si los problemas persisten, consulte la guía de solución de problemas de OpenTelemetry Collector y la documentación de OpenTelemetry de New Relic.
Próximos pasos
Si ha resuelto sus problemas:
- Volver a la configuración: Regrese a la guía de configuración de monitoreo de Docker para completar su configuración
- Explora tus datos: Aprende a consultar y visualizar tus métricas de Docker con la guía de referencia de métricas
- Configura alertas: Crea un monitoreo proactivo con condiciones de alerta para métricas críticas de contenedores