Keepalived 通知脚本配置

当keepalived的状态变化时,可以自动触发脚本的执行,比如:发邮件通知用户

默认以用户keepalived_script身份执行脚本

如果此用户不存在,以root执行脚本可以用下面指令指定脚本执行用户的身份

global_defs {

......

script_user <USER>

......

}

一、通知脚本类型

当前节点成为主节点时触发的脚本

notify_master <STRING> | <QUOTED-STRING>

当前节点转为备节点时触发的脚本

notify_backup <STRING> | <QUOTED-STRING>

当前节点转为"失败"状态时触发的脚本

notify_fault <STRING> | <QUOTED-STRING>

通用格式的通知触发机制,一个脚本可完成以上三种状态的转换时的通知

notify <STRING> | <QUOTED-STRING>

当停止VRRP时触发的脚本

notify <STRING> | <QUOTED-STRING>

二、邮件配置

1、安装邮件发送工具

root@ka1 \~\]# yum install mailx -y

2、QQ邮箱配置

vim /etc/mail.rc
set from=QQ邮箱

set smtp=smtp.qq.com #发送邮箱服务器

set smtp-auth-user=QQ邮箱

set smtp-auth-password=QQ邮箱授权码

set smtp-auth=login

set ssl-verify=ignore

IMAP/SMTP 设置方法

用户名/帐户: 你的QQ邮箱完整的地址

密码: 生成的授权码

电子邮件地址: 你的QQ邮箱的完整邮件地址

接收邮件服务器: imap.qq.com,使用SSL,端口号993

发送邮件服务器: smtp.qq.com,使用SSL,端口号465或587

POP3/SMTP 设置方法

用户名/帐户: 你的QQ邮箱完整的地址

密码: 生成的授权码

电子邮件地址: 你的QQ邮箱的完整邮件地址

接收邮件服务器: pop.qq.com,使用SSL,端口号995

发送邮件服务器: smtp.qq.com,使用SSL,端口号465或587

QQ邮箱生成授权码:

3、在 vrrp_instance VI_1 语句块的末尾以下内容

vim /etc/keepalived/keepalived.conf

bash 复制代码
notify_master "/etc/keepalived/notify.sh master"

notify_backup "/etc/keepalived/notify.sh backup"

notify_fault "/etc/keepalived/notify.sh fault"

重启服务:

systemctl restart keepalived.service

4、发送测试邮箱

root@ka1 \~\]# echo test message \|mail -s test QQ邮箱

三、实现Keepalived 状态转化的通知脚本

1、keepalived节点ka1、ka2脚本配置:

vim /etc/keepalived/mail.sh

bash 复制代码
#!/bin/bash
mail_dest='QQ邮箱@qq.com'
mail_send()
{
   mail_subj="$HOSTNAME to be $1 vip 转移"
   mail_mess="`date +%F\ %T`: vrrp 转移,$HOSTNAME 变为 $1"
   echo "$mail_mess" | mail -s "$mail_subj" $mail_dest
}
case $1 in
   master)
   mail_send master
   ;;
   backup)
   mail_send backup
   ;;
   fault)
   mail_send fault
   ;;
   *)
   exit 1
   ;;
esac

给脚本执行权限:

chmod +x /etc/keepalived/mail.sh

2、ka1、ka2编辑keepalived.conf配置文件

root@ka1 \~\]# vim /etc/keepalived/keepalived.conf

root@ka2 \~\]# vim /etc/keepalived/keepalived.conf

3、在ka1、ka2设置好QQ邮箱配置

vim /etc/mail.rc

4、测试结果

1、先重启ka1的服务

2、再重启ka2的服务

因为ka1的优先级要比ka2高,所以ka2还是变成backup。

3、再关闭ka1的服务

4、再关闭ka2的服务,然后重启ka2

5、再重启ka1

相关推荐
搬码临时工18 分钟前
如何把本地服务器变成公网服务器?内网ip网址转换到外网连接访问
运维·服务器·网络·tcp/ip·智能路由器·远程工作·访问公司内网
Guheyunyi1 小时前
监测预警系统重塑隧道安全新范式
大数据·运维·人工智能·科技·安全
鳄鱼杆1 小时前
服务器 | Centos 9 系统中,如何部署SpringBoot后端项目?
服务器·spring boot·centos
知更鸟呆呆1 小时前
【Linux操作系统】基础开发工具(yum、vim、gcc/g++)
linux·运维·vim
Gold Steps.2 小时前
Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志
运维·docker·云原生·es
weixin_461259412 小时前
[C]C语言日志系统宏技巧解析
java·服务器·c语言
m0_637146932 小时前
C语言基础面试问答
运维·服务器
Clownseven3 小时前
SSH/RDP无法远程连接?腾讯云CVM及通用服务器连接失败原因与超全排查指南
服务器·ssh·腾讯云
ricky_fan3 小时前
window下配置ssh免密登录服务器
运维·服务器·ssh
地衣君4 小时前
Ubuntu 配置使用 zsh + 插件配置 + oh-my-zsh 美化过程
linux·运维·ubuntu