目录
1、先检查是否有mailx
[root@zlkj-ecs-0004 ~]# type mail
mail is /usr/bin/mail
这样子表示有 进入/ect中编辑mail.rc即可
如果没得即要安装
2、安装
yum install mailx
3、编译文件
安装好了之后,进入/ect中编辑mail.rc
在最后面加入
#发送邮件的邮箱
set from=xxx@qq.com
#smtp邮件服务器
set smtp=smtp.qq.com(163的是smtp.163.com)
#发送邮件的邮箱用户
set smtp-auth-user=xxx@qq.com
#邮箱授权码(这个授权码不是密码哦,要去百度查一下,我用的是163的)
set smtp-auth-password=xxx
set smtp-auth=login
set ssl-verify=ignore
如:
注意:#这个网站可以查看怎么获取163的授权码
https://note.youdao.com/ynoteshare/index.html?id=f9fef46114fb922b45460f4f55d96853&type=note&_time=1671506140887
4、编写邮件通知脚本
创建邮件通知脚本文件notify.sh,文件和keepalived.conf放在同一路径下
vi /etc/keepalived/notify.sh
编辑内容如下
#!/bin/bash
#接收者邮箱,多个以空格分隔
contact=(***@163.com ***@163.com )
#本机ip
HOST_IP=192.168.96.112
notify() {
#邮件主题
mailsubject="vip转移,$HOST_IP keepalived to be $1"
#邮件正文
mailbody="$(date +'%F %T'): 节点切换, $HOST_IP keepalived changed to be $1"
for receiver in ${contact[*]}
do
#发送邮件
echo "$mailbody" | mail -s "$mailsubject" $receiver
done
}
case $1 in
master)
notify master
;;
backup)
notify backup
;;
fault)
notify fault
;;
*)
echo "Usage:{master|backup|fault}"
exit 1
;;
esac
5、编辑完成后,给脚本授予执行权限
授权
[root@zlkj-ecs-0004 keepalived]# chmod +x notify.sh
变格式
[root@zlkj-ecs-0004 keepalived]# sed -i 's/\r$//' notify.sh
是否执行会报错,找不到文件
测试:
手动执行一下脚本./notify.sh backup ,看是否可以成功发送邮件
这样子就可以使用,继续加到keepalived上面
6、在keepalived中调用邮件通知脚本
在keepalived的配置文件keepalived.conf中配置notify.sh脚本被触发执行的时机
#当前节点成为主节点时触发的脚本
notify_master "/etc/keepalived/notify.sh master"
#当前节点转为备节点时触发的脚本
notify_backup "/etc/keepalived/notify.sh backup"
#当前节点转为失败状态时触发的脚本
notify_fault "/etc/keepalived/notify.sh fault"
如图:
挂掉主节点,查看是否收到邮件,如果可以即完成,如果没有收到,请查看上一步能否发送邮件