Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138678
  • 博文数量: 68
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-28 20:01
文章分类

全部博文(68)

文章存档

2015年(68)

我的朋友

分类: 系统运维

2015-08-31 19:11:23

一、健康检查方式

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

      }

阅读(8423) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~