nginx como obter o status dos servidores web no backend?

nginx como obter o status dos servidores web no backend?

O HAProxy tem uma página de status muito boa que mostra quais servidores da web estão ativos e quais estão inativos no backend. Estou tentando depurar alguns problemas e preciso saber quais servidores o nginx considera que estão ativos e quais estão inativos. Existe uma página da web ou algo que você possa configurar para o nginx para que eu possa acessar um URL quando precisar desse tipo de informação?

obrigado, Dean

Responder1

Existem alguns módulos que você pode querer verificar:

Responder2

Infelizmente, isso é quase impossível fora da caixa. vanila nginx não possui estado global para upstream por design, portanto, essas informações são locais para cada processo de trabalho.

Dê uma olhada neste módulo que parece ser útil para vocêhttp://wiki.nginx.org/NginxHttpHealthcheckModule

Responder3

Esta resposta está com um ano de atraso, mas o módulo ustats para nginx parece bastante impressionante:

https://code.google.com/p/ustats/

mudou para o githubhttps://github.com/0xc0dec/ustats

Infelizmente não parece mantido após 1.2, mas ainda pode funcionar.

Encontrei um garfo mantidohttps://github.com/nginx-modules/ngx_ustats_module

O patch 1.7.2 ainda funciona perfeitamente contra 1.7.4

Responder4

Eu estava procurando uma verificação de integridade simples fornecida pelo Amazon ELB. Capacidade de adicionar instâncias em um LB, ter um mecanismo de verificação de integridade para remover instâncias defeituosas.

Então aqui estavam minhas opções.

  1. https://github.com/yaoweibin/nginx_upstream_check_module
  2. https://github.com/openresty/lua-resty-upstream-healthcheck
  3. O Nginx também oferece uma verificação de integridade passiva gratuitamente. Ele faz exatamente o que eu quero, sem monitoramento sofisticado, sem pesos, sem verificação de rota sofisticada. Ele executaria ping no servidor e verificaria 200 respostas de status. Faria isso no estilo round robin.

    O parâmetro fail_timeout define o tempo durante o qual o número especificado de tentativas fracassadas deve acontecer e ainda considerar o servidor indisponível. Em outras palavras, o servidor fica indisponível durante o intervalo definido por fail_timeout.

    O parâmetro max_fails define o número de tentativas fracassadas que devem acontecer durante o tempo especificado para ainda considerar o servidor indisponível.

    Por exemplo:

    upstream search { server 192.168.215.43:9200 max_fails=3 fail_timeout=10s; server 192.168.171.66:9200 max_fails=3 fail_timeout=10s; }

informação relacionada