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

相关推荐
杨德杰15 小时前
Ubuntu设置VNC远程桌面
linux·运维·ubuntu
Protein_zmm15 小时前
第一章 计算机网络和因特网(下)
服务器·计算机网络·php
dyxal16 小时前
非对称加密:彻底解决密钥分发难题的数字安全革命
服务器·网络·安全
写代码的学渣16 小时前
Ubuntu/麒麟默认锁定root账户
linux·运维·ubuntu
刚哥的进化路17 小时前
Linux系统日志管理完全教程:从基础查看 to 集中分析(附实战命令)
运维·自动化运维
互联网小顽童17 小时前
Linux系统进阶管理教程:从基础操作到企业级运维(附实战命令)
运维·自动化运维
q***99417 小时前
IPV6公网暴露下的OPENWRT防火墙安全设置(只允许访问局域网中指定服务器指定端口其余拒绝)
服务器·安全·php
面对疾风叭!哈撒给18 小时前
Docker之 Portainer、Node-RED和EMQX安装与配置
运维·docker·容器
RisunJan18 小时前
Linux命令-exportfs命令(管理NFS服务器上共享文件系统)
linux·运维·服务器
动感小麦兜18 小时前
服务器搭建
linux·服务器·python