Nginx est un serveur Web largement présenté qui est souvent utilisé pour servir du contenu statique, un proxy inverse ou un trafic Web d'équilibrage de charge. Il est réputé pour sa fiabilité, sa flexibilité et ses hautes performances. Comme pour tout serveur, il est important de surveiller Nginx pour s'assurer qu'il fonctionne correctement et pour résoudre les problèmes qui pourraient survenir. Dans cet article, nous verrons comment surveiller Nginx avec Zabbix, pour détecter et résoudre de manière proactive tout problème avec votre Nginx serveur.
Les préparatifs
Avant de commencer à explorer le processus de surveillance Nginx avec Zabbix, nous devons nous assurer que nous respectons les prérequis. Ceux-ci inclus:
- A serveur avec Nginx tu voudras t'occuper
- Serveur Zabbix opérationnel
- A Agent Zabbix installé et configuré sur un serveur exécutant Nginx.
Configuration Nginx
Ouvrez le /etc/nginx/conf.d/stub_status.conf avec l'éditeur de votre choix et collez le bloc de texte suivant :
server {
listen 127.0.0.1:80;
server_name 127.0.0.1;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
}
Cela permet au serveur de générer des informations d'état de base sur la page /basic_status disponibles uniquement à partir de ce même serveur, afin que notre agent puisse les transmettre au serveur.
Vérifions maintenant si Nginx procces est bien avec de nouveaux paramètres en exécutant :
nginx -t
systemctl restart nginx
systemctl status nginx
Voyons ensuite si la nouvelle page d'état fonctionne avec curl :
curl http://127.0.0.1/basic_status
Configuration des journaux
Vous devriez vérifier si Nginx génère les journaux nécessaires à Zabbix en vérifiant les paramètres de journalisation dans /etc/nginx/nginx.conf
Maintenant, pour que Zabbix fonctionne avec les journaux, commentons la ligne access_log d'origine et collons ce fragment :
Il devrait ressembler à ceci :
Vérifier et redémarrer Nginx une autre fois, et passons à la configuration de notre Zabbix.
Configurer Zabbix
En supposant que toutes les instructions précédentes ont été suivies, il vous suffit maintenant de créer un hôte pour ce serveur et d'ajouter Nginx par modèle d'agent Zabbix ou ajoutez-le à un modèle déjà existant.
Attribuez le modèle à l'hôte en cours d'exécution Nginx en allant dans Configuration → Hôtes → Sélectionnez l'hôte → Modèles → Ajouter.
Si tout est correct, vous devez pouvoir travailler avec les données fournies par le modèle :
- Métriques générales : CPU et l'utilisation de la mémoire, le nombre de connexions actuellement ouvertes au serveur.
- Métriques de la demande : temps moyen de réponse à une demande, pourcentage de demandes entraînant une erreur, nombre de demandes traitées par Nginx par seconde.
- Métriques SSL : combien de poignées de main sont traitées par Nginx par seconde, le nombre de chiffres pris en charge par Nginx, et le nombre d'erreurs de certificat rencontrées par Nginx.
- Temps de disponibilité : suit la durée Nginx a fonctionné sans aucun temps d'arrêt.
Le modèle Zabbix comprend également un certain nombre de déclencheurs vous alertant en cas de problème avec votre Nginx serveur. Ces déclencheurs vous informent de problèmes tels que CPU utilisation, utilisation élevée de la mémoire, taux d'erreur élevé et temps d'arrêt.
Par exemple:
- Haute CPU déclencheur d'utilisation : ce déclencheur vous avertira lorsque le CPU utilisation sur votre Nginx serveur dépasse un certain seuil.
- Déclencheur d'utilisation élevée de la mémoire : ce déclencheur vous alertera lorsque l'utilisation de la mémoire sur votre Nginx serveur dépasse un certain seuil.
- Déclencheur de taux d'erreur élevé : ce déclencheur vous alerte lorsque le taux d'erreur sur votre Nginx serveur dépasse un certain seuil.
- Déclencheur d'indisponibilité : ce déclencheur vous alertera si votre Nginx le serveur cesse de fonctionner.
Et certains éléments si vous souhaitez vérifier quelque chose qui n'est pas couvert dans les graphiques ou les déclencheurs par défaut.
Conclusion
Vous avez exploré comment obtenir Nginx prêt pour la surveillance avec Zabbix et ajoutez un modèle approprié à Zabbix qui vous permet de surveiller de manière proactive votre serveur et de résoudre rapidement tout problème pouvant survenir.