离线安装keepalived,所需的rpm包如下所示:
keepalived-1.3.5-6.el7.x86_64.rpm
net-snmp-agent-libs-5.7.2-33.el7_5.2.x86_64.rpm
net-snmp-libs-5.7.2-33.el7_5.2.x86_64.rpm
mailx-12.5-19.el7.x86_64.rpm
rpm包下载地址 : https://download.csdn.net/download/Victory_Lei/18415534
1、安装keepalived
安装命令:rpm -ivh *.rpm --nodeps --force
2、编写邮件通知脚本
[admin@admin01 keepalived]# cat notify.sh
#!/bin/bash
#
contact='root@localhost'
notify() {
local mailsubject="$(hostname) to be $1, vip floating"
local 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的机器上。
[admin@admin01 keepalived]# scp -p notify.sh admin@admin02:/etc/keepalived #远程拷贝到其他机器上
3、修改配置文件
#备份原有的配置文件
[admin@admin01 keepalived]$ mv keepalived.conf keepalived.conf.bak
[admin@admin01 keepalived]$ vim keepalived.conf
#拷贝下面得内容到keepalived.conf
global_defs {
router_id worker01 #路由ID, 主备的ID不能相同
notification_email {
root@localhost #邮件通知接收者
}
notification_email_from admin03@localhost #邮件发送者
smtp_server 127.0.0.1 #邮件服务器地址为127.0.0.1
smtp_connect_timeout 30 #超时时长为30秒
}
vrrp_instance VI_1 {
state MASTER #Keepalived的角色。Master表示主服务器,从服务器设置为BACKUP
interface eth0 #指定监测网卡
virtual_router_id 1 #虚拟路由的ID号,两个节点设置必须一样
priority 120 #优先级,BACKUP机器上的优先级要小于这个值
advert_int 1 #设置主备之间的检查时间,单位为s
track_script {
#check_script
}
authentication { #定义验证类型和密码
auth_type PASS
auth_pass root123
}
virtual_ipaddress { #VIP地址,可以设置多个:
VIP
}
#配置keepalived发生故障转移时,触发执行的脚本
notify_master "/etc/keepalived/notify.sh master "
notify_backup "/etc/keepalived/notify.sh backup "
notify_fault "/etc/keepalived/notify.sh fault "
}
4、安装mail命令
安装mail
rpm -ivh mailx-12.5-19.el7.x86_64.rpm --nodeps --force
提示:在其他机器上也需要安装mailx这个程序包,让其能够通过mail来发送邮件;
验证:手动给脚本传递master|backup参数,测试在本机是否能够发送邮件?本机root用户能够收到邮件
提示:可以看到我们给脚本一个master参数,它会以邮件的方式通知给本机的root用户;到此邮件脚本就准备好了;
配置keepalived邮件通知
配置keepalived邮件的接收者和发送者
提示:以上配置表示当发生故障转移,邮件通知接收者为root@localhost,发送者为node01_keepalived@localhost,邮件服务器地址为127.0.0.1,超时时长为30秒;
配置keepalived发生故障转移时,触发执行的
5、配置邮件客户端
提示:配置以上配置以后,在node01和node02上就可以 写某个邮箱,向我们在脚本里指定的接收者邮箱发送邮件了;配置邮件客户端需要在对应的邮箱里开启POP3/SMTP,然后认证以后,它会告诉我们smtp-auth-password的一个字符串,如下所示
6、测试
停掉主节点的keepalived,看是虚IP会转移到其他节点和邮件发送