Comment monitorer un serveur Nginx avec Zabbix : configuration du stub_status, paramètres de l’agent Zabbix et template prêt à importer pour surveiller les connexions et requêtes.
Configuration de Nginx
Le serveur Nginx doit donner son statut en local via l’URL http://localhost:61123/nginx_status
Pour cela, il faut ajouter le “server” suivant qui sera disponible uniquement via localhost sur le port 61123 :
server {
listen 127.0.0.1:61123;
server_name localhost;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
Configuration de l’agent Zabbix
Dans la configuration de l’agent Zabbix, ajoutez les paramètres suivants pour remonter au serveur les nouvelles clés :
UserParameter=nginx.active[*],curl -s http://localhost:61123/nginx_status | awk '/^Active/ {print $NF}
UserParameter=nginx.reading[*],curl -s http://localhost:61123/nginx_status | awk '/Reading/ {print $$2}
UserParameter=nginx.writing[*],curl -s http://localhost:61123/nginx_status | awk '/Writing/ {print $$4}
UserParameter=nginx.waiting[*],curl -s http://localhost:61123/nginx_status | awk '/Waiting/ {print $$6}
UserParameter=nginx.accepted[*],curl -s http://localhost:61123/nginx_status | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$1}
UserParameter=nginx.handled[*],curl -s http://localhost:61123/nginx_status | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$2}
UserParameter=nginx.requests[*],curl -s http://localhost:61123/nginx_status | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$3}
Import du template
Téléchargez et importez zbx_templates_nginx.xml dans vos modèles.
Ce template contient toutes les clefs et deux graphiques :
- Nginx current connections
- Nginx requests
Have fun 🙂
Catégories : Linux