Como monitorar códigos de erro de resposta HTTP do nginx usando o munin?

2

Estou começando a usar o Munin para monitorar um servidor Nginx em produção. Uma coisa que estou particularmente interessado em representar graficamente é a taxa de erros - respostas HTTP com códigos no intervalo de 50x. Eu estou querendo saber se:

  1. Existe um plugin existente para fazer isso?
  2. Como alternativa, qual seria a melhor abordagem para escrever meu próprio plugin? Acessar a análise de log?
por David Eyk 25.07.2011 / 23:40

3 respostas

4

Bem, esse animal não existia, então conjurei .

Você encontrará o código mais recente em a essência . Aproveite.

    
por 26.07.2011 / 17:48
1

Não tenho conhecimento de nenhuma solução OSS pronta para uso. Eu escrevi pessoalmente esse tipo de plugin, mas não posso compartilhar o código. São duas etapas:

  1. Registre o analisador para coletar estatísticas novas (como tail -f ). Como você pode definir o formato de log do Nginx, você está livre para registrar os valores desejados, por exemplo, código de status, tempo de solicitação do upstream, etc.
  2. Plugin Munin para relatar as estatísticas para Munin.

Você terá que compartilhar o estado entre essas duas partes. Há um punhado de opções: na memória (minha implementação do analisador de log foi um daemon orientado a eventos armazenando todas as estatísticas na memória); MongoDB; Redis; tradicionalmente MySQL; memoria compartilhada; etc.

    
por 26.07.2011 / 09:31
0

Então este link é para os plug-ins nginx no repositório munin. Não é possível encontrar nada óbvio para fazer o que você quer, ou qualquer coisa na web depois de uma pesquisa (muito breve).

Eu escrevi um par de plugins munin e eles não são tão difíceis. Você deve ser capaz de escrever um para conseguir o que deseja. Eu apenas contaria o número de erros de 50x no log atual e retornaria como um tipo DERIVE com um mínimo de 0. Dessa forma, você pode retornar um único valor e deixar o rrdtool funcionar se tiver aumentado. Observação - isso será um problema se no final de um dia você disser 130 erros de 50x, e o log for girado e você receber 131 erros imediatamente, o gráfico considerará que é um valor de 1.

A outra opção seria rastrear a contagem contra o nome do arquivo de log e retornar o aumento real e redefini-lo quando o log for rotacionado.

    
por 26.07.2011 / 00:29