Keepalived构建高可用LVS集群(2)

# yum install keepalived -y
# vim /etc/keepalived/keepalived.conf
global_defs {
  notification_email {
    admin@126.com                        //目标邮箱,可以有多个
  }
  notification_email_from root@node3.linuxidc.com          //发件人邮箱
  smtp_server 127.0.0.1                //邮件服务器地址
  smtp_connect_timeout 30              //邮件服务器连接超时时长
  router_id LVS_DEVEL  //运行Keepalived服务器的一个标识。发邮件时显示在邮件标题中的信息
}
vrrp_script chk_mt_down {          //定义一个函数,检测外部因素决定权重的增加或删除
    script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"    //如果检测到down文件,就自动减5个数值的权重
    interval 1                    //一秒检测一次
    weight -5 
}
vrrp_instance VI_1 {              //定义一个vrrp实例
    state BACKUP                  //装态有两个MASTER  /  BACKUP
    interface eth0                //指定网卡
    virtual_router_id 52    //虚拟路由标识,这个标识是一个数字,并且同一个vrrp实例使用唯一的标识,即同一个vrrp_instance下,MASTER和BACKUP必须是一致的,范围0-255
    priority 95          //定义优先级,数字越大,优先级越高,在一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级。
    advert_int 1          //设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
    authentication {                //设定认证机制
        auth_type PASS              //设置验证类型,主要有PASS和AH两种
        auth_pass 21111            //主备密码必须相同
    }
    virtual_ipaddress {    //虚拟ip可以定义多个;格式:ip/16 dev eth2 label eth2:1 
        172.16.13.1
    }
        track_script {        //在这里定义一个函数,追踪上面定义的chk_mt_down函数
chk_mt_down
        }
 notify_master "/etc/keepalived/notify.sh master"    //下面三行定义消息通知机制的,需要在/etc/keepalived/目录下创建执行脚本notify.sh,脚本内容下面给出
 notify_backup "/etc/keepalived/notify.sh backup"
 notify_fault "/etc/keepalived/notify.sh fault"
}
virtual_server 172.16.13.1 80 {            //定义ipvs规则
    delay_loop 6                          //健康状态检查间隔
    lb_algo rr                            //lvs的调度算法
    lb_kind DR                            //lvs的工作模式有DR/NAT/TUN
    nat_mask 255.255.255.255        //掩码netmask 255.255.255.255
#    persistence_timeout 10        //这里是定义会话保持的,单位是秒,因为要测试高可用,所以注释掉了
    protocol TCP                                          //转发协议的类型有tcp/udp两种
    real_server 172.16.113.13 80 {                //定义后端http服务器的
        weight 1                                                    //权重
    TCP_CHECK {                                        //定义健康状态检测方式
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
        }
      }
    real_server 172.16.113.14 80 {
        weight 1
    TCP_CHECK {                                  //定义TCP_CHECK方式
          connect_timeout 3                        //定义连接超时
          nb_get_retry 3                              //定义重试次数
          delay_before_retry 3                    //定义重试间隔
        }
    }
}
# vim /etc/keepalived/notify.sh          //邮件通知机制的运行脚本
 vip=172.16.13.1
contact='kaadmin@localhost'    //必须有kaadmin这个用户存在才可以收到邮件;su - kaadmin 后使用mail查看邮件
notify() {
 mailsubject="`hostname` to be $1: $vip floating"
 mailbody="`date '+%F %H:%M:%S'`: vrrp transition, `hostname` changed to be $1"
echo $mailbody | mail -s "$mailsubject" $contact
}
case "$1" in
master)
notify master
exit 0
;;
backup)
      notify backup
exit 0
;;
fault)
notify fault
exit 0
;;
*)
echo 'Usage: `basename $0` {master|backup|fault}'
exit 1
 ;;
esac
# chmod +x  /etc/keepalived/notify.sh                //添加执行权限
# service keepalived start          //启动keepalived

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3e6eac2551c830f55466cd03872162c0.html