Monitorez vos serveurs NGINX auto-hébergés avec OpenTelemetry pour envoyer des métriques de performance et des données télémétriques à New Relic.
Vous pouvez choisir entre trois options de collecteur :
- NRDOT : Distribution New Relic d'OpenTelemetry
- OTel Collector Contrib : Collecteur OpenTelemetry standard avec des composants issus de la communauté
- Prometheus Receiver : pour les environnements exécutant déjà nginx-prometheus-exporter
Avant de commencer
Assurez-vous d'avoir :
Clé de licenceNew Relic valide
NGINX avec le module HTTP stub status activé
L'un des collecteurs suivants installés sur un hôte Linux :
Accès réseau de l'hôte Linux vers :
- Point de terminaison d'état stub HTTP NGINX
- Le point de terminaison OTLPde New Relic
Configurer le monitoring NGINX
Choisissez votre collecteur préféré et suivez les étapes :
Vous pouvez utiliser le collecteur NRDOT pour monitorer votre serveur NGINX. Le collecteur NRDOT est une distribution préconfigurée qui inclut des composants spécifiques à New Relic.
Pour installer et configurer le collecteur NRDOT, suivez ces étapes :
Conseil
Si une étape de vérification échoue, installez les composants manquants avant de poursuivre. Besoin d'aide pour installer le collecteur NRDOT ? Consultez la section d'installation du référentiel nrdot-collector-releases.
Lors de l'installation, utilisez export collector_distro="nrdot-collector"
Configurez le collecteur NRDOT pour extraire les métriques de votre point de terminaison d'état stub NGINX et les envoyer à New Relic.
Important
Choisissez votre approche de monitoring:
- Monitoring NGINX uniquement (ce guide) : monitore juste les performances et les métriques de votre serveur web NGINX
- Monitoring complet du serveur : monitore NGINX ainsi que tout votre serveur (utilisation du CPU, mémoire, espace disque, logs système)
Si vous souhaitez monitorer l'ensemble de votre serveur, et pas seulement NGINX, utilisez plutôt la configuration par défaut du collecteur NRDOT et ajoutez-y la configuration du récepteur NGINX.
Créez le fichier de configuration /etc/nrdot-collector/nginx-config.yaml:
receivers: nginx: endpoint: <YOUR_STUB_STATUS_ENDPOINT> # Replace with your stub status URL collection_interval: 30s # How often to collect metrics metrics: nginx.requests: enabled: true nginx.connections_accepted: enabled: true nginx.connections_handled: enabled: true nginx.connections_current: enabled: true
processors: # Detect system information resourcedetection: detectors: [system] system: resource_attributes: host.name: enabled: false host.id: enabled: true
# Add NGINX-specific identification resource/nginx: attributes: - key: nginx.server.endpoint value: "<YOUR_STUB_STATUS_ENDPOINT>" # Replace with your endpoint action: upsert - key: nginx.deployment.name value: "<DEPLOYMENT_NAME>" # Replace with your deployment name action: upsert # Batch metrics for efficient sending batch: timeout: 30s send_batch_size: 1024
# Transform metrics for better display in New Relic transform/nginx_metrics: metric_statements: - context: resource statements: # Customize the display name as needed for your New Relic dashboard - set(attributes["nginx.display.name"], Concat(["server", attributes["nginx.deployment.name"]], ":")) transform/metadata_nullify: metric_statements: - context: metric statements: - set(description, "") - set(unit, "")
exporters: otlp_http: endpoint: ${env:YOUR_NEWRELIC_OTLP_ENDPOINT} headers: api-key: ${env:YOUR_NEW_RELIC_LICENSE_KEY}
service: pipelines: metrics/nginx: receivers: [nginx] processors: [resourcedetection, resource/nginx, batch, transform/nginx_metrics, transform/metadata_nullify] exporters: [otlp_http]Paramètres de configuration
Le tableau suivant décrit les principaux paramètres de configuration :
paramètres | Description |
|---|---|
| Remplacez par le point de terminaison de statut stub NGINX (par exemple |
| Remplacez par un nom de déploiement unique pour ce serveur NGINX (par exemple |
| Intervalle en secondes pour collecter les métriques. La valeur par défaut est définie sur |
| Délai d'attente en secondes avant d'envoyer les métriques groupées. La valeur par défaut est définie sur |
| Nombre de métriques à regrouper par lot avant l'envoi. La valeur par défaut est définie sur |
Mettez à jour la configuration du collecteur NRDOT pour utiliser votre fichier de configuration NGINX et définissez le point de terminaison OTLP.
Déterminez votre point de terminaison OTLP en fonction de votre région New Relic. Consultez Configurer le point de terminaison, le port et le protocole pour la liste complète des points de terminaison et des ports pris en charge pour votre région.
Important
Votre clé de licence est déjà configurée dans /etc/nrdot-collector/nrdot-collector.conf lors de l'installation. Il vous suffit de mettre à jour le chemin du fichier de configuration et le point de terminaison OTLP.
Mettez à jour le fichier de configuration du collecteur :
$export collector_distro="nrdot-collector"$export otlp_endpoint="<YOUR_NEWRELIC_OTLP_ENDPOINT>" # Replace with your region's endpoint$
$# Update the config file path to point to nginx-config.yaml$sudo sed -i 's|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/config.yaml"|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/nginx-config.yaml"|' /etc/${collector_distro}/${collector_distro}.conf$
$# Add the OTLP endpoint$echo "OTEL_EXPORTER_OTLP_ENDPOINT=${otlp_endpoint}" | sudo tee -a /etc/${collector_distro}/${collector_distro}.conf > /dev/nullEn plus des métriques, vous pouvez envoyer les logs d'accès et d'erreurs NGINX à New Relic pour un monitoring et un dépannage complets. Ces logs complètent les métriques NGINX de base et fournissent des informations détaillées au niveau des requêtes.
Conseil
Ignorez cette étape si vous n'avez besoin que des métriques NGINX de base et que vous n'avez pas besoin de logs de requêtes détaillés.
- Pour configurer NGINX afin qu'il génère des logs au format JSON, ajoutez ceci à votre configuration NGINX (
/etc/nginx/nginx.conf) :
http { # JSON log format for better parsing log_format json_combined escape=json '{' '"time":"$time_local",' '"remote_addr":"$remote_addr",' '"request":"$request",' '"status":$status,' '"bytes_sent":$body_bytes_sent,' '"request_time":$request_time,' '"referer":"$http_referer",' '"user_agent":"$http_user_agent"' '}';
# Use the JSON format for access logs access_log /var/log/nginx/access.log json_combined; error_log /var/log/nginx/error.log warn;
# Your existing configuration...}- Rechargez NGINX pour appliquer les modifications :
$sudo nginx -t && sudo nginx -s reload- Pour configurer le collecteur pour le transfert de logs, ajoutez ces sections à votre
/etc/nrdot-collector/nginx-config.yaml:
receivers: # Your existing nginx receiver... nginx: # existing configuration...
# Add log receivers filelog/nginx_access: include: - /var/log/nginx/access.log
filelog/nginx_error: include: - /var/log/nginx/error.log
processors: # Your existing processors...
# Add log processor transform/nginx_access_logs: log_statements: - context: resource statements: - set(attributes["nginx.display.name"], Concat(["server", attributes["nginx.deployment.name"]], ":")) - set(attributes["logtype"], "nginx") transform/nginx_error_logs: log_statements: - context: resource statements: - set(attributes["nginx.display.name"], Concat(["server", attributes["nginx.deployment.name"]], ":")) - set(attributes["logtype"], "nginx-error")
service: pipelines: # Your existing metrics pipeline...
# Add log pipelines logs/nginx-access: receivers: [filelog/nginx_access] processors: [resource/nginx, batch, transform/nginx_access_logs] exporters: [otlp_http]
logs/nginx-error: receivers: [filelog/nginx_error] processors: [resource/nginx, batch, transform/nginx_error_logs] exporters: [otlp_http]- Définir les autorisations et appliquer la configuration. Autoriser le collecteur à lire les fichiers de log NGINX :
$# Add collector user to adm group (has read access to logs)$sudo usermod -a -G adm nrdot-collector$
$# Ensure log files are readable$sudo chmod 644 /var/log/nginx/access.log$sudo chmod 644 /var/log/nginx/error.logMaintenant que tout est configuré, démarrez le collecteur NRDOT et vérifiez que les données sont acheminées vers New Relic.
Démarrer le collecteur :
- Appliquer les modifications de configuration :
bash$sudo systemctl daemon-reload$sudo systemctl restart nrdot-collector.service- Vérifiez que le service est en cours d'exécution :
bash$sudo systemctl status nrdot-collector.serviceSortie attendue :
Active: active (running)sans erreurs récentesVérifier la collecte de données :
- Vérifiez les logs de démarrage :
bash$sudo journalctl -u nrdot-collector.service -n 20- Générez du trafic de test (pour créer des métriques) :
bash$# Make a few requests to your NGINX server$curl http://localhostAttendez que les données initiales apparaissent dans New Relic, puis accédez à votre dashboard NGINX pour vérifier la collecte des données.
Conseil
Si une étape de vérification échoue, installez les composants manquants avant de continuer. Besoin d'aide pour installer le collecteur ? Consultez le guide d’installation d’OpenTelemetry Collector.
Configurez le collecteur OpenTelemetry pour extraire les métriques de votre point de terminaison d'état stub NGINX et les envoyer à New Relic.
Important
Avant de modifier : sauvegardez votre configuration existante : sudo cp /etc/otelcol-contrib/config.yaml /etc/otelcol-contrib/config.yaml.backup
Modifiez votre fichier de configuration du collecteur (généralement /etc/otelcol-contrib/config.yaml) et ajoutez les sections suivantes. Si vous avez déjà des sections de récepteurs, de processeurs ou d'exportateurs, fusionnez-les avec votre configuration existante :
- Configurez le récepteur NGINX :
receivers: nginx: endpoint: <YOUR_STUB_STATUS_ENDPOINT> # Replace with your stub status URL collection_interval: 30s # How often to collect metrics metrics: nginx.requests: enabled: true nginx.connections_accepted: enabled: true nginx.connections_handled: enabled: true nginx.connections_current: enabled: true- Configurez les processeurs pour les métadonnées et le traitement par lots :
processors: # Detect system information resourcedetection: detectors: [system] system: resource_attributes: host.name: enabled: false host.id: enabled: true
# Add NGINX-specific identification resource/nginx: attributes: - key: nginx.server.endpoint value: "<YOUR_STUB_STATUS_ENDPOINT>" # Replace with your endpoint action: upsert - key: nginx.deployment.name value: "<DEPLOYMENT_NAME>" # Replace with your deployment name action: upsert
# Batch metrics for efficient sending batch: timeout: 30s send_batch_size: 1024
# Transform metrics for better display in New Relic transform/nginx_metrics: metric_statements: - context: resource statements: # Customize the display name as needed for your New Relic dashboard - set(attributes["nginx.display.name"], Concat(["server", attributes["nginx.deployment.name"]], ":")) transform/metadata_nullify: metric_statements: - context: metric statements: - set(description, "") - set(unit, "")- Configurez l'exportateur New Relic :
exporters: # Send metrics to New Relic via OTLP otlp_http: endpoint: ${env:YOUR_NEWRELIC_OTLP_ENDPOINT} headers: api-key: ${env:YOUR_NEW_RELIC_LICENSE_KEY}- Connectez le tout avec un pipeline :
service: pipelines: metrics/nginx: receivers: [nginx] processors: [resourcedetection, resource/nginx, batch, transform/nginx_metrics, transform/metadata_nullify] exporters: [otlp_http]Paramètres de configuration
Le tableau suivant décrit les principaux paramètres de configuration :
paramètres | Description |
|---|---|
| Remplacez par le point de terminaison de statut stub NGINX (par exemple |
| Remplacez par un nom de déploiement unique pour ce serveur NGINX (par exemple |
| Intervalle en secondes pour collecter les métriques. La valeur par défaut est définie sur |
| Délai d'attente en secondes avant d'envoyer les métriques groupées. La valeur par défaut est définie sur |
| Nombre de métriques à regrouper par lot avant l'envoi. La valeur par défaut est définie sur |
Configurez l'authentification sécurisée afin que l'OpenTelemetry Collector puisse envoyer des données à votre compte New Relic. Cette étape configure les variables d'environnement pour sécuriser vos informations d'identification.
Obtenez vos identifiants New Relic :
- Clé de licence : récupérez votre clé de licence à partir de la page de l'UI des clés API
- Point de terminaison OTLP : utilisez le point de terminaison de votre région parmi les points de terminaison OTLP New Relic
Configurez les identifiants :
- Créer un répertoire de remplacement systemd :
bash$sudo mkdir -p /etc/systemd/system/otelcol-contrib.service.d- Créez le fichier de configuration de l'environnement :
bash$cat <<EOF | sudo tee /etc/systemd/system/otelcol-contrib.service.d/environment.conf$[Service]$Environment="NEWRELIC_OTLP_ENDPOINT=<YOUR_NEWRELIC_OTLP_ENDPOINT>" # Replace with your region's endpoint$Environment="NEWRELIC_LICENSE_KEY=YOUR_NEW_RELIC_LICENSE_KEY"$EOF
En plus des métriques, vous pouvez envoyer les logs d’accès et d’erreurs NGINX à New Relic pour un monitoring et un dépannage complets. Ces logs complètent les métriques NGINX de base et fournissent des informations détaillées au niveau des requêtes.
Conseil
Ignorez cette étape si vous n'avez besoin que des métriques NGINX de base et que vous n'avez pas besoin de logs de requêtes détaillés.
Pour configurer NGINX afin qu'il génère des logs au format JSON, ajoutez ceci à votre configuration NGINX (
/etc/nginx/nginx.conf) :http {# JSON log format for better parsinglog_format json_combined escape=json'{''"time":"$time_local",''"remote_addr":"$remote_addr",''"request":"$request",''"status":$status,''"bytes_sent":$body_bytes_sent,''"request_time":$request_time,''"referer":"$http_referer",''"user_agent":"$http_user_agent"''}';# Use the JSON format for access logsaccess_log /var/log/nginx/access.log json_combined;error_log /var/log/nginx/error.log warn;# Your existing configuration...}Rechargez NGINX pour appliquer les modifications :
bash$sudo nginx -t && sudo nginx -s reloadPour configurer le collecteur pour le transfert de logs, ajoutez ces sections à votre
/etc/otelcol-contrib/config.yaml:receivers:# Your existing nginx receiver...nginx:# existing configuration...# Add log receiversfilelog/nginx_access:include:- /var/log/nginx/access.logfilelog/nginx_error:include:- /var/log/nginx/error.logprocessors:# Your existing processors...# Add log processortransform/nginx_access_logs:log_statements:- context: resourcestatements:- set(attributes["nginx.display.name"], Concat(["server", attributes["nginx.deployment.name"]], ":"))- set(attributes["logtype"], "nginx")transform/nginx_error_logs:log_statements:- context: resourcestatements:- set(attributes["nginx.display.name"], Concat(["server", attributes["nginx.deployment.name"]], ":"))- set(attributes["logtype"], "nginx-error")service:pipelines:# Your existing metrics pipeline...# Add log pipelineslogs/nginx-access:receivers: [filelog/nginx_access]processors: [resource/nginx, batch, transform/nginx_access_logs]exporters: [otlp_http]logs/nginx-error:receivers: [filelog/nginx_error]processors: [resource/nginx, batch, transform/nginx_error_logs]exporters: [otlp_http]Définir les autorisations et appliquer la configuration. Autoriser le collecteur à lire les fichiers de log NGINX :
bash$# Add collector user to adm group (has read access to logs)$sudo usermod -a -G adm otelcol-contrib$$# Ensure log files are readable$sudo chmod 644 /var/log/nginx/access.log$sudo chmod 644 /var/log/nginx/error.log
Maintenant que tout est configuré, démarrez le collecteur OpenTelemetry et vérifiez que les données sont acheminées vers New Relic.
Démarrer le collecteur :
- Appliquer les modifications de configuration :
bash$sudo systemctl daemon-reload$sudo systemctl restart otelcol-contrib.service- Vérifiez que le service est en cours d'exécution :
bash$sudo systemctl status otelcol-contrib.serviceSortie attendue :
Active: active (running)sans erreurs récentesVérifier la collecte de données :
- Vérifiez les logs de démarrage :
bash$sudo journalctl -u otelcol-contrib.service -n 20- Générez du trafic de test (pour créer des métriques) :
bash$# Make a few requests to your NGINX server$curl http://localhostAttendez que les données initiales apparaissent dans New Relic, puis accédez à votre dashboard NGINX pour vérifier la collecte des données.
Utilisez cette approche si vous avez déjà nginx-prometheus-exporter en cours d'exécution dans votre environnement, ou si vous migrez depuis un stack de monitoring basé sur Prometheus.
Conseil
Recommandé : si vous n'avez pas déjà un exportateur Prometheus en cours d'exécution, utilisez plutôt les onglets collecteur NRDOT ou OpenTelemetry Collector Contrib. Ils se connectent directement au point de terminaison de statut stub NGINX sans nécessiter de composant exportateur supplémentaire.
Cette configuration fonctionne à la fois avec NRDOT et OTel Collector Contrib. Placez-le dans l'emplacement de configuration approprié :
- NRDOT :
/etc/nrdot-collector/config.yaml - Collecteur OTel Contrib :
/etc/otelcol-contrib/config.yaml
Conseil
Sauvegardez votre configuration existante avant d'effectuer des modifications :
$# For NRDOT$sudo cp /etc/nrdot-collector/config.yaml /etc/nrdot-collector/config.yaml.backup$
$# For OTel Collector Contrib$sudo cp /etc/otelcol-contrib/config.yaml /etc/otelcol-contrib/config.yaml.backupRemplacez le contenu du fichier par la configuration suivante :
Important
Remplacez <YOUR_STUB_STATUS_ENDPOINT> par votre URL de statut stub NGINX (par exemple http://127.0.0.1:8080/nginx_status) et <DEPLOYMENT_NAME> par un nom unique pour ce serveur NGINX.
receivers: prometheus/nginx: config: scrape_configs: - job_name: nginx scrape_interval: 30s static_configs: - targets: ["localhost:9113"] # Update if exporter runs on a different port
processors: resourcedetection/prom: detectors: [system] system: resource_attributes: host.name: enabled: false host.id: enabled: true
resource/nginx_prom: attributes: - key: nginx.server.endpoint value: "<YOUR_STUB_STATUS_ENDPOINT>" # Replace with your stub status URL action: upsert - key: nginx.deployment.name value: "<DEPLOYMENT_NAME>" # Replace with a unique server name action: upsert # Strip prometheus receiver auto-labels — absent from nginxreceiver output - key: service.name action: delete - key: service.instance.id action: delete - key: net.host.name action: delete - key: net.host.port action: delete - key: server.address action: delete - key: server.port action: delete
# Rename prometheus metric names to nginxreceiver schema names metricstransform/nginx_prom: transforms: - include: nginx_http_requests_total action: update new_name: nginx.requests - include: nginx_connections_accepted action: update new_name: nginx.connections_accepted - include: nginx_connections_handled action: update new_name: nginx.connections_handled - include: ^nginx_connections_(?P<state>active|reading|writing|waiting)$ match_type: regexp action: combine new_name: nginx.connections_current
# Keep only the 4 renamed nginx.* metrics filter/nginx_prom_only: metrics: include: match_type: regexp metric_names: - ^nginx\..*
transform/nginx_metrics_prom: metric_statements: - context: resource statements: - set(attributes["nginx.display.name"], Concat(["server", attributes["nginx.deployment.name"]], ":"))
transform/metadata_nullify_prom: metric_statements: - context: metric statements: - set(description, "") - set(unit, "")
batch/nginx_prom: timeout: 30s send_batch_size: 1024
exporters: otlphttp/nginx_prom: endpoint: ${env:OTEL_EXPORTER_OTLP_ENDPOINT} headers: api-key: ${env:NEW_RELIC_LICENSE_KEY}
service: pipelines: metrics/nginx_prometheus: receivers: [prometheus/nginx] processors: - resourcedetection/prom - resource/nginx_prom - metricstransform/nginx_prom - filter/nginx_prom_only - transform/nginx_metrics_prom - transform/metadata_nullify_prom - batch/nginx_prom exporters: [otlphttp/nginx_prom]Paramètres de configuration
paramètres | Description |
|---|---|
| Votre URL de statut stub NGINX (par exemple |
| Nom unique pour ce serveur NGINX (par exemple |
| Adresse du nginx-prometheus-exporter (par défaut |
| Fréquence de collecte des métriques à partir de l'exportateur. Par défaut : |
Créez une surcharge systemd pour injecter les variables d'environnement requises. Remplacez <collector-service> par le nom de votre service de collecteur (nrdot-collector ou otelcol-contrib) :
$sudo mkdir -p /etc/systemd/system/<collector-service>.service.dCréez le fichier /etc/systemd/system/<collector-service>.service.d/environment.conf:
[Service]Environment="OTEL_EXPORTER_OTLP_ENDPOINT=https://otlp.nr-data.net:4318"Environment="NEW_RELIC_LICENSE_KEY=YOUR_NEW_RELIC_LICENSE_KEY"Remplacez YOUR_NEW_RELIC_LICENSE_KEY par votre .
Conseil
Pour les comptes de l'UE, utilisez OTEL_EXPORTER_OTLP_ENDPOINT=https://otlp.eu01.nr-data.net:4318. Consultez Configurer le point de terminaison, le port et le protocole pour la liste complète des points de terminaison régionaux.
Appliquez la configuration et redémarrez le collecteur. Remplacez <collector-service> par nrdot-collector ou otelcol-contrib:
$sudo systemctl daemon-reload$sudo systemctl restart <collector-service>.serviceVérifiez que le service est en cours d'exécution :
$sudo systemctl status <collector-service>.service$sudo journalctl -u <collector-service>.service -n 20Sortie attendue : Active: active (running) sans erreurs.
Après quelques minutes, exécutez cette requête NRQL pour confirmer que les données circulent. Remplacez <DEPLOYMENT_NAME> par la valeur que vous avez définie dans la configuration :
FROM Metric SELECT *WHERE metricName LIKE 'nginx.%' AND nginx.deployment.name = '<DEPLOYMENT_NAME>'SINCE 10 minutes agoAttendez que les données initiales apparaissent dans New Relic, puis accédez à votre dashboard NGINX pour vérifier la collecte des données.
Affichez vos données dans New Relic
Une fois votre configuration terminée et que les données circulent, vous pouvez accéder à vos métriques NGINX dans les dashboards New Relic et créer des alertes personnalisées.
Pour des instructions complètes sur l'accès aux dashboards, l'interrogation des données avec NRQL et la création d'alertes, consultez Trouver et interroger vos données NGINX.
Dépannage
Si vous rencontrez des problèmes lors de l'installation, utilisez ce guide de dépannage pour diagnostiquer et résoudre les problèmes courants.
Obtention de 404 Not Found :
$curl http://<NGINX_SERVER_IP>:<YOUR_LOCAL_PORT>/nginx_statusSolutions :
- Vérifiez que le chemin d'accès correspond à l'URL de votre requête
- Vérifiez que la configuration a été ajoutée au bloc serveur correct
- Exécutez
sudo nginx -T | grep -A5 nginx_statuspour confirmer que la configuration est chargée
Obtention d'une erreur 403 Interdit :
- Assurez-vous que vous testez depuis la bonne IP du serveur
<NGINX_SERVER_IP> - Vérifiez vos directives
allow/denydans la configuration NGINX - Vérifiez qu'aucune autre restriction d'accès ne bloque la requête
Connexion refusée :
- Vérifiez si NGINX est en cours d'exécution :
sudo systemctl status nginx - Vérifiez que votre port configuré n'est pas bloqué :
sudo netstat -tlnp | grep :<YOUR_LOCAL_PORT> - Vérifiez les règles de pare-feu, le cas échéant
Vérifiez l'état du service :
$sudo systemctl status ${collector_distro}.service$sudo journalctl -u ${collector_distro}.service -n 50Causes et corrections courantes :
- Erreurs de syntaxe YAML - Corrigez les problèmes d'indentation et de syntaxe
- Variables d'environnement manquantes - Vérifiez que les informations d'identification sont définies dans le fichier d'environnement
- Problèmes de permissions de fichiers - Exécuter
sudo chown ${collector_distro}:${collector_distro} /etc/${collector_distro}/config.yaml - URL de point de terminaison non valides - Vérifiez le point de terminaison NGINX et le point de terminaison OTLP New Relic
- Configurations de composants manquantes - Assurez-vous que tous les récepteurs, processeurs et exportateurs référencés dans la section des pipelines de service sont réellement définis dans leurs sections de configuration respectives ci-dessus
Redémarrer après les corrections :
$sudo systemctl restart ${collector_distro}.serviceDiagnostic étape par étape :
Vérifiez que le statut stub NGINX fonctionne :
bash$curl http://<NGINX_SERVER_IP>:<YOUR_LOCAL_PORT>/nginx_statusDoit renvoyer les statistiques de connexion.
Vérifiez que le collecteur est en cours d'exécution et en bonne santé :
bash$sudo systemctl status ${collector_distro}.service$sudo journalctl -u ${collector_distro} -n 20Les logs fourniront un contexte détaillé en cas de problèmes de configuration ou d'exécution avec OpenTelemetry Collector.
Vérifiez les données avec NRQL :
FROM Metric SELECT * WHERE nginx.deployment.name LIKE '%production%' LIMIT 1
Aucun log n'apparaît dans New Relic :
$# Check Collector logs for file errors$sudo journalctl -u ${collector_distro} -f | grep -i "filelog\|error"Problèmes courants :
- Erreurs d'autorisation de fichier - Ajouter le collecteur au groupe adm :
sudo usermod -a -G adm ${collector_distro} - Chemins de fichiers incorrects - Vérifiez les emplacements des fichiers de log dans votre configuration
Prochaines étapes
En savoir plus sur vos données :
- Rechercher et interroger vos données NGINX - Accéder aux dashboards, créer des requêtes personnalisées et configurer des alertes
- Référence des métriques et attributs NGINX OpenTelemetry - Référence complète des métriques avec descriptions et exemples
- Vue d'ensemble de NGINX OpenTelemetry - Comprendre les métriques collectées, les attributs et les cas d'utilisation
Explorer le monitoring connexe :
- Monitorer NGINX Plus avec OpenTelemetry - Pour les déploiements commerciaux de NGINX Plus
- Monitorer NGINX sur Kubernetes - Pour les environnements conteneurisés