keepalived对后端服务器的监测方式实战案例
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.keepalived节点配置TCP监测
1>.编辑keepavlied的子配置文件
[[email protected] ~]# mkdir -pv /etc/keepalived/conf.d mkdir: created directory ‘/etc/keepalived/conf.d’ [[email protected] ~]# [[email protected] ~]# vim /etc/keepalived/conf.d/web.conf [[email protected] ~]# [[email protected] ~]# cat /etc/keepalived/conf.d/web.conf virtual_server 172.30.1.200 80 { #检查后端服务器的时间间隔 delay_loop 6 #定义调度方法 lb_algo wrr #定义集群的工作模式 lb_kind DR #持久连接时长,即会话保持时间 persistence_timeout120 #指定服务协议 protocol TCP #所有RS故障时,备用服务器地址 sorry_server 172.30.1.108 80 #定义后端服务器的IP地址,如果工作在lvs的DR工作模式下,vip的访问端口必须和rip的访问端口要一致. real_server 172.30.1.106 80 { #RS权重 weight 1 #传输层检测 TCP_CHECK { #连接请求的超时时长 connect_timeout 5 #重试次数 nb_get_retry 3 #重试之前的延迟时长 delay_before_retry 3 #向当前RS的哪个PORT发起健康状态检测请求 connect_port 80 } } real_server 172.30.1.107 80 { weight 1 TCP_CHECK { connect_timeout 5 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } } [[email protected] ~]#
2>.编辑keepalived主配置文件
[[email protected] ~]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived #上一行是注释信息,global_defs则定义全局配置。 global_defs { #声明虚拟路标识符,一般会写当前主机名称 router_id node102.yinzhengjie.org.cn #所有报文都检查比较消耗性能,此配置为如果收到的报文和上一个报文是同一个路由器发出的则跳过检查报文中的源地址。 vrrp_skip_check_adv_addr #禁用防火墙策略,keepalived默认启动时会自动生成iptables策略,因此我们启用此项就可以不生成iptables的策略。 vrrp_iptables #严格遵守VRRP协议,即不允许以下三种状况: # 1>.没有VIP地址; # 2>.单播邻居; # 3>.在VRRP版本2中有IPv6地址; # #由于我下面配置基于单播地址发送消息,因此我这里手动禁用了严格模式,直接注释即可。 #vrrp_strict #ARP报文发送延迟时间,0表示不延迟。 vrrp_garp_interval 0 #消息发送延迟,0表示不延迟。 vrrp_gna_interval 0 } #使用vrrp_instance指令定义一个VIP实例名称,我这里自定义VIP实例的名称为"VIP01",生产环境建议该名称和业务相结合。 vrrp_instance VIP01 { #指定当前实例默认角色,当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUP state BACKUP #定义工作模式为非抢占模式(即当master重启,VIP会飘移到其它节点,重启完成后并不会将vip抢过来),需要两个keepalived的state的值均为"BACKUP",让它们根 据个节点的优先级选择对应的master nopreempt #定义VIP绑定的本地接口的名称(该接口名称必须在当前节点存在哟~),即绑定为当前虚拟路由器使用的物理接口 interface eth1 #定义当前虚拟路由器惟一标识,该id的范围是0-255,注意,用一组keepalived的id编号必须要一致哟~ virtual_router_id 27 #当前物理节点在此虚拟路由器中的优先级;范围1-254 priority 150 #定义vrrp通告的时间间隔,默认1s advert_int 2 #指定单播地址的源地址,需要禁用严格模式"vrrp_strict" unicast_src_ip 172.30.1.102 #指定单播地址的对端地址 unicast_peer { 172.30.1.103 } #定义认证机制 authentication { #指定认证类型 auth_type PASS #指定认证密码,仅前8位有效哟~ auth_pass yinzhengjie } #指定具体的虚拟IP地址,可以指定多个。 virtual_ipaddress { 172.30.1.100 dev eth1 label eth1:0 172.30.1.200 dev eth1 label eth1:1 } #定义通知脚本,当前节点成为主节点时触发的脚本 notify_master "/etc/keepalived/notify.sh master" #定义通知脚本,当前节点转为备节点时触发的脚本 notify_backup "/etc/keepalived/notify.sh backup" #定义通知脚本,当前节点转为“失败”状态时触发的脚本 notify_fault "/etc/keepalived/notify.sh fault" } #导入keepalived的子配置文件 include /etc/keepalived/conf.d/*.conf [[email protected] ~]#
3>.重启keepalived使得配置生效
[[email protected] ~]# yum -y install ipvsadm Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirrors.njupt.edu.cn * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com Resolving Dependencies --> Running transaction check ---> Package ipvsadm.x86_64 0:1.27-7.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================================= Package Arch Version Repository Size ================================================================================================================================================= Installing: ipvsadm x86_64 1.27-7.el7 base 45 k Transaction Summary ================================================================================================================================================= Install 1 Package Total download size: 45 k Installed size: 75 k Downloading packages: ipvsadm-1.27-7.el7.x86_64.rpm | 45 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : ipvsadm-1.27-7.el7.x86_64 1/1 Verifying : ipvsadm-1.27-7.el7.x86_64 1/1 Installed: ipvsadm.x86_64 0:1.27-7.el7 Complete! [[email protected] ~]#
[[email protected] ~]# systemctl restart keepalived [[email protected] ~]# [[email protected] ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.30.1.200:80 wrr -> 172.30.1.106:80 Route 1 0 0 -> 172.30.1.107:80 Route 1 0 0 [[email protected] ~]#
二.keepalived节点配置HTTP监测
1>.
2>.
3>.
4>.
5>.