Se você estiver enfrentando problemas com sua configuração de monitoramento do Docker, verifique estes problemas e soluções comuns.
Dica
Solução de problemas gerais do NRDOT: Para problemas de inicialização do coletor, validação de configuração, conectividade de rede e diagnósticos de NrIntegrationError, consulte o Guia de solução de problemas do NRDOT. Os problemas abaixo são específicos do monitoramento de contêineres Docker.
Problema: Os contêineres Docker estão em execução, mas nenhuma métrica do Docker aparece no New Relic após mais 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"Soluções:
Acesso ao socket do Docker: Adicione o usuário nrdot-collector ao grupo docker:
bash$sudo usermod -aG docker nrdot-collector$sudo systemctl restart nrdot-collectorVersão da API do Docker: Certifique-se de que a versão da API do Docker seja 1.25+:
bash$docker version --format '{{.Client.APIVersion}}'
Problema: Os logs do Coletor mostram "permissão negada" ao acessar o socket do 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"Soluções:
$# 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: Alguns contêineres exibem métricas enquanto outros não, ou as métricas são 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"Soluções:
- Visibilidade de contêineres: Garanta que todos os contêineres estejam acessíveis via caminho do socket do Docker configurado no coletor
- Limites de recursos: Aumente os valores de tempo limite do coletor se os contêineres estiverem lentos para responder. Edite seu
/etc/nrdot-collector/docker-stats-config.yaml:receivers:docker_stats:timeout: 10s # Increase from default 5scollection_interval: 30s # Reduce frequency if needed - Namespaces de rede: Alguns contêineres em namespaces de rede restritos podem não estar acessíveis
Problema: Coleta de logs configurada, mas os logs do contêiner não aparecem no 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"Soluções:
Permissões de arquivo: Conceda acesso ao diretório 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-collectorExposição de portas de contêiner: Exponha portas para descoberta de contêineres:
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 a configuração de logs: Certifique-se de que sua configuração de coleta de logs esteja incluída:
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 no New Relic:
FROM Log SELECT * WHERE newrelic.source='api.logs.otlp' SINCE 1 hour ago
Problema: O OpenTelemetry Collector falha ao iniciar ou trava imediatamente.
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.yamlSoluções:
- Erros de configuração: Corrija erros de sintaxe YAML e garanta que todos os campos obrigatórios estejam presentes
- Permissões ausentes: Certifique-se de que o usuário do coletor tenha acesso de leitura ao arquivo de configuração
- Variáveis de ambiente: Verifique se
NEWRELIC_LICENSE_KEYeNEWRELIC_OTLP_ENDPOINTestão definidas corretamente
Problema: Contêineres Docker estão em execução, mas nenhuma métrica aparece no New Relic após mais 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 psSoluções:
Acesso ao socket do Docker: Adicione o usuário do coletor ao grupo docker:
bash$sudo usermod -aG docker otelcol-contrib$sudo systemctl restart otelcol-contribProblemas com a chave de licença: Verifique se sua chave de licença está correta e tem as permissões adequadas:
bash$echo $NEWRELIC_LICENSE_KEY$# Should be 40-character NRAK-prefixed key for US, or EU equivalentConectividade de rede: Teste a acessibilidade do 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/metricsVersão da API do Docker: Certifique-se de que a versão da API do Docker seja 1.25+:
bash$docker version --format '{{.Client.APIVersion}}'
Problema: Os logs do Coletor mostram "permissão negada" ao acessar o socket do Docker.
Diagnósticos:
$# Check socket ownership and permissions$ls -la /var/run/docker.sock$
$# Check collector user membership$groups otelcol-contribSoluções:
$# 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: Alguns contêineres exibem métricas enquanto outros não, ou as métricas são 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-streamSoluções:
Visibilidade de contêineres: Garanta que todos os contêineres estejam acessíveis via caminho do socket do Docker configurado no coletor
Limites de recursos: Aumente os valores de tempo limite do coletor se os contêineres estiverem lentos para responder:
docker_stats:timeout: 10s # Increase from default 5scollection_interval: 30s # Reduce frequency if neededNamespaces de rede: Alguns contêineres em namespaces de rede restritos podem não estar acessíveis
Problema: OpenTelemetry Collector consumindo recursos excessivos do sistema.
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 -lSoluções:
Ajuste o intervalo de coleta: Reduza a frequência de monitoramento para ambientes com alta contagem de contêineres:
docker_stats:collection_interval: 30s # Increase from 15sDesative métricas custosas: Desative as métricas por CPU se não forem necessárias:
docker_stats:metrics:container.cpu.usage.percpu:enabled: falseConfigure o processamento em lote: Otimize o processamento em lote para seu ambiente:
batch:timeout: 60ssend_batch_size: 1024
Problema: Coleta de logs configurada, mas os logs do contêiner não aparecem no 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}}'Soluções:
Permissões de arquivo: Conceda acesso ao diretório de logs:
bash$sudo chmod -R 755 /var/lib/docker/containers/$# Or add collector to docker group$sudo usermod -aG docker otelcol-contribExposição de portas de contêiner: Exponha portas para descoberta de contêineres:
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:latestConfiguração do observador: Verifique as configurações do observador do Docker:
docker_observer:endpoint: unix:///var/run/docker.sockuse_hostname_if_present: trueuse_container_labels: true
Problema: As métricas aparecem na conta ou organização da New Relic errada.
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_ENDPOINTSoluções:
- Contas dos EUA: Use
https://otlp.nr-data.net - Contas da UE: Use
https://otlp.eu01.nr-data.net - Verifique a chave de licença: Certifique-se de que você está usando a chave de licença da conta correta
Para problemas persistentes, consulte o guia de solução de problemas do OpenTelemetry Collector e a documentação do OpenTelemetry da New Relic.
Próximos passos
Se você resolveu seus problemas:
- Voltar à configuração: Retorne ao guia de configuração do monitoramento do Docker para concluir sua configuração
- Explore seus dados: Saiba como consultar e visualizar suas métricas do Docker com o guia de referência de métricas
- Configurar alertas: Crie monitoramento proativo com condições de alerta para métricas críticas de contêineres