Respostas:
Os plug-ins do nginx contam com o seguinte URL para obter as informações de status:
http://127.0.0.1/nginx_status
Normalmente, o nginx não possui esse URL configurado para mostrar dados de status.
Na documentação dos plug-ins, vejo que o nginx precisa ser configurado para mostrar dados de status em um URL específico.
Você precisa habilitar o status nginx adicionando as seguintes linhas à configuração do site:
server {
listen 127.0.0.1;
server_name localhost;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
Não se esqueça de reiniciar o servidor após adicionar essa configuração e verifique se o URL do stus retorna os dados de status.
Para a documentação completa de cada plug-in, você pode executar:
munindoc nginx_request
Espero que isto ajude.
http://localhost/
pode preferir o IPv6 e, portanto, não corresponderá à configuração do nginx, que permite apenas o host local do IPv4. Ao fixar a URL /etc/munin/plugin-conf.d/munin-node
para http://127.0.0.1/nginx_status
eventualmente fazer o plug-in funcionar.
Na minha experiência, esses plug-ins provavelmente não estão funcionando devido à configuração incorreta do nginx. Aqui está uma lista resumida do que fazer neste caso:
O Nginx deve ser compilado com o módulo HttpStubStatusModule . Você pode verificar isso executando o seguinte comando (em sudo ou root):
nginx -V 2>&1 | grep -o with-http_stub_status_module
Se você vir a saída a seguir, é bom seguir em frente.
with-http_stub_status_module
Caso contrário, você precisará recompilar o nginx com o módulo necessário ativado ou instalar a partir de fontes diferentes (no meu caso, o repositório Debian padrão tinha a versão correta).
Estou assumindo que você colocou e ativou a configuração necessária . Para ver se está funcionando, você pode ssh
acessar seu servidor e executar
wget http://localhost/nginx_status
Se você não encontrar erros aqui, o problema é a configuração do plugin. Se o servidor retornar um erro aqui, você poderá 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ê pode 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 que client: ::1
, enquanto a configuração permitia apenas o acesso de127.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;
}
}
(Observe que eu também substituí listen: 127.0.0.1
pela porta 80 (ipv4 + ipv6) porque a primeira também não funcionava)
Para verificar se o próprio plug-in está funcionando, execute
munin-run nginx_status
(observe que o plug-in deve estar "ativado" - um link simbólico deve estar presente em /etc/munin/plugins
- leia o manual, se não estiver)
Se você receber erros na LWP
biblioteca (por exemplo, LWP::UserAgent
ou LWP::VERSION
), seu sistema está faltando um pacote exigido pelo nginx_status
plugin.
No Debian / Ubuntu, execute
apt install libwww-perl
No CentOS
yum install perl-libwww-perl
Depois disso, teste o plug-in 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
/var/log/munin-update.log
(Serviço nginx_status no servername / 127.0.0.1: 4949 não retornou dados para a espera de rótulo), eu poderia ter pesquisado por anos para descobrir que libwww-perl
estava faltando. Muito obrigado por esta extensa resposta.
Possivelmente útil:
cd /etc/munin/plugins
munin-run PLUGINNAME
Além disso, use a opção debug para executar o munin.
Verifique o arquivo do plug-in quanto a caminhos codificados e verifique se estão corretos para o seu sistema:
grep '/' PLUGINNAME
O plugin nginx pode contar com a compilação do Nginx com determinados módulos ou com a saída de log em um determinado formato. Existe alguma página de documentação para os plugins?
O principal é o URL na configuração de munin.
Você vai precisar
[nginx*]
env.url http://localhost/nginx_status
Nota
nginx_status
Não
nginx-status
Instale libwww-perl e execute o comando munin-run nginx_status
para ver as estatísticas.
Reinicie o serviço muni-node.
apt install libwww-perl time
usar nós munin por seus problemas de log com osUse of uninitialized value $LWP::VERSION
plugins nginx.