爱在莫斯科 发表于 2018-12-29 09:27:03

keepalived健康检查方式

Keepalived健康检查方式配置
HTTP_GET|SSL_GET
HTTP_GET | SSL_GET{url {path /# HTTP/SSL 检查的url 可以是多个digest# HTTP/SSL 检查后的摘要信息 用工具genhash生成status_code 200# HTTP/SSL 检查返回的状态码}connect_port 80 # 连接端口bindto connect_timeout 3 # 连接超时时间nb_get_retry 3 # 重连次数delay_before_retry 2 #连接间隔时间} # END OF HTTP_GET|SSL_GETTCP健康检查方式
TCP_CHECK {connect_timeout 5 #连接超时时间nb_get_retry 3#重连次数delay_before_retry 3 #重连间隔时间connect_port 80 #健康检查的端口} # TCP_CHECKSMTP健康检查方式
SMTP_CHECK {host {connect_ip connect_port# 默认检查端口25}connect_timeout retry delay_before_retry helo_name | # "请求命令参数,可选} #SMTP_CHECKMISC
MISC_CHECK {misc_path |# 外部程序或者脚本路径misc_timeout # 执行脚本的超时时间misc_dynamic#如果设置了misc_dynamic,healthchecker程序的退出状态码会用来动态调整服务器的权重(weight).#返回0:健康检查OK,权重不被修改#返回1:健康检查失败,权重设为0#返回2-255:健康检查OK,权重设置为:退出状态码-2,比如返回255,那么weight=255-2=253}工具genhash使用
# ./genhash -hgenhash v1.0.0 (18/11, 2002)Usage:./genhash -s server-address -p port -u url./genhash -S -s server-address -p port -u url./genhash -h./genhash -rCommands:Either long or short options are allowed../genhash --use-ssl-SUse SSL connection to remote server../genhash --server-sUse the specified remote server address../genhash --port-pUse the specified remote server port../genhash --url-uUse the specified remote server url../genhash --use-virtualhost -VUse the specified virtualhost in GET query../genhash --verbose-vUse verbose mode output../genhash --help-hDisplay this short inlined help screen../genhash --release-rDisplay the>  工具产生结果如下:
# ./genhash -s10.7.11.12 -p 80 -u http://10.7.11.40/index.htmlMD5SUM = b7bd8391367e4cf9e4e85263ce313ae8  配置如下:
real_server 10.7.11.12 80 {weight 1TCP_CHECK {connect_timeout 5nb_get_retry 3delay_before_retry 3connect_port 80}HTTP_GET {url { path /digest b7bd8391367e4cf9e4e85263ce313ae8status_code 200}#url { #path /mrtg/#digest 9b3a0c85a887a256d6939da88aabd8cd#}connect_timeout 3nb_get_retry 3delay_before_retry 3}}  TCP健康检查方式配置例子:
real_server 192.168.191.130 80 {weight 3inhibit_on_failure #在服务器健康检查失效时,将其设为0TCP_CHECK {connect_timeout 5 #连接超时时间nb_get_retry 3#重连次数delay_before_retry 3 #重连间隔时间connect_port 80 #健康检查的端口}}  SSL健康检查方式同HTTP,例子如下:
virtual_server 192.168.200.100 443 {delay_loop 6lb_algo rr lb_kind NATpersistence_timeout 50protocol TCPreal_server 192.168.201.100 443 {weight 1SSL_GET {url { path /digest ff20ad2481f97b1754ef3e12ecd3a9cc}url { path /mrtg/digest 9b3a0c85a887a256d6939da88aabd8cd}connect_timeout 3nb_get_retry 3delay_before_retry 3}}}  SNMP方式例子:
real_server 172.16.1.12 25 {weight 1SMTP_CHECK {connect_timeout 10retry 2delay_before_retry 5helo_name "foo.bar.com"host {connect_ip 172.16.1.12connect_port 25bindto 172.16.1.2}host {connect_ip192.168.155.11connect_port 25bindto 192.168.155.2}host {connect_ip64.233.167.100connect_port 587}}}  MISC方式脚本带参数例子:
real_server 192.168.200.6 1358 {weight 1MISC_CHECK {misc_path "/usr/local/bin/script.sh arg1 arg2"}}  MISC方式脚本不带参数例子:
real_server 192.168.200.6 1358 {weight 1MISC_CHECK {misc_path /usr/local/bin/script.sh!misc_dynamic}}

页: [1]
查看完整版本: keepalived健康检查方式