一.实现服务器可以发邮件
1. 安装mailx
yum install -y mailx
2.修改配置文件
vim /etc/mail.rc
set bsdcompat
set from=3181728286@qq.com #邮箱地址
set smtp=smtp.qq.com
set smtp-auth-user=1194153883@qq.com
set smtp-auth-password=kpuhuqvppcedjjeh #需要开启邮箱pop3
set smtp-auth=login
set ssl-verify=ignore
3.测试发送邮件
echo "hello" | mail -s "mail test" 3181728286@qq.com
二.实现keepalived状态切换通知
1.配置脚本文件
vi /etc/keepalived/notify.sh
#!/bin/bash
#********************************************************************
#Author: a rookie
#QQ: 3181728286
#Date: 2023-01-24
#FileName: install_jdk.sh
#URL: https://blog.csdn.net/zhanghongshun624/article
#Description: The test script
#Copyright (C): 2023 All rights reserved
#********************************************************************
contact='3181728286@qq.com'
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
2.修改keepalived配置文件
vi /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
......
virtual_ipaddress {
10.0.0.192
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
3.模拟master故障
killall keepalived
4.查看邮件
补充:
当keepalived的状态变化时,可以自动触发脚本的执行,比如:发邮件通知用户 默认以用户keepalived_script身份执行脚本,如果此用户不存在,以root执行脚本 可以用下面指令指定脚本执行用户的身份
global_defs {
......
script_user <USER>
......
}