keepalived的健康检查方式

2014-04-15  guli3057

一、健康检查方式

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                  #动态调整服务器权重 

      }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    猜你喜欢

    0条评论

    发表

    请遵守用户 评论公约

    类似文章
    喜欢该文的人也喜欢 更多