/export/servers/keepalived/conf/keepalived.conf配置文件详解:


! Configuration File for keepalived

#全局配置

global_defs {

   notification_email {         #设置报警邮件地址,每行一个,(如何要开启邮件报警,需要开启本机的sendmail服务)

      lihuiyw@jd.com   

}

   notification_email_from lihuiyw@jd.com   #设置邮件的发送地址

   smtp_server mail.jd.com            #设置邮件的smtp server地址

   smtp_connect_timeout 30            #设置连接smtp server的超时时间

   router_id LVS_DEVEL             #表示keepalived服务器的一个标识,是发邮件时显示在邮件主题中的信息

}

#keepalived的VRRPD配置,是所有keepalived配置的核心

#VRRP实例配置

vrrp_instance VIP_142    #是VRRP实例开始的标识,后跟VRRP实例名称

{

state MASTER        #keepalived的角色,MASTER主,BACKUP备

interface eth0        #用于指定HA监测网络的接口

virtual_router_id 142     #虚拟路由标识,这个标识是一个数字,同一个VRRP实例使用唯一的一个标识,即在同一个vrrp_instance下,MASTER和BACKUP必须是一致的!

priority 100         #权重优先级

advert_int 2         #用于设定master和backup主机之间同步检查的时间间隔,单位是秒

garp_master_delay 10     #用于切换到master状态后延时进行Gratuitous arp请求的时间

smtp_alert          #表示是否开启邮件通知(用全局区域的邮件设置来发通知)

authentication        #主备之间进行通信的验证类型和密码:验证类型主要有PASS和AH两种,一个在vrrp_instance下,MASTER和backup必须使用相同的密码才可以通信

{

auth_type PASS 

auth_pass 123456

}

#virtual_ipaddress用于设置虚拟ip地址,可以设置多个vip,每行一个,

virtual_ipaddress

10.95.0.200/24

}

track_interface     #用于设置一些额外的网络监控接口,其中任何一个网络接口出现故障,keepalived都会进去fault状态!

{

eth0

nopreempt       #设置不抢占功能,只能在backup上使用,知道机器有故障了才切换,

preemtp_delay 300   #用于设置抢占的延时时间,(例:开启启动没必要抢占)

}

#以下是lvs的主要主要配置信息,主要实现lvs的ip包转发功能!

virtual_server 10.95.0.200 80        #虚拟ip和端口

{

  delay_loop 6        #设置健康检查的时间间隔

  lb_algo wrr         #设置负载调度算法

  lb_kind DR         #设置lvs的模式

  persistence_timeout 60    #会话保持时间,单位秒

  protocol TCP        #ip包转发协议,有TCP和UDP两种

  real_server 10.95.0.143 80    #real server 的ip

  {

    weight 3            #权重

    TCP_CHECK            #健康检查

    {

      connect_timeout 10        #表示无响应超时时间

      nb_get_retry 3            #表示重连次数

      delay_before_retry 3        #表示重试间隔

      connect_port 80            #表示端口

    }

  }

  real_server 10.95.0.144 80

  {

    weight 3

    TCP_CHECK

    {

      connect_timeout 10

      nb_get_retry 3

      delay_before_retry 3

      connect_port 80

    }

  }

}



健康监测应许多种检查方式,常见的有,HTTP_GET,SSL_GET,TCP_CHEC,SMTP_CHECK,MISC_CHECK.

HTTP_GET |SSL_GET

{

    url{

        path /index.html    #指定url信息

        digest e6owjfdsjfalsjdfsalkf30wfdsfjwqe    

        #ssl检查后的摘要信息,这些摘要信息可以通过genhash命令工具获取,

            #例:genhash -s 192.168.12.80 -p 80 -u /index.html

        status_code 200   

}

    connect_port 80

    bindto 192.168.31.128       #表示通过此地址来对发送请求对服务器进行健康检查

    nb_get_retry 3

    delay_before_retry 2


}