打赏

keepalived健康检查方式

keepalived对后端realserver的健康检查方式主要有以下几种:

  • TCP_CHECK:工作在第4层,keepalived向后端服务器发起一个tcp连接请求,如果后端服务器没有响应或超时,那么这个后端将从服务器池中移除

  TCP_CHECK配置:

TCP_CHECK {
connect_timeout 5 #连接超时时间
nb_get_retry 3#重连次数
delay_before_retry 3 #重连间隔时间
connect_port 80 #健康检查的端口
} # TCP_CHECK
  • HTTP_GET:工作在第5层,向指定的URL执行http请求,将得到的结果用md5加密并与指定的md5值比较看是否匹配,不匹配则从服务器池中移除;此外还可以指定http返回码来判断检测是否成功。HTTP_GET可以指定多个URL用于检测,这个一台服务器有多个虚拟主机的情况下比较好用。
  • SSL_GET:跟上面的HTTP_GET相似,不同的只是用SSL连接

  HTTP_GET和SSL_GET配置:

 1 HTTP_GET | SSL_GET
 2 {
 3 url {
 4 path /# HTTP/SSL 检查的url 可以是多个
 5 digest <STRING> # HTTP/SSL 检查后的摘要信息 用工具genhash生成
 6 status_code 200# HTTP/SSL 检查返回的状态码
 7 }
 8 connect_port 80 # 连接端口
 9 bindto <IPADD>
10 connect_timeout 3 # 连接超时时间
11 nb_get_retry 3 # 重连次数
12 delay_before_retry 2 #连接间隔时间
13 } 
14 # END OF HTTP_GET|SSL_GET
  • MISC_CHECK:用脚本来检测,脚本如果带有参数,需将脚本和参数放入双引号内。脚本的返回值需为: 

            0)  检测成功

            1)  检测失败,将从服务器池中移除

            2-255)检测成功;如果有设置misc_dynamic,权重自动调整为 退出码-2,如退出码为200,权重自动调整为198=200-2。

  

1 MISC_CHECK { 
2 
3             misc_path "/opt/mytools/check_web.sh web1" #脚本名,需全路径
4 
5             misc_timeout 30             #脚本执行的超时时间 
6 
7             misc_dynamic                  #动态调整服务器权重 
8 
9       }
  • SMTP_CHECK:用来检测邮件服务的smtp
 1 SMTP_CHECK {
 2 host {
 3 connect_ip <IP ADDRESS>
 4 connect_port <PORT> # 默认检查端口25
 5 }
 6 connect_timeout <INTEGER>
 7 retry <INTEGER>
 8 delay_before_retry <INTEGER>
 9 helo_name <STRING>|<QUOTED-STRING> # "请求命令参数,可选
10 } #SMTP_CHECK

 

posted @ 2016-12-19 14:35  隔壁老梁  阅读(1445)  评论(0编辑  收藏  举报