keepalived
yum install keepalived -y

单主模式
  主:配置文件
	! Configuration File for keepalived
	
	global_defs {
	notification_email {
		root@localhost
	}
	notification_email_from keepalived@localhost
	smtp_server 192.168.200.1
	smtp_connect_timeout 30
	router_id proxy1                          ID号,每个机器的ID号不能一样
	vrrp_mcast_group4 224.1.1.1
	}
	
	vrrp_instance VI_1 {
		state MASTER						  是否为主,MASTER是主,BACKUP是副
		interface eth0						  制定网卡
		virtual_router_id 66		
		priority 100						  优先级,数字越大优先级越高
		advert_int 1
		authentication {
			auth_type PASS
			auth_pass 123456				  两个通信的密码
		}
		virtual_ipaddress {
			10.0.0.3						  网站IP地址是多
		}
	}
副配置文件:
	! Configuration File for keepalived

	global_defs {
	notification_email {
		root@localhost
	}
	notification_email_from keepalived@localhost
	smtp_server 192.168.200.1
	smtp_connect_timeout 30
	router_id proxy2
	vrrp_mcast_group4 224.1.1.1
	}
	
	vrrp_instance VI_1 {
		state BACKUP
		interface eth0
		virtual_router_id 66
		priority 80
		advert_int 1
		authentication {
			auth_type PASS
			auth_pass 123456
		}
		virtual_ipaddress {
			10.0.0.3
		}
	}

启动
	systemctl start keepalived

keepalived日志
	启用keepalive日志功能
	配置文件:
		vim /etc/sysconfig/keepalived
	
		修改为日志级别3	
			KEEPALIVED_OPTIONS="-D -S 3"
		
		vim /etc/rsyslog.conf
		添加以下内容 在最后没添加上即可	
			local3.*                                                /var/log/keepalive.log
	
	重启一下日志服务
		systemctl restart rsyslog.service
		
	再来重启一下keepalive服务.
		systemctl restart keepalived
	
实现keepalived脚本检测,nginx进程挂掉之后IP飘逸到备用服务器上
主服务器配置文件:

! Configuration File for keepalived
	
	global_defs {
	notification_email {
		root@localhost
	}
	notification_email_from keepalived@localhost
	smtp_server 192.168.200.1
	smtp_connect_timeout 30
!	router_id proxy1
!	vrrp_mcast_group4 224.1.1.1
	}
	
	vrrp_script chk_nginx {
	script "/data/nginx_check.sh"
	interval 2
	weight 2	
	}

	vrrp_instance VI_1 {                                             
		state MASTER
		interface eth0
		virtual_router_id 66
		priority 100
		advert_int 1
		authentication {
			auth_type PASS
			auth_pass 123456
		}
		virtual_ipaddress {
			172.16.30.155
		}
	track_script {
		chk_nginx
		}
	}
		
备用服务器配置文件:
! Configuration File for keepalived
	
	global_defs {
	notification_email {
		root@localhost
	}
	notification_email_from keepalived@localhost
	smtp_server 192.168.200.1
	smtp_connect_timeout 30
!	router_id proxy1
!	vrrp_mcast_group4 224.1.1.1
	}
	
	vrrp_script chk_nginx {
	script "/data/nginx_check.sh"
	interval 2
	weight 2	
	}

	vrrp_instance VI_1 {                                             
		state BACKUP
		interface eth0
		virtual_router_id 66
		priority 90
		advert_int 1
		authentication {
			auth_type PASS
			auth_pass 123456
		}
		virtual_ipaddress {
			172.16.30.155
		}
	track_script {
		chk_nginx
		}
	}

nginx检测脚本


#!/bin/bash
########################
CHECK_NUM=$(ps -ef|grep nginx|grep -v grep|grep -v check|wc -l)
if [ $CHECK_NUM -eq 0 ];then
	systemctl stop keepalived
fi






实现:keepalive 实现主主IP也就是双主

# vim keepalived.conf
	! Configuration File for keepalived
	
	global_defs {
	notification_email {
		root@localhost
	}
	notification_email_from keepalived@localhost
	smtp_server 192.168.200.1
	smtp_connect_timeout 30
	router_id proxy1
	vrrp_mcast_group4 224.1.1.1
	}
	
	vrrp_instance VI_1 {
		state MASTER
		interface eth0
		virtual_router_id 66
		priority 100
		advert_int 1
		authentication {
			auth_type PASS
			auth_pass 123456
		}
		virtual_ipaddress {
			10.0.0.3
		}
	}
	vrrp_instance VI_2 {
    state BACKUP
    interface eth0
    virtual_router_id 88
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 654321
    }
    virtual_ipaddress {
        10.0.0.4
     }
  }
vip地址不能一样,优先级不能一样,ID号不能一样	,密码也不能一样
		
副主:
# vim keepalived.conf
    notification_email {
      root@localhost
    }
    notification_email_from keepalived@localhost
    smtp_server 192.168.200.1
    smtp_connect_timeout 30
    router_id proxy2
    vrrp_mcast_group4 224.1.1.1
  }

	vrrp_instance VI_1 {
		state BACKUP
		interface eth0
		virtual_router_id 66
		priority 80
		advert_int 1
		authentication {
			auth_type PASS
			auth_pass 123456
		}
		virtual_ipaddress {
			10.0.0.3
		}
	}
	
	vrrp_instance VI_2 {
		state MASTE
		interface eth0
		virtual_router_id 88
		priority 100
		advert_int 1
		authentication {
			auth_type PASS
			auth_pass 654321
		}
		virtual_ipaddress {
			10.0.0.4
		}
	}		
		
vip地址不能一样,优先级不能一样,ID号不能一样	,密码也不能一样



			发邮件通知
示例通知脚本
vim /etc/keepalived/notify.sh
		
	#!/bin/bash
	#
	contact='root@localhost'
	notify() {
		mailsubject="$(hostname) to be $1, vip floating"
		mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1"
		echo "$mailbody" | mail -s "$mailsubject" $contact
	}
	case $1 in
	master)
		notify master
	;;
	backup)
		notify backup
	;;
	fault)
		notify fault
	;;
	*)
		echo "Usage: $(basename $0) {master|backup|fault}"
		exit 1
		;;
	esac 	

KeepAlived双主配置
 脚本的调用方法:
 在vrrp_instance VI_1 语句块最后面加下面行
	notify_master "/etc/keepalived/notify.sh master"
	notify_backup "/etc/keepalived/notify.sh backup"
	notify_fault "/etc/keepalived/notify.sh fault"
	keepalive偏移,主变成备或者备变成主	

	


本文 暂无 评论

Top