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.