nginx ¿cómo obtener el estado de los servidores web en el backend?

nginx ¿cómo obtener el estado de los servidores web en el backend?

HAProxy tiene una página de estado muy bonita que me muestra qué servidores web están activos y cuáles no en el backend. Estoy tratando de depurar algunos problemas y necesito saber qué servidores cree nginx que están activos y cuáles cree que están inactivos. ¿Existe una página web o algo que pueda configurar para nginx para que pueda acceder a una URL cuando necesite este tipo de información?

gracias decano

Respuesta1

Hay un par de módulos que quizás quieras consultar:

Respuesta2

Desafortunadamente, esto es casi imposible desde el primer momento. vanila nginx no tiene un estado global para el flujo ascendente por diseño, por lo que esta información es local para cada proceso de trabajo.

Échale un vistazo a este módulo que parece que te puede resultar útil.http://wiki.nginx.org/NginxHttpHealthcheckModule

Respuesta3

Un año tarde para esta respuesta, pero el módulo ustats para nginx parece bastante impresionante:

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

movido a githubhttps://github.com/0xc0dec/ustats

Desafortunadamente, no parece mantenerse después de 1.2, pero aún podría funcionar.

Encontré una bifurcación mantenidahttps://github.com/nginx-modules/ngx_ustats_module

El parche 1.7.2 todavía funciona perfectamente contra 1.7.4

Respuesta4

Estaba buscando un control de estado simple como el que ofrece Amazon ELB. Capacidad para agregar instancias en un LB, tener un mecanismo de verificación de estado para eliminar instancias defectuosas.

Así que aquí estaban mis opciones.

  1. https://github.com/yaoweibin/nginx_upstream_check_module
  2. https://github.com/openresty/lua-resty-upstream-healthcheck
  3. Nginx también proporciona una verificación de estado pasiva de forma gratuita. Hace exactamente lo que quiero, sin monitoreo sofisticado, sin pesos, sin verificación de ruta sofisticada. Haría ping al servidor y verificaría la respuesta de estado 200. Lo haría en forma de todos contra todos.

    El parámetro fail_timeout establece el tiempo durante el cual debe ocurrir el número especificado de intentos fallidos y aún considerar que el servidor no está disponible. En otras palabras, el servidor no está disponible durante el intervalo establecido por fail_timeout.

    El parámetro max_fails establece la cantidad de intentos fallidos que deben ocurrir durante el tiempo especificado para seguir considerando que el servidor no está disponible.

    P.ej:

    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; }

información relacionada