У меня есть установка с одним сервером HAproxy (фронтенд) и несколькими веб-серверами (бэкэнд). Можно ли настроить HAproxy так, чтобы скрипт выполнялся при выходе из строя веб-сервера?
Я думаю, вы спрашиваете, хотите ли вы отправить письмо, когда один из внутренних серверов выходит из строя, правильно? Я не верю, что есть способ вызвать это из самого HAProxy. Один из способов сделать это - сделать так, чтобы сценарий периодически проверял состояние серверных ВМ и отправлял электронное письмо, если серверная ВМ не работает. Вы можете использовать интерфейс сокета HAProxy, чтобы получить эту информацию. Документы Вот. Вероятно, вам потребуется проанализировать вывод show stat
команда. Удачи!
Я считаю, что приведенный ниже сценарий поможет вам. Пожалуйста, измените его в соответствии с вашими потребностями. Вам нужно запланировать его в своем cron. Вы можете использовать mailx для отправки электронной почты, когда apache выходит из строя и когда он перезапускается.
RESTART="/etc/init.d/httpd restart"
#incase if you are on Deb based boxes
#RESTART="/etc/init.d/apache2 restart"
PGREP="/usr/bin/pgrep"
HTTPD="httpd"
# find httpd pid
$PGREP ${HTTPD}
if [ $? -ne 0 ]
then
# restart apache
$RESTART
fi
Вы можете сделать это через сам HaProxy, он предоставляет вам директиву httpchk, ниже приведены некоторые примеры синтаксиса
option httpchk
option httpchk <uri>
option httpchk <method> <uri>
option httpchk <method> <uri> <version>