keepalive实现通知脚本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
keepalive实现通知脚本
定义通知脚本:
notify_master <STRING>|<QUOTED-STRING>:
当前节点成为主节点时触发的脚本
notify_backup <STRING>|<QUOTED-STRING>:
当前节点转为备节点时触发的脚本
notify_fault <STRING>|<QUOTED-STRING>:
当前节点转为“失败”状态时触发的脚本
notify <STRING>|<QUOTED-STRING>:
通⽤格式的通知触发机制,⼀个脚本可完成以上三种状态的转换时的通知
⼀、编写通知脚本
vim /etc/keepalived/notify.sh
存放位置,脚本名⾃定义
⽰例脚本如下:
#!/bin/bash
#
rpm -qi mail &>/dev/null || yum install mailx -y &>/dev/null
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 $1in
master)
notify master
;;
backup)
notify backup
;;
fault)
notify fault
;;
*)
echo"Usage: $(basename $0) {master|backup|fault}"
exit 1
;;
esac
⼆、添加执⾏权限
chmod +x /etc/keepalived/notify.sh
三、将这个脚本拷贝到其他keepalive服务器上
scp /etc/keepalived/notify.sh192.168.1.8:/etc/keepalived/notify.sh
四、测试脚本
bash notify.sh backup
五、查看是否有收到邮件
2 root Wed May 2601:3919/678"ka1 to be backup, vip floating"
& 2
Message 2:
From root@ka1.localdomain Wed May 2601:39:382021
Return-Path: <root@ka1.localdomain>
X-Original-To: root@localhost
Delivered-To: root@localhost.localdomain
Date: Wed, 26 May 202101:39:38 -0400
To: root@localhost.localdomain
Subject: ka1 to be backup, vip floating
User-Agent: Heirloom mailx 12.57/5/10
Content-Type: text/plain; charset=us-ascii
From: root@ka1.localdomain (root)
Status: RO
2021-05-2601:39:38: vrrp transition, ka1 changed to be backup
&
六、在配置⽂件中添加脚本
vim /etc/keepalived/keepalived.conf
1、在实例的最下⾯添加三⾏
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
解释:
notify_master "/etc/keepalived/notify.sh master"
master时触发notify.sh master
notify_backup "/etc/keepalived/notify.sh backup"
backup的时候触发notify.sh backup
notify_fault "/etc/keepalived/notify.sh fault"
fault (有故障)的时候触发fault
七、测试
1、查看主服务器的邮件
[02:20:29 root@ka1 keepalived]#mail
Heirloom Mail version 12.57/5/10. Type ? for help.
"/var/spool/mail/root": 3 messages
> 1 root Wed May 2601:3319/678"ka1 to be master, vip floating"
2 root Wed May 2601:3919/678"ka1 to be backup, vip floating"
3 root Wed May 2602:1719/678"ka1 to be master, vip floating"
&
2、我这邮件太多了,为了看的清楚,就清空现有的邮件
rm -rf /var/spool/mail/root
3、直接杀掉keepalived进程
killall -9 keepalived
4、查看从服务器的邮件,这时候从服务器已经获取了IP地址了,
但测试下来发现,直接杀死进程,所有服务器都没有收到邮件,停⽌服务可以收到邮件。