La surveillance de l'état du service NGINX implique la vérification de ses fonctionnalités principales: s'il s'exécute, écouter les ports configurés et gérer efficacement les demandes. Plusieurs méthodes y parviennent:
1. En utilisant la commande systemctl
(Linux): Si Nginx est installé en tant que service SystemD (commun sur la plupart des distributions Linux), vous pouvez utiliser la commande systemctl
. Les commandes de base sont les suivantes:
systemctl status nginx
: Affiche l'état actuel du service NGINX, y compris son état actif (actif, inactif, échoué), PID (ID de processus) et tout journal ou erreur récent. systemctl is-active nginx
: Renvoie une réponse simple "active" ou "inactive". Ceci est utile pour les scripts. 2. Vérification du processus Nginx directement: Vous pouvez utiliser la commande ps
pour vérifier directement le processus maître NGINX:
ps aux | grep nginx
: Cela répertorie tous les processus liés à Nginx. La présence d'un processus maître avec un PID non nulle indique que Nginx est en cours d'exécution. 3. Accéder à la page d'état Nginx: Si vous avez configuré le module Nginx stub_status
, vous pouvez accéder à une page d'état fournissant des informations détaillées sur les connexions actives, les demandes et les processus de travail. Cela nécessite généralement l'activation du module dans votre fichier de configuration Nginx (nginx.conf
), puis accéder à une URL spécifique (souvent /nginx_status
). La sortie variera en fonction de votre configuration, mais elle comprend généralement des statistiques telles que les connexions actives, la lecture, l'écriture, les connexions d'attente.
4. L'utilisation d'un outil de surveillance: Les outils de surveillance dédiés (discutés dans la section suivante) fournissent un aperçu complet de l'état de Nginx, y compris les mises à jour en temps réel, les données historiques et les tableaux de bord visuels.
De nombreux outils peuvent surveiller efficacement les performances de Nginx. Le meilleur choix dépend de vos besoins spécifiques, de votre expertise technique et de votre budget:
1. NAGIOS / ICINGA: Ce sont des systèmes de surveillance open source puissants qui peuvent surveiller divers aspects de votre infrastructure, y compris Nginx. Ils vous permettent de définir des chèques pour la disponibilité, le temps de réponse et d'autres mesures clés. Ils offrent des capacités d'alerte étendues.
2. Zabbix: Une autre solution de surveillance des open source populaire, Zabbix propose un ensemble complet de fonctionnalités, y compris la découverte automatisée des instances de Nginx, des mesures de performances détaillées (utilisation du processeur, utilisation de la mémoire, temps de traitement de demande) et mécanismes d'alerte flexibles.
3. Prométhée: Un système de surveillance open source largement adopté axé sur les données de la série chronologique. Il fonctionne bien avec Nginx à l'aide d'exportateurs qui collectent des mesures et les exposent via un point de terminaison HTTP. Grafana est fréquemment associé à Prometheus pour la visualisation.
4. Datadog / Dynatrace / New Relic: Ce sont des solutions de surveillance commerciale offrant des fonctionnalités robustes, des tableaux de bord centralisés, une alerte automatisée et une analyse avancée. Ils fournissent souvent des intégrations prédéfinies pour Nginx, simplifiant le processus de configuration et de configuration. Ils viennent généralement avec un coût en fonction de l'échelle de surveillance requise.
5. Nginx Amplify (par Nginx, inc.): Il s'agit d'une solution de surveillance et de gestion dédiée spécialement conçue pour Nginx. Il fournit des informations détaillées sur les performances, la sécurité et la configuration de Nginx. C'est une offre commerciale.
Choisir le bon outil dépend de facteurs tels que l'échelle de votre déploiement, votre budget et votre infrastructure existante. Les solutions open source sont bonnes pour les déploiements plus petits ou ceux qui ont un budget, tandis que les solutions commerciales fournissent plus de fonctionnalités et de prise en charge pour des environnements plus grands et plus complexes.
1. En utilisant
(Linux) et Email: Bien que Basic, vous pouvez utiliser les notifications d'état de systemctl
et configurer les alertes de messagerie en fonction des modifications d'état du service. Cela implique généralement de configurer les paramètres de notification par e-mail de SystemD. systemctl
La plupart des outils de surveillance offrent des capacités d'alerte robustes. Vous définissez les seuils pour diverses mesures (par exemple, utilisation élevée du processeur, temps de réponse lent, taux d'erreur). Lorsque ces seuils sont dépassés, l'outil déclenche des alertes par e-mail, SMS, PagerDuty ou d'autres canaux de notification. Vous configurerez des conditions d'alerte spécifiques (par exemple, "alerte si le temps de réponse Nginx dépasse 500 ms pendant plus de 5 minutes").
3. En utilisant Nginx's: , vous pouvez configurer Nginx pour enregistrer les erreurs dans un fichier spécifique. Vous pouvez ensuite utiliser des outils tels que error_log
pour gérer les tailles de fichiers journaux et potentiellement utiliser des outils de surveillance du journal pour déclencher des alertes en fonction de modèles d'erreur spécifiques dans les fichiers journaux. logrotate
Comment résoudre les problèmes de Nginx à l'aide de données de surveillance?
1. Utilisation élevée du processeur: Surveiller les mesures d'utilisation du processeur de votre outil de surveillance choisi. Si Nginx consomme un processeur excessif, étudiez le code lent ou inefficace dans votre application, les modules à forte intensité de ressources ou une attaque potentielle de déni de service (DOS). Examinez les journaux NGINX pour les messages d'erreur ou les temps de traitement de demande lents. Envisagez d'optimiser votre configuration Nginx (par exemple, l'augmentation des processus de travail, l'ajustement des connexions des travailleurs).
2. Utilisation élevée de la mémoire: Similaire à une utilisation élevée du processeur, étudiez les fuites de mémoire dans votre configuration d'application ou Nginx. Vérifiez les mécanismes de mise en cache lents ou inefficaces. Vous devrez peut-être ajuster les limites de mémoire de Nginx ou optimiser la gestion de la mémoire de votre application.
3. Temps de réponse lents: Identifier les goulots d'étranglement à l'aide des mesures de temps de réponse. Vérifiez si le problème découle du serveur Nginx lui-même (utilisation élevée de CPU / mémoire), une application backend lente ou des problèmes de réseau. Examinez les journaux de demande pour comprendre quelles demandes subissent des retards.
4. Taux d'erreur élevés: Analyser les journaux d'erreur NGINX pour les erreurs récurrentes. Les causes courantes incluent des blocs de serveurs erronés, des ressources insuffisantes ou des problèmes avec vos applications backend. Adressez la cause profonde indiquée par les messages d'erreur.
5. Temps d'arrêt: Si Nginx est en panne, vérifiez l'état en utilisant les méthodes décrites dans la première section. Examinez les journaux pour les indices sur la cause de la défaillance (par exemple, les erreurs du système, les accidents). Passez en revue les alertes de votre outil de surveillance pour voir si des avertissements ont précédé les temps d'arrêt.
Le dépannage efficace implique de corréler différentes mesures et des entrées de journal pour identifier la cause exacte du problème. Plus votre configuration de surveillance est détaillée et complète, plus il sera facile de diagnostiquer et de résoudre les problèmes de Nginx.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!