Cette traduction automatique est fournie pour votre commodité.
En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.
Ce guide fournit des instructions complètes pour la configuration du monitoring de NGINX auto-hébergé avec OpenTelemetry. Suivez ces étapes pour configurer votre serveur NGINX, le collecteur OpenTelemetry et l'intégration New Relic.
/* <Callout variant="important"> **Avant de commencer**: Consultez la [vue d'ensemble de NGINX OpenTelemetry](/docs/opentelemetry/nginx/nginx-otel-overview/) pour comprendre ce que vous allez monitorer et les avantages de cette intégration. **Autres options de monitoring NGINX :** - Pour monitorer **NGINX Plus**, consultez [Monitorer NGINX Plus avec OpenTelemetry](/docs/opentelemetry/nginx-plus/nginx-plus-otel/). - Pour monitorer **NGINX sur Kubernetes**, consultez [Monitorer NGINX sur Kubernetes avec OpenTelemetry](/docs/opentelemetry/nginx/nginx-otel-kubernetes/). </Callout> <Callout variant="tip"> **Temps d'installation**: environ 20 minutes | **Niveau de compétence**: Intermédiaire (nécessite des connaissances de base de Linux/NGINX) </Callout> */
Sortie attendue : Informations de version (minimum v0.88.0 requis)
Testez la connectivité réseau :
bash
$
# For US region
$
curl-I https://otlp.nr-data.net:443
Résultat attendu : En-têtes de réponse HTTP (pas de refus de connexion)
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.
Étape 1 : Configurer l'état stub NGINX
Configurez le module stub_status pour exposer les métriques de votre serveur NGINX. Ce module fournit des statistiques de performance de base qu'OpenTelemetry collectera.
Ajoutez cette configuration à votre fichier de configuration NGINX (/etc/nginx/nginx.conf) :
server{
listen8080;
server_name localhost;
location /nginx_status{
stub_status;
}
}
Testez votre configuration NGINX :
bash
$
sudo nginx -t
Si le test réussit, rechargez NGINX :
bash
$
sudo nginx -s reload
Testez le point de terminaison :
bash
$
curl http://127.0.0.1:8080/nginx_status
Résultat attendu :
Active connections: 1
server accepts handled requests
16 16 16
Reading: 0 Writing: 1 Waiting: 0
Testez la réponse HTTP :
bash
$
curl-I http://127.0.0.1:8080/nginx_status
Résultat attendu : Doit commencer par HTTP/1.1 200 OK
Étape 2 : Configurer le collecteur OpenTelemetry
Configurez le collecteur OpenTelemetry pour extraire les métriques de votre point de terminaison d'état stub NGINX et les envoyer à New Relic.
Le collecteur OpenTelemetry utilise trois composants principaux pour le monitoring NGINX :
Receivers - Connectez-vous à votre point de terminaison d'état stub NGINX pour collecter des métriques
Processeurs - Ajouter l'identification du serveur et les métriques par lots pour une transmission efficace
Exportateurs - Envoyer les métriques traitées à votre compte New Relic via OTLP HTTP
Avant de modifier la configuration, vous aurez besoin de deux informations clés :
Un nom de déploiement unique - Choisissez un nom qui identifie ce serveur NGINX spécifique (par exemple, production-web-01, staging-api, prod-lb-01)
Le nom du déploiement apparaîtra dans les dashboards New Relic et vous aidera à identifier des serveurs spécifiques lorsque vous avez plusieurs instances NGINX.
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 :
1. Configurez le récepteur NGINX :
receivers:
nginx:
endpoint: http://127.0.0.1:8080/nginx_status # 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
2. Configurez les processeurs pour les métadonnées et le traitement par lots :
processors:
# Detect system information (hostname, etc.)
resourcedetection:
detectors:[system]
system:
resource_attributes:
host.name:
enabled:true
host.id:
enabled:true
# Add NGINX-specific identification
resource:
attributes:
-key: nginx.server.endpoint
value:"http://127.0.0.1:8080/nginx_status"# Replace with your endpoint
action: upsert
-key: nginx.deployment.name
value:"production-web-01"# Replace with your server 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
Remplacez ces valeurs dans la configuration ci-dessus :
URL du point de terminaison: Remplacez http://127.0.0.1:8080/nginx_status pour correspondre à votre configuration d'état factice de l'étape 1
Nom du déploiement: Remplacez production-web-01 par un identifiant unique pour ce serveur NGINX
Choisir un bon nom de déploiement :
Utilisez des noms descriptifs comme production-web-01, staging-api ou prod-lb-01
Doit être unique pour tous les serveurs NGINX de votre compte New Relic
Ce nom apparaîtra dans les dashboards et vous aidera à identifier des serveurs spécifiques
Gardez-le court mais significatif pour faciliter le filtrage et les alertes
Étape 3 : Configurer l'authentification
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.
Avant de configurer l'authentification, rassemblez ces deux informations :
Recherchez la section "Ingest - License" → Cliquez sur Show key
Copiez la clé de licence (commence par "NRAK-...")
** Votre point de terminaison OTLP :** Utilisez le point de terminaison approprié pour 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. Par exemple :
Mettez à jour la configuration avec vos informations d'identification :
Remplacez https://otlp.nr-data.net:4318 par le point de terminaison de votre région
Remplacez YOUR_LICENSE_KEY_HERE par votre clé de licence réelle ci-dessus
Étape 4 : Démarrer le monitoring
Maintenant que tout est configuré, démarrez le collecteur OpenTelemetry et vérifiez que les données sont acheminées vers New Relic.
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.service
Sortie attendue : Active: active (running) sans erreurs récentes
Vérifiez les logs de démarrage :
bash
$
sudo journalctl -u otelcol-contrib.service -n20
Recherchez ces indicateurs de réussite :
✅ "Everything is ready. Begin running and processing data."
✅ "Scraping metrics" - Collecte réussie depuis NGINX
✅ "Exporting metrics" - Envoi réussi à New Relic
Générez du trafic de test (pour créer des métriques) :
bash
$
# Make a few requests to your NGINX server
$
curl http://localhost
Laissez le temps aux données initiales d'apparaître dans New Relic, puis accédez à votre dashboard NGINX pour vérifier la collecte des données.
Étape 5 : (Facultatif) Transférer les logs NGINX
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.
Tout d'abord, configurez NGINX pour qu'il génère des logs au format JSON, qui sont plus faciles à analyser et à interroger.
Ajoutez ceci à votre configuration NGINX (/etc/nginx/nginx.conf) :
Autoriser le collecteur à lire les fichiers logs NGINX :
bash
$
# Add collector user to adm group (has read access to logs)
$
sudousermod-a-G adm otelcol-contrib
$
$
# Ensure log files are readable
$
sudochmod644 /var/log/nginx/access.log
$
sudochmod644 /var/log/nginx/error.log
Redémarrer le collecteur :
bash
$
sudo systemctl restart otelcol-contrib.service
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 :
bash
$
curl http://127.0.0.1:8080/nginx_status
Solutions :
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_status pour confirmer que la configuration est chargée
Obtention d'une erreur 403 Interdit :
Assurez-vous que vous testez depuis localhost (127.0.0.1)
Vérifiez vos directives allow/deny dans 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 le port 8080 n'est pas bloqué : sudo netstat -tlnp | grep :8080
Vérifiez les règles de pare-feu, le cas échéant
Vérifiez l'état du service :
bash
$
sudo systemctl status otelcol-contrib.service
$
sudo journalctl -u otelcol-contrib.service -n50
Causes 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 otelcol-contrib:otelcol-contrib /etc/otelcol-contrib/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 :
bash
$
sudo systemctl restart otelcol-contrib.service
Diagnostic étape par étape :
Vérifiez que le statut stub NGINX fonctionne :
bash
$
curl http://127.0.0.1:8080/nginx_status
Doit renvoyer les statistiques de connexion.
Vérifiez que le collecteur est en cours d'exécution et en bonne santé :
bash
$
sudo systemctl status otelcol-contrib.service
$
sudo journalctl -u otelcol-contrib -n20
Les 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%'LIMIT1