loadbalancing nginx - Apenas falhas do servidor de log?

2

Atualmente, tenho um cluster de tamanho médio (15 servidores), com 3 nós executando o balanceamento de carga nginx com ip_hash. O protocolo que está sendo balanceado é uma taxa muito alta de conexões, então eu tenho o meu max_fails configurado bem alto para evitar mensagens de falsos positivos no servidor.

Existe uma maneira de monitorar quando o nginx marca um servidor como offline, bem como quando ele marca uma volta on-line? Os logs de acesso / erro são enormes, e não consigo encontrar nenhuma mensagem de erro específica para grep / parse out para descobrir quando um servidor é considerado 'ruim'.

    
por Eleuthria 30.08.2011 / 16:26

1 resposta

2

Tentamos fazer isso também para o nosso nginx e acabamos aprendendo que o NGiNX mantém o status upstream por trabalhador, então, a menos que você tenha apenas um trabalhador, é difícil / difícil rastrear usando um módulo.

No entanto, notamos que, se você tiver dados de upstream em seu log, ele apontará quando o nginx atingir mais de um back-end, esse formato de log:

log_format  main  '$status:$request_time:$upstream_response_time:$pipe:$body_bytes_sent $connection $remote_addr $host $remote_user [$time_local] "$request" "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $upstream_addr $upstream_cache_status';

Normalmente, produzirá linhas como:

304:0.001:0.001:.:0 26572217 ...

No entanto, se dois upstreams estiverem falhando, ele será exibido:

304:20.537:10.001, 10.002, 0.534:.:0 26572217 ...

Ele também colocará todos os upstreams em $ upstream_addr, então você pode ver quais estão falhando também.

    
por 03.09.2011 / 07:51