Si vous avez terminé l’installation de l’intégration OpenTelemetry Elasticsearch ou l’installation Kubernetes mais que vous ne voyez pas de données dans New Relic, trouvez votre problème ci-dessous et suivez les étapes de résolution.
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
Si aucun pod n’est renvoyé, vos pods Elasticsearch ne possèdent pas l’étiquette
app=elasticsearch
requise. Le receiver_creator ne peut pas découvrir de pods sans étiquettes correspondantes.
- Pour un StatefulSet/déploiement, ajoutez l’étiquette dans le modèle de pod :spec:template:metadata:labels:app: elasticsearch
- Pour les pods existants, ajoutez l’étiquette et redémarrez :bash$kubectl label pods -l <your-selector> app=elasticsearch -n <namespace>$kubectl rollout restart statefulset/elasticsearch -n <namespace>
- Si vous utilisez des étiquettes personnalisées, mettez à jour la règle du récepteur dans values.yaml pour qu’elle corresponde à vos étiquettes :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
Vérifiez les événements du pod pour détecter des erreurs :
kubectl describe podConsultez les logs du collecteur :
bash$kubectl logs -n newrelic -l app.kubernetes.io/name=opentelemetry-collectorVérifiez que le secret existe :
bash$kubectl get secret newrelic-licenses -n newrelicVérifiez que les limites de ressources ne sont pas trop basses
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
Vérifiez que les autorisations RBAC sont correctement définies :
bash$kubectl get clusterrole | grep opentelemetry$kubectl describe clusterrole <role-name>Assurez-vous que le collecteur dispose des permissions pour surveiller les pods, les nœuds, et les points de terminaison
Vérifiez que l’extension k8s_observer est activée dans la configuration
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
- Vérifiez que les stratégies réseau autorisent le trafic depuis l’espace de nommage newrelic vers votre espace de nommage Elasticsearch
- Vérifiez si les pods Elasticsearch exposent le port correct (par défaut : 9200)
- Assurez-vous qu’aucune règle de pare-feu ne bloque la communication inter-pod
Exemple d'erreur:
permanent error: 403 Forbidden
Résolution
Vérifiez que le secret contient la bonne clé de licence :
bash$kubectl get secret newrelic-licenses -n newrelic -o jsonpath='{.data.NEWRELIC_LICENSE_KEY}' | base64 -dAssurez-vous que le point de terminaison OTLP est correct pour votre région
Vérifiez que le secret est monté dans le pod du collecteur :
bash$kubectl describe pod <collector-pod> -n newrelic | grep -A5 "Environment"
Résolution
Vérifiez que vous utilisez
mode: daemonset(le mode de déploiement ne peut pas accéder aux log des nœuds)Vérifiez que les montages de volumes sont correctement configurés :
bash$kubectl describe pod <collector-pod> -n newrelic | grep -A10 "Mounts"Vérifiez que le chemin du Récepteur filelog correspond à vos logs de pod Elasticsearch :
bash$kubectl exec -n newrelic <collector-pod> -- ls /var/log/pods/*/elasticsearch*/*.logAssurez-vous que le collecteur dispose des droits de lecture sur les répertoires de log de l’hôte
Résolution
Vérifiez que la variable d’environnement
K8S_CLUSTER_NAMEest définie dans values.yamlVérifiez que le Processeur
resource/clusterse trouve dans le pipeline de métriquesRequête à vérifier :
FROM Metric SELECT * WHERE metricName LIKE 'elasticsearch.%' LIMIT 1Vérifiez si l’attribut
k8s.cluster.nameest présent