lvs+squid 架构代理服务器的自定义健康检查
公司有几套代理服务器,都是采用keepalived+lvs架构搭建的squid代理服务器,保证员工的上网正常, 公司大区的员工多,几乎在先人数都是很高的,今天早上出现了一台机器假死, 端口监听和程序状态都是正常的, keepalived集群也没有把这台假死的机器剔除掉,照样分发了流量过去,导致了 部分地区上网异常,所以琢磨着搞一个lvs自定义的健康检查。下面是我查到的lvs的CHECK方式 ,keepalived上写的misc_check 参数,
real_server 10.90.250.5 3128 {
weight 10
MISC_CHECK {
misc_path "/usr/local/bin/check_squidproxy.sh 172.31.10.21 3128 https://www.baidu.com"
misc_timeout 10
misc_dynamic
}
然后检查脚本如下
cat /usr/local/bin/check_squidproxy.sh
#!/bin/bash
# Author: Fisher at sudops.com
# Script: check_squidproxy.sh
# Version: 1.0
#
if [ $# -ne 3 ];then
echo "Warning: check_command error."
exit 1
else
PROXY_IP=$1
PROXY_PORT=$2
CHECK_URL=$3
CMD=`/usr/bin/curl -I -x ${PROXY_IP}:${PROXY_PORT} "${CHECK_URL}" 2>/dev/null | grep "200 OK" | wc -l`
if [ ${CMD} -ne 1 ];then
echo "CRITCAL: check proxy ${PROXY_IP} failed."
exit 1
else
echo "OK: check proxy ${PROXY_IP} OK."
echo 0
fi
fi
暂无标签
用手机扫描下方二维码可在手机上浏览和分享
评论功能已关闭