D'après mon expérience, ces plugins ne fonctionnent probablement pas en raison d'une mauvaise configuration de nginx. Voici une liste de ce qu'il faut faire dans ce cas :
1. Vérifiez l'installation de nginx
Nginx doit être compilé avec HttpStubStatusModule module. Vous pouvez le vérifier en exécutant la commande suivante (sous sudo ou root) :
nginx -V 2>&1 | grep -o with-http_stub_status_module
Si vous voyez la sortie suivante, vous pouvez continuer.
with-http_stub_status_module
Sinon, vous devez recompiler nginx avec le module requis activé ou l'installer à partir d'une source différente (dans mon cas, le dépôt Debian par défaut avait la bonne version).
2. Vérifiez la configuration de nginx
Je suppose que vous avez placé et activé l'option configuration requise . Pour voir si cela fonctionne, vous pouvez ssh
sur votre serveur et exécutez
wget http://localhost/nginx_status
Si vous n'obtenez aucune erreur ici, alors le problème est la configuration du plugin. Si le serveur renvoie une erreur ici, vous pouvez déboguer en modifiant la configuration :
location /nginx_status {
stub_status on;
access_log off;
error_log /var/log/nginx/status.error.log;
allow 127.0.0.1;
deny all;
}
Après cela, dans le fichier /var/log/nginx/status.error.log
vous pouvez voir la raison exacte pour laquelle le serveur a retourné une erreur :
[error] 2203#0: *1442 access forbidden by rule, client: ::1, server: localhost, request: "GET /nginx_status HTTP/1.1", host: "localhost"
Dans mon cas (comme vous pouvez le voir dans le journal), le problème était le suivant client: ::1
tandis que la configuration ne permettait que l'accès à partir de 127.0.0.1
Pour résoudre ce problème, vous pouvez soit suivre suggestion de cepharum ou modifier la configuration de l'hôte virtuel :
server {
listen 80;
listen [::]:80;
server_name localhost;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow ::1;
deny all;
}
}
(Remarquez que j'ai également remplacé listen: 127.0.0.1
avec le port 80 (ipv4+ipv6) car le premier ne fonctionnait pas non plus)
3. Vérifier la configuration du système et les dépendances
Pour vérifier si le plugin lui-même fonctionne, exécutez
munin-run nginx_status
(notez que le plugin doit être "activé" - un lien symbolique doit être présent à l'adresse suivante /etc/munin/plugins
- lire le manuel si non)
Si vous obtenez des erreurs avec LWP
bibliothèque (par exemple LWP::UserAgent
o LWP::VERSION
), il manque à votre système un paquetage requis par nginx_status
plugin.
Sur Debian / Ubuntu, exécutez
apt install libwww-perl
Sur CentOS
yum install perl-libwww-perl
Après cela, testez à nouveau le plugin en utilisant munin-run
. Le résultat attendu (les chiffres seront différents) :
total.value 1
reading.value 0
writing.value 1
waiting.value 0