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.
Monitorer NGINX Plus auto-hébergé avec OpenTelemetry
Monitorez vos serveurs NGINX Plus fonctionnant sur un hôte en utilisant le Collecteur OpenTelemetry pour envoyer des métriques et des données de télémétrie à New Relic.
Cette intégration exploite le prometheusreceiver et le nginx-prometheus-exporter OpenTelemetry pour monitorer les métriques de performance, les statistiques de connexion et l'état du serveur de votre NGINX Plus. La riche API HTTP de NGINX Plus fournit des métriques beaucoup plus détaillées que le module d'état stub de base dans NGINX standard.
Exportateur Prometheus NGINX installé et fonctionnant aux côtés de votre instance NGINX Plus pour exposer les métriques de l'API HTTP au format Prometheus
Résultat attendu : HTTP/2 405 (méthode non autorisée est attendue)
Étape 1 : Configurer NGINX Plus
Configurez et activez le module API HTTP pour exposer les métriques de votre serveur NGINX Plus.
Ajoutez la configuration de l'API HTTP à votre fichier nginx.conf. Généralement, ajoutez ceci dans le bloc http :
server{
listen8080;
server_name localhost;
location /api{
api write=on;
# Restrict access as needed
allow 127.0.0.1;
deny all;
}
}
Après avoir mis à jour nginx.conf, testez et rechargez le service :
bash
$
sudo nginx -t&&sudo nginx -s reload
Confirmez le chemin du point de terminaison de l'API (y compris la version) exposé dans votre configuration. Enregistrez le chemin complet du point de terminaison de l'API (sans la barre oblique de début) et le port qui le dessert. Les valeurs par défaut courantes sont api/9 sur le port 8080.
Utilisez curl pour confirmer que votre point de terminaison API est accessible :
Par défaut, l'exportateur s'exécute sur le port 9113 et expose les métriques à /metrics.
Mettez à jour votre configuration OpenTelemetry Collector (généralement située à /etc/otelcol-contrib/config.yaml). Dans l'extrait de configuration ci-dessous :
Mettez à jour la valeur nginx.deployment.name avec un nom unique pour identifier ce serveur NGINX Plus dans votre compte New Relic
Mettez à jour la valeur targets pour qu'elle corresponde à l'hôte et au port de votre exportateur Prometheus (la valeur par défaut est 127.0.0.1:9113)
Mettez à jour la valeur nginx.server.endpoint pour qu'elle corresponde à votre chemin d'état de l'API et à votre port
Mettez à jour filter/nginx_metrics selon vos besoins pour ingérer des métriques supplémentaires
Fusionnez les récepteurs, les processeurs, les exportateurs et les pipelines de service de l'extrait ci-dessous dans votre configuration actuelle :
Écrivez environment.conf avec votre point de terminaison OTLP. Remplacez YOUR_LICENSE_KEY par la clé de licence New Relic et YOUR_OTLP_ENDPOINT par le point de terminaison approprié pour votre région. Reportez-vous à la documentation de configuration du point de terminaison OTLP pour sélectionner le bon point de terminaison.
Vérifiez que le collecteur OpenTelemetry collecte avec succès les métriques NGINX Plus et les envoie à New Relic.
Monitorez les logs du collecteur pour vous assurer qu'il s'exécute sans erreurs :
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 à partir de l'exportateur Prometheus
✅ "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 Plus server
$
curl http://localhost
Accédez à votre dashboard NGINX pour vérifier la collecte des données.
Étape 5 : (Facultatif) Transférer les logs NGINX
Étendez votre configuration du collecteur pour inclure les logs d'accès et d'erreurs si vous souhaitez des événements de log en plus des métriques.
Configurer le format de log NGINX Plus
Avant de transférer les logs, configurez NGINX Plus pour utiliser un format de log structuré. Reportez-vous à la documentation de logging NGINX pour obtenir des conseils sur la configuration des logs d'accès et d'erreurs.
Configurer le collecteur OpenTelemetry pour le transfert des logs
Notez les chemins complets de vos fichiers logs d'accès et d'erreurs NGINX. Les valeurs par défaut sont généralement /var/log/nginx/access.log et /var/log/nginx/error.log.
Mettez à jour /etc/otelcol-contrib/config.yaml pour ajouter un récepteur filelog et un pipeline de logs :
Sélectionnez Dashboards, puis cliquez sur le dashboard NGINX OTel overview.
Dans la fenêtre contextuelle, sélectionnez votre compte.
Cliquez sur [View dashboard] et consultez vos données NGINX Plus dans New Relic.
Les métriques NGINX Plus sont attachées au type d'événementMetric. Vous pouvez interroger ces données à des fins de dépannage ou pour créer des graphiques et des dashboards personnalisés.
Métriques collectées
Le collecteur OpenTelemetry collecte les métriques à partir de l'exportateur NGINX Prometheus, qui expose les métriques de l'API HTTP NGINX Plus au format Prometheus.
Vous trouverez ci-dessous les métriques NGINX Plus disponibles :
métrique
Description
Type
nginxplus_connections_accepted
Connexions client acceptées
Somme
nginxplus_connections_active
Connexions clientes actives
Jauge
nginxplus_connections_dropped
Connexions client abandonnées
Somme
nginxplus_connections_idle
Connexions clientes inactives
Jauge
métrique
Description
Type
nginxplus_http_requests_total
Nombre total de requêtes http
Somme
nginxplus_http_requests_current
Requêtes http actuelles
Jauge
métrique
Description
Type
nginxplus_ssl_handshakes
Poignées de main SSL réussies
Somme
nginxplus_ssl_handshakes_failed
Échecs de poignées de main SSL
Somme
nginxplus_ssl_session_reuses
Réutilisations de session pendant la poignée de main SSL
Somme
métrique
Description
Type
nginxplus_server_zone_processing
Requêtes client en cours de traitement
Jauge
nginxplus_server_zone_requests
Nombre total de requêtes client
Somme
nginxplus_server_zone_responses
Total des réponses envoyées aux clients
Somme
nginxplus_server_zone_responses_codes
Total des réponses envoyées aux clients par code
Somme
nginxplus_server_zone_discarded
Requêtes terminées sans envoyer de réponse
Somme
nginxplus_server_zone_received
Octets reçus des clients
Somme
nginxplus_server_zone_sent
Octets envoyés aux clients
Somme
nginxplus_server_ssl_handshakes
Poignées de main SSL réussies
Somme
nginxplus_server_ssl_handshakes_failed
Échecs de poignées de main SSL
Somme
nginxplus_server_ssl_session_reuses
Réutilisations de session pendant la poignée de main SSL
Somme
métrique
Description
Type
nginxplus_location_zone_requests
Nombre total de requêtes client
Somme
nginxplus_location_zone_responses
Total des réponses envoyées aux clients
Somme
nginxplus_location_zone_responses_codes
Total des réponses envoyées aux clients par code
Somme
nginxplus_location_zone_discarded
Requêtes terminées sans envoyer de réponse
Somme
nginxplus_location_zone_received
Octets reçus des clients
Somme
nginxplus_location_zone_sent
Octets envoyés aux clients
Somme
métrique
Description
Type
nginxplus_cache_size
Taille totale du cache
Jauge
nginxplus_cache_max_size
Taille maximale du cache
Jauge
nginxplus_cache_cold
Le cache est-il considéré comme froid
Jauge
nginxplus_cache_hit_responses
Nombre total de succès de cache
Somme
nginxplus_cache_hit_bytes
Nombre total d'octets renvoyés à partir des accès au cache
Somme
nginxplus_cache_stale_responses
Nombre total de succès de cache périmés
Somme
nginxplus_cache_stale_bytes
Nombre total d'octets renvoyés à partir des accès au cache périmé
Somme
nginxplus_cache_updating_responses
Nombre total de succès de cache pendant la mise à jour du cache
Somme
nginxplus_cache_updating_bytes
Nombre total d'octets renvoyés à partir du cache pendant la mise à jour du cache
Somme
nginxplus_cache_revalidated_responses
Nombre total de revalidations de cache
Somme
nginxplus_cache_revalidated_bytes
Nombre total d'octets renvoyés à partir des revalidations de cache
Somme
nginxplus_cache_miss_responses
Nombre total d'échecs de cache
Somme
nginxplus_cache_miss_bytes
Nombre total d'octets renvoyés à partir des échecs de cache
Somme
nginxplus_cache_expired_responses
Nombre total de hits de cache avec TTL expiré
Somme
nginxplus_cache_expired_bytes
Nombre total d'octets renvoyés à partir des succès de cache avec TTL expiré
Somme
nginxplus_cache_expired_responses_written
Nombre total de succès de cache avec TTL expiré écrit dans le cache
Somme
nginxplus_cache_expired_bytes_written
Nombre total d'octets écrits dans le cache à partir des succès de cache avec TTL expiré
Somme
nginxplus_cache_bypass_responses
Nombre total de contournements de cache
Somme
nginxplus_cache_bypass_bytes
Nombre total d'octets renvoyés à partir des contournements du cache
Somme
nginxplus_cache_bypass_responses_written
Nombre total de contournements de cache écrits dans le cache
Somme
nginxplus_cache_bypass_bytes_written
Nombre total d'octets écrits dans le cache à partir des contournements de cache
Somme
Attribut
Description
Exemples de valeurs
server_zone
Le nom de la zone du serveur (s'applique aux métriques des zones de serveur HTTP)
example.com, api.example.com
code
Code d'état de la réponse HTTP (s'applique aux métriques de réponse)
1xx, 2xx, 3xx, 4xx, 5xx, 200, 404, 500
location_zone
Le nom de la zone de localisation
/api, /images, /static
cache
Le nom du cache
my_cache, static_cache
nginx.server.endpoint
L'URL du point de terminaison de l'API NGINX Plus
http://localhost:8080/api
nginx.deployment.name
Un nom unique pour identifier ce déploiement NGINX Plus
production-web-01, staging-api
nginx.display.name
Un nom convivial combinant le préfixe « server » avec le nom du déploiement
server:production-web-01
host.name
Le nom d'hôte du système sur lequel NGINX Plus est en cours d'exécution
web-server-01.example.com
host.id
L'identifiant unique du système hôte
i-1234567890abcdef0
logtype
Le type de log collecté (applicable aux logs uniquement). Utilisé par les règles d'analyse intégrées de New Relic. Cet attribut est disponible uniquement lorsque le transfert des logs est activé.
nginx (pour les logs d'accès), nginx-error (pour les logs d'erreurs)