• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

keepalived的健康检查方式

Keepalived winrains 来源:阿狼哥 1年前 (2019-08-31) 129次浏览

一、健康检查方式

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

  • TCP_CHECK:工作在第4层,keepalived向后端服务器发起一个tcp连接请求,如果后端服务器没有响应或超时,那么这个后端将从服务器池中移除。
  • HTTP_GET:工作在第5层,向指定的URL执行http请求,将得到的结果用md5加密并与指定的md5值比较看是否匹配,不匹配则从服务器池中移除;此外还可以指定http返回码来判断检测是否成功。HTTP_GET可以指定多个URL用于检测,这个一台服务器有多个虚拟主机的情况下比较好用。
  • SSL_GET:跟上面的HTTP_GET相似,不同的只是用SSL连接
  • MISC_CHECK:用脚本来检测,脚本如果带有参数,需将脚本和参数放入双引号内。脚本的返回值需为:

            0)  检测成功

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

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

  • SMTP_CHECK:用来检测邮件服务的smtp的

二、相关配置:

  • delay_loop 隔多长时间做一次健康检测,单位为秒
  • connect_timeout 连接超时时间,单位为秒
  • nb_get_retry 检测失败后的重试次数,如果达到重试次数仍然失败,将后端从服务器池中移除。
  • delay_before_retry 失败重试的间隔时间,单位为秒

三、示例

1)HTTP_GET

HTTP_GET {
    url {
        path /index.html
        digest 5b6d74f1453e20c09d6a20d909779ad7
    }
    ## status_code 200
    connect_port 80
    connect_timeout 3
    nb_get_retry 3
    delay_before_retry 7
    } 

##digest的值用genhash生成,genhash由keepalived自带,一般位于安装目录中的bin目录,生成方法:

 #./genhash -s realserverIP -p port -u url
 #./genhash -s 192.168.1.100 -p 80 -u /index.html 

2)TCP_CHECK

TCP_CHECK {
    connect_port 80
    connect_timeout 6
    nb_get_retry 3
    delay_before_retry 3
}

3)MISC_CHECK

MISC_CHECK {
    misc_path “/opt/mytools/check_web.sh web1” #脚本名,需全路径
    misc_timeout 30             #脚本执行的超时时间
    misc_dynamic                  #动态调整服务器权重
} 

作者:阿狼哥

来源:http://blog.chinaunix.net/uid-10480699-id-5179873.html


版权声明:文末如注明作者和来源,则表示本文系转载,版权为原作者所有 | 本文如有侵权,请及时联系,承诺在收到消息后第一时间删除 | 如转载本文,请注明原文链接。
喜欢 (1)