Na minha experiência, esses plugins provavelmente não estão funcionando devido à configuração incorreta do nginx. Aqui está uma pequena lista do que fazer neste caso:
1. Verifique a instalação do nginx
O Nginx deve ser compilado com o módulo HttpStubStatusModule . Você pode verificar isso executando o seguinte comando (sob sudo ou root):
nginx -V 2>&1 | grep -o with-http_stub_status_module
Se você vir a seguinte saída, é bom seguir em frente.
with-http_stub_status_module
Caso contrário, você terá que recompilar o nginx com o módulo requerido habilitado ou instalado de uma fonte diferente (no meu caso, o repositório Debian padrão tinha a versão correta).
2. Verifique a configuração do nginx
Estou assumindo que você colocou e ativou a configuração necessária . Para ver se está funcionando, você pode ssh
para o seu servidor e executar
wget http://localhost/nginx_status
Se você não receber nenhum erro aqui, o problema é a configuração do plugin. Se o servidor retornar erro aqui, você pode depurar modificando a configuração:
location /nginx_status {
stub_status on;
access_log off;
error_log /var/log/nginx/status.error.log;
allow 127.0.0.1;
deny all;
}
Depois disso, no arquivo /var/log/nginx/status.error.log
, você poderá ver o motivo exato pelo qual o servidor retornou um erro:
[error] 2203#0: *1442 access forbidden by rule, client: ::1, server: localhost, request: "GET /nginx_status HTTP/1.1", host: "localhost"
No meu caso (como você pode ver no log), o problema era client: ::1
, enquanto a configuração permitia somente acesso de 127.0.0.1
Para resolver o problema, você pode seguir a sugestão do cepharum ou modificar a configuração do host virtual:
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;
}
}
(Repare que também substituí listen: 127.0.0.1
pela porta 80 (ipv4 + ipv6) porque a primeira também não funcionou)
3. Verifique a configuração do sistema e as dependências
Para verificar se o próprio plugin está funcionando, execute
munin-run nginx_status
(note que o plugin deve estar "ligado" - um link simbólico deve estar presente em /etc/munin/plugins
- leia o manual caso contrário)
Se você obtiver erros com a biblioteca LWP
(por exemplo, LWP::UserAgent
ou LWP::VERSION
), seu sistema não terá um pacote exigido por nginx_status
plugin.
No Debian / Ubuntu, execute
apt install libwww-perl
No CentOS
yum install perl-libwww-perl
Depois disso teste o plugin novamente usando munin-run
. A saída esperada (os números serão diferentes):
total.value 1
reading.value 0
writing.value 1
waiting.value 0