Dans 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érifier l'installation de nginx
Nginx doit être compilé avec le module HttpStubStatusModule. Vous pouvez vérifier cela 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érifier la configuration de nginx
Je suppose que vous avez placé et activé la configuration requise. Pour voir si cela fonctionne, vous pouvez ssh
sur votre serveur et exécuter
wget http://localhost/nginx_status
S'il n'y a pas d'erreurs 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 renvoyé 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 client: ::1
, tandis que la configuration autorisait uniquement l'accès depuis 127.0.0.1
Pour résoudre le problème, vous pouvez suivre la suggestion de cepharum ou modifier la configuration du virtual host :
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
par le port 80 (ipv4+ipv6) car le précédent 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 à /etc/munin/plugins
- lisez le manuel si ce n'est pas le cas)
Si vous obtenez des erreurs avec la bibliothèque LWP
(par exemple LWP::UserAgent
ou LWP::VERSION
), votre système manque d'un package requis par le plugin nginx_status
.
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
. La sortie attendue (les chiffres seront différents) :
total.value 1
reading.value 0
writing.value 1
waiting.value 0