keepalived健康检查方式

时间:2023-03-09 00:52:14
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配置:

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

0)  检测成功

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

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

  

 MISC_CHECK { 

             misc_path "/opt/mytools/check_web.sh web1" #脚本名,需全路径

             misc_timeout 30             #脚本执行的超时时间 

             misc_dynamic                  #动态调整服务器权重 

       }
  • SMTP_CHECK:用来检测邮件服务的smtp
 SMTP_CHECK {
host {
connect_ip <IP ADDRESS>
connect_port <PORT> # 默认检查端口25
}
connect_timeout <INTEGER>
retry <INTEGER>
delay_before_retry <INTEGER>
helo_name <STRING>|<QUOTED-STRING> # "请求命令参数,可选
} #SMTP_CHECK