Si ha completado la instalación de la integración de OpenTelemetry de Elasticsearch o la instalación de Kubernetes pero no ve datos en New Relic, busque su problema a continuación y siga los pasos de la solución.
Implementaciones basadas en host
Cómo verificar
$sudo systemctl status otelcol-contribResolución
- Si el servicio está inactivo, inícielo:
sudo systemctl start otelcol-contrib - Si el servicio falló, corrija los errores de configuración y reinicie:
sudo systemctl restart otelcol-contrib
Cómo verificar
$sudo journalctl -u otelcol-contrib.service -fResolución
Revise la salida del log y resuelva la causa raíz (por ejemplo, problemas de conexión, fallas de autenticación o problemas de permisos).
Muestra de error:
dial tcp [::1]:9200: connect: connection refused
Resolución
- Asegúrese de que el
endpointenconfig.yamlcoincida con el host y el puerto de Elasticsearch. - Confirme que Elasticsearch se esté ejecutando y sea accesible desde el host del colector.
Muestra de error:
permanent error: 403 Forbidden
Resolución
Verifique
NEWRELIC_LICENSE_KEYen/etc/systemd/system/otelcol-contrib.service.d/environment.conf.Recargue systemd y reinicie el recopilador:
bash$sudo systemctl daemon-reload$sudo systemctl restart otelcol-contrib
Muestra de error:
permission denied
o
cannot open file
Resolución
- Agregue el usuario del colector al grupo de Elasticsearch:bash$sudo usermod -a -G elasticsearch otelcol-contrib
- Reinicie el colector:
sudo systemctl restart otelcol-contrib
Cómo verificar
$# Unsecured cluster$curl -I http://localhost:9200$
$# With authentication$curl -u username:password -k https://localhost:9200Resolución
Verifique que el clúster esté en buen estado, que las credenciales sean válidas y que la configuración del firewall o de seguridad permita el acceso.
Resolución
- Asegúrese de que el procesador
resourcedetectionesté incluido en cada pipeline de métricas. - Verifique que
elasticsearch.cluster.nameesté configurado mediante el procesadorresource/cluster_name_override.
Resolución
- Confirme que las rutas del receptor
filelogsean correctas y absolutas. - Verifique que el pipeline de logs incluya tanto el receptor
filelogcomo el exportadorotlphttp.
Implementaciones de Kubernetes
Cómo verificar
$# Verify your Elasticsearch pods have the required label$kubectl get pods -n <namespace> -l app=elasticsearch --show-labelsResolución
Si no se devuelven pods, a sus pods de Elasticsearch les falta la etiqueta
app=elasticsearch
requerida. El receiver_creator no puede descubrir pods sin etiquetas coincidentes.
- Para StatefulSet/despliegue, agregue la etiqueta en la plantilla del pod:spec:template:metadata:labels:app: elasticsearch
- Para los pods existentes, agregue la etiqueta y reinicie:bash$kubectl label pods -l <your-selector> app=elasticsearch -n <namespace>$kubectl rollout restart statefulset/elasticsearch -n <namespace>
- Si utiliza etiquetas personalizadas, actualice la regla del receptor en values.yaml para que coincida con sus etiquetas:rule: type == "pod" && labels["app"] == "your-custom-label"
Cómo verificar
$kubectl get pods -n newrelic$kubectl describe pod <collector-pod-name> -n newrelicResolución
- Verifique los eventos del pod para detectar errores:
kubectl describe pod - Revisar los logs del recolector:bash$kubectl logs -n newrelic -l app.kubernetes.io/name=opentelemetry-collector
- Verifique que exista el secreto:bash$kubectl get secret newrelic-licenses -n newrelic
- Verificar que los límites de recursos no sean demasiado bajos
Cómo verificar
$# Check collector logs for discovery errors$kubectl logs -n newrelic -l app.kubernetes.io/name=opentelemetry-collector | grep "receiver_creator"Resolución
- Verifique que los permisos RBAC estén configurados correctamente:bash$kubectl get clusterrole | grep opentelemetry$kubectl describe clusterrole <role-name>
- Asegúrese de que el recolector tenga permisos para observar pods, nodos y extremos
- Verifique que la extensión k8s_observer esté habilitada en la configuración
Cómo verificar
$# Check network policies$kubectl get networkpolicies -n <namespace>$
$# Test connectivity from collector to Elasticsearch$kubectl exec -n newrelic <collector-pod> -- curl http://<es-pod-ip>:9200Resolución
- Verifique que las políticas de red permitan el tráfico desde el namespace newrelic hacia su namespace de Elasticsearch
- Verifique si los pods de Elasticsearch están exponiendo el puerto correcto (predeterminado: 9200)
- Asegúrese de que ninguna regla de firewall bloquee la comunicación entre pods.
Muestra de error:
permanent error: 403 Forbidden
Resolución
- Verifique que el secreto contenga la clave de licencia correcta:bash$kubectl get secret newrelic-licenses -n newrelic -o jsonpath='{.data.NEWRELIC_LICENSE_KEY}' | base64 -d
- Asegúrese de que el extremo OTLP sea correcto para su región
- Compruebe que el secreto esté montado en el pod recolector:bash$kubectl describe pod <collector-pod> -n newrelic | grep -A5 "Environment"
Resolución
- Verifique que está usando
mode: daemonset(el modo de despliegue no puede acceder a los logs del nodo) - Verifique que los montajes de volumen estén configurados correctamente:bash$kubectl describe pod <collector-pod> -n newrelic | grep -A10 "Mounts"
- Verifique que la ruta del receptor filelog coincida con los logs de su pod de Elasticsearch:bash$kubectl exec -n newrelic <collector-pod> -- ls /var/log/pods/*/elasticsearch*/*.log
- Asegúrese de que el recolector tenga permisos de lectura en los directorios de logs del host
Resolución
- Verifique que la variable de entorno
K8S_CLUSTER_NAMEesté configurada en values.yaml - Verifique que el procesador
resource/clusteresté en el pipeline de métricas - Consulta para verificar:Verifique si el atributoFROM Metric SELECT * WHERE metricName LIKE 'elasticsearch.%' LIMIT 1
k8s.cluster.nameestá presente