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

相关推荐
九硕智慧建筑一体化厂家5 小时前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
波波0075 小时前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
刘某的Cloud6 小时前
ceph osd 导入导出 rbd volume 卷
linux·运维·ceph·volume
隔窗听雨眠7 小时前
GBase 8s并发控制深度解析:封锁机制、隔离级别与死锁处理全攻略
服务器·数据库·oracle
神奇霸王龙8 小时前
Agent 准入门控屠夫:5 旗舰 4 维度评估
linux·运维·数据库·ai·ai作画·agent·ai编程
鲸采云SRM采购管理系统8 小时前
采购管理系统哪家好?2026最新测评对比
java·服务器·数据库
cfm_29148 小时前
基于Binlog实现不停机数据库平滑迁移技术
运维·数据库·架构
迪康Defender9 小时前
AI 重构终端安全运营:智能分析中枢 AI Insight 模块架构与落地场景深度解析
运维·网络·人工智能·其他·安全·重构·架构
那年窗外下的雪.9 小时前
AIDC 学习日志 第 04 天 BGP Underlay 基础与路由选择
服务器·学习·php
0x539 小时前
Java网络编程(二)
java·服务器·网络