keepalived配置实例

实例一
启动keepalived之后找不到配置文件:
1、编辑/etc/rsyslog.conf #指明各类日志文件中的信息
加上一句,
local3.* /var/log/keepalived.log

2、编辑/etc/sysconfig/keepalived,
加上一句,
KEEPALIVED_OPTIONS=”-D -S 3” #指明keepalived日志文件的facility(等级)为3

3、重启rsyslog,keepalived服务
在centos7中,
systemctl restart rsyslog.service
systemctl restart keepalived.service

实例二
手动调度vip在两台主机中转移
在配置文件中,
1、vrrp实例之外加上一个函数
vrrp_script chk_maintainnance{
script “[[ -f /etc/keepalived/down]] && exit 1 || exit 0”
interval 1
weight -2
}

2、vrrp实例之内调用这个函数
track_script{
chk_maintainnance
}
用法:只需要touch /etc/keepalived/down,vip就会转移;
删除down文件又会转移到另一台主机

实例三
配置虚拟路由器组
vrrp_sync_group VG_1{
group {
VI_1
VI_2
}
}

vrrp_instance VI_1{
eth0
vip #对外部客户
}

vrrp_instance VI_2{
eth1
dip #对内部主机
}

实例四
主机状态发生改变时发送通知:在vrrp实例中定义

#notify scripts,alert as above –自定义脚本
notify_master | #当前节点转换为master时,发送相应消息
notify_backup | #当前节点转换为backup时,发送相应消息
notify_fault |<QUOTED_STRING> #当前节点转换为fault(发生故障)时,发送相应消息
notify |
smtp_alert
实例:””括起来的内容就是表示QUOTED_STRING
notify_master “/etc/keepalived/notify.sh master”
notify_backup “/etc/keepalived/notify.sh backup”
notify_fault “/etc/keepalived/notify.sh fault”

下面是一个notify脚本的简单示例:

#!/bin/bash
vip=172.16.100.1
contact=‘root@localhost’

notify(){
mailsubject=”hostname to be $1:$vip floating”
mailbody=”date '+%F %H:%M:%S':vrrp transtion,hostname change to be $1”
echo $mailbody|mail -s “$mailsubject” $contact
}

case “$1” in
master)
notify master

#/etc/rc.d/init.d/haproxy start
exit 0

;;
backup)
notify backup

#/etc/rc.d/init.d/haproxy stop
exit 0

;;
fault)
notify fault

#/etc/rc.d/init.d/haproxy stop
exit 0

;;
*)
echo “Usage:basename $0 {master|backup|fault}”
exit 1
;;
esac