O plugin Nginx Munin não mostra dados

8

Eu gostaria de monitorar as estatísticas do NGinx através do Munin, mas os plugins do Nginx não mostram dados. É possível diagnosticar porque apenas um dos plugins nginx munin parece estar funcionando?

nginx munin http://i46.tinypic.com/b8rbir.gif

O servidor é executado no CentOS 5.3

    
por Miko 26.02.2010 / 07:36

4 respostas

13

Os plugins 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 tem esse URL configurado para mostrar dados de status.

A partir da documentação dos plugins, vejo que o nginx precisa ser configurado para mostrar dados de status em uma URL específica.

Você precisa ativar 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 depois de adicionar essa configuração e verifique se a URL stus retorna os dados de status.

Para a documentação completa de cada plugin, você pode executar:

munindoc nginx_request

Espero que isso ajude.

    
por 27.02.2010 / 11:15
2

possivelmente útil:

cd /etc/munin/plugins
munin-run PLUGINNAME

Além disso, use a opção de depuração para executar munin.

Verifique no arquivo do plug-in se há algum caminho codificado e verifique se eles estão corretos para o seu sistema:

grep '/' PLUGINNAME

O plugin nginx pode confiar em Nginx sendo compilado com determinados módulos ou saída de log em um determinado formato. Existe alguma página de documentação para os plugins?

    
por 26.02.2010 / 15:28
2

O principal é a URL na configuração do munin.

Você precisará

[nginx*]
env.url http://localhost/nginx_status

Nota

nginx_status

Não

nginx-status
    
por 05.10.2012 / 19:19
1

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
    
por 13.03.2018 / 14:10

Tags