nginx как получить статус веб-серверов на бэкэнде?

nginx как получить статус веб-серверов на бэкэнде?

У HAProxy очень хорошая страница статуса, показывающая мне, какие веб-серверы работают, а какие нет на бэкэнде. Я пытаюсь отладить некоторые проблемы и мне нужно знать, какие серверы nginx считает работающими, а какие нет. Есть ли веб-страница или что-то еще, что можно настроить для nginx, чтобы я мог просто нажать на URL, когда мне нужна такая информация?

спасибо, Дин

решение1

Вот несколько модулей, которые вам, возможно, стоит изучить:

решение2

К сожалению, изначально это практически невозможно. В стандартной комплектации Nginx не предусмотрено глобальное состояние для upstream-процесса, поэтому эта информация является локальной для каждого рабочего процесса.

Взгляните на этот модуль, он может быть вам полезен.http://wiki.nginx.org/NginxHttpHealthcheckModule

решение3

Хоть и год опоздал с ответом, но модуль ustats для nginx выглядит весьма впечатляюще:

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

перемещено на githubhttps://github.com/0xc0dec/ustats

К сожалению, похоже, что после версии 1.2 эта функция не поддерживается, но может работать и дальше.

Найдена поддерживаемая вилкаhttps://github.com/nginx-modules/ngx_ustats_module

Патч 1.7.2 по-прежнему отлично работает с 1.7.4

решение4

Я искал простую проверку работоспособности, которую предоставляет Amazon ELB. Возможность добавлять экземпляры в LB, иметь механизм проверки работоспособности для удаления неисправных экземпляров.

Итак, вот какие у меня были варианты.

  1. https://github.com/yaoweibin/nginx_upstream_check_module
  2. https://github.com/openresty/lua-resty-upstream-healthcheck
  3. Nginx также предоставляет пассивную проверку работоспособности бесплатно. Он делает именно то, что я хочу, никакого причудливого мониторинга, никаких весов, никакой причудливой проверки маршрута. Он пингует сервер и проверяет ответ статуса 200. Он делает это по принципу циклического перебора.

    Параметр fail_timeout устанавливает время, в течение которого должно произойти указанное количество неудачных попыток и сервер все еще будет считаться недоступным. Другими словами, сервер недоступен в течение интервала, установленного fail_timeout.

    Параметр max_fails задает количество неудачных попыток, которые должны произойти в течение указанного времени, чтобы сервер все еще считался недоступным.

    Например:

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

Связанный контент