Monitorer un serveur Nginx avec Zabbix et stub_status

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 

Suggestions de lecture :