If you have completed the Elasticsearch OpenTelemetry integration installation or Kubernetes installation but don't see data in New Relic, find your issue below and follow the solution steps.
Déploiements basés sur l'hôte
Comment vérifier
$sudo systemctl status otelcol-contribRésolution
- Si le service est inactif, démarrez-le :
sudo systemctl start otelcol-contrib - Si le service a échoué, corrigez les erreurs de configuration et redémarrez :
sudo systemctl restart otelcol-contrib
Comment vérifier
$sudo journalctl -u otelcol-contrib.service -fRésolution
Examinez la sortie des logs et résolvez la cause première (par exemple, problèmes de connexion, échecs d'authentification ou problèmes d'autorisation).
Exemple d'erreur:
dial tcp [::1]:9200: connect: connection refused
Résolution
- Assurez-vous que le
endpointdansconfig.yamlcorrespond à l'hôte et au port Elasticsearch. - Confirmez qu'Elasticsearch est en cours d'exécution et accessible depuis l'hôte du collecteur.
Exemple d'erreur:
permanent error: 403 Forbidden
Résolution
Vérifier
NEWRELIC_LICENSE_KEYdans/etc/systemd/system/otelcol-contrib.service.d/environment.conf.Rechargez systemd et redémarrez le collecteur :
bash$sudo systemctl daemon-reload$sudo systemctl restart otelcol-contrib
Exemple d'erreur:
permission denied
ou
cannot open file
Résolution
- Ajoutez l'utilisateur du collecteur au groupe Elasticsearch :bash$sudo usermod -a -G elasticsearch otelcol-contrib
- Redémarrez le collecteur :
sudo systemctl restart otelcol-contrib
Comment vérifier
$# Unsecured cluster$curl -I http://localhost:9200$
$# With authentication$curl -u username:password -k https://localhost:9200Résolution
Vérifiez que le cluster est sain, que les identifiants sont valides et que les paramètres du pare-feu ou de sécurité autorisent l'accès.
Résolution
- Assurez-vous que le processeur
resourcedetectionest inclus dans chaque pipeline de métriques. - Vérifier que
elasticsearch.cluster.nameest défini via le processeurresource/cluster_name_override.
Résolution
- Confirmez que les chemins du récepteur
filelogsont corrects et absolus. - Vérifiez que le pipeline de logs inclut le récepteur
fileloget l'exportateurotlphttp.
Déploiements Kubernetes
Comment vérifier
$# Verify your Elasticsearch pods have the required label$kubectl get pods -n <namespace> -l app=elasticsearch --show-labelsRésolution
If no pods are returned, your Elasticsearch pods are missing the required
app=elasticsearch
label. The receiver_creator cannot discover pods without matching labels.
- For StatefulSet/Deployment, add the label in the pod template:spec:template:metadata:labels:app: elasticsearch
- For existing pods, add the label and restart:bash$kubectl label pods -l <your-selector> app=elasticsearch -n <namespace>$kubectl rollout restart statefulset/elasticsearch -n <namespace>
- If using custom labels, update the receiver rule in values.yaml to match your labels:rule: type == "pod" && labels["app"] == "your-custom-label"
Comment vérifier
$kubectl get pods -n newrelic$kubectl describe pod <collector-pod-name> -n newrelicRésolution
- Check pod events for errors:
kubectl describe pod - Review collector logs:bash$kubectl logs -n newrelic -l app.kubernetes.io/name=opentelemetry-collector
- Verify the secret exists:bash$kubectl get secret newrelic-licenses -n newrelic
- Check resource limits aren't too low
Comment vérifier
$# Check collector logs for discovery errors$kubectl logs -n newrelic -l app.kubernetes.io/name=opentelemetry-collector | grep "receiver_creator"Résolution
- Verify RBAC permissions are correctly set:bash$kubectl get clusterrole | grep opentelemetry$kubectl describe clusterrole <role-name>
- Ensure the collector has permissions to watch pods, nodes, and endpoints
- Check that k8s_observer extension is enabled in the config
Comment vérifier
$# 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>:9200Résolution
- Verify network policies allow traffic from the newrelic namespace to your Elasticsearch namespace
- Check if Elasticsearch pods are exposing the correct port (default: 9200)
- Ensure no firewall rules block inter-pod communication
Exemple d'erreur:
permanent error: 403 Forbidden
Résolution
- Verify the secret contains the correct license key:bash$kubectl get secret newrelic-licenses -n newrelic -o jsonpath='{.data.NEWRELIC_LICENSE_KEY}' | base64 -d
- Ensure the OTLP endpoint is correct for your region
- Check that the secret is mounted in the collector pod:bash$kubectl describe pod <collector-pod> -n newrelic | grep -A5 "Environment"
Résolution
- Verify you're using
mode: daemonset(deployment mode cannot access node logs) - Check volume mounts are correctly configured:bash$kubectl describe pod <collector-pod> -n newrelic | grep -A10 "Mounts"
- Verify the filelog receiver path matches your Elasticsearch pod logs:bash$kubectl exec -n newrelic <collector-pod> -- ls /var/log/pods/*/elasticsearch*/*.log
- Ensure the collector has read permissions on host log directories
Résolution
- Verify
K8S_CLUSTER_NAMEenvironment variable is set in values.yaml - Check the
resource/clusterprocessor is in the metrics pipeline - Query to verify:Check ifFROM Metric SELECT * WHERE metricName LIKE 'elasticsearch.%' LIMIT 1
k8s.cluster.nameattribute is present