2013-07-11 5 views
3

HAProxy способен загрузить баланс MySQL/TOMCAT/Cassandra/LDAP/WEB Server и т. Д .... отлично. Основная проблема заключается в том, чтобы убедиться, что сервер базы данных MySQL/TOMCAT/Cassandra и т. Д. Для пересылки запроса на него запущен и работает (я имею в виду не только установить соединение с портом 3306 для mysql, 8080 для tomcat, 389 для LDAP и т. Д. Я имею в виду что-то более «COMPLETE», который выполняет небольшую операцию с Back-End Servers).Как проверить статус сервера HAProxy?

Мой Use Case:
=============

Есть многочисленные фоновым кот работает за HAproxy, Все кот отбывает через HAproxy и вдруг один из tomcat ушел OutOfMemory. По-видимому, для Haproxy этот сервер tomcat является Up, но запрос перенаправляется на этот tomcat с ошибкой, поскольку tomcat работает с OOM.

Возможно ли сделать Haproxy проверить статус серверного сервера с помощью небольшого сценария оболочки?

В основном этот сценарий выполняет базовую операцию против tomcat, а затем возвращает статус http, если операция была успешной или http-статус 500, если была какая-либо ошибка (т. Е. Tomcat не был доступен).

Существуют ли другие способы настроить HAproxy, чтобы проверить статус «COMPLETE», а не просто проверить соединение на сервера IP: порт?

ответ

0

Решение Я использую доступен по этой ссылке: http://sysbible.org/2008/12/04/having-haproxy-check-mysql-status-through-a-xinetd-script/

Это немного слишком долго, чтобы вставить рядный здесь, но в итоге, есть небольшой скрипт оболочки, который выполняет простой запрос к серверу MySQL на localhost и выводит HTTP 200 или 500 ответ на успех/отказ соответственно. Существует множество способов запуска этого, но для простоты связанное решение просто регистрирует скрипт оболочки напрямую как службу xinetd. Очевидно, что это порт, который идеально должен быть открыт только для HAProxy-сервера и определенно не открыт для Интернета!

HAProxy встроенный мониторинг HTTP, предназначенный для мониторинга веб-бэкендов, может потреблять выходные данные этой службы и использовать ее для определения того, действительно ли сервер на самом деле.

Смежные вопросы