吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1768|回复: 1
收起左侧

[其他转载] Keepalived 设置切换告警通知

[复制链接]
1007978684 发表于 2021-8-18 13:17

Keepalived 切换告警

Keepalived本身自带了一个邮箱告警功能,不过大家貌似都不用它自带的邮件配置,原因是不适用生产环境。不过个人认为主要是无法自定义告警媒介,达不到生产环境的需要。通过查询相关资料,实现了可以通过钉钉机器人来达到告警的需求,当然同个脚本稍微的改一下也可实现邮件的告警。主要配置与脚本的编写如下👇:

  1. 首先需要编写告警脚本,并授予执行权限

    cat /etc/keepalived/notify.sh
    #!/bin/bash
    # 这是一个邮件的告警脚本
    contact='test@test.com'
    notify() {
    local mailsubject="$(hostname) to be $1, vip转移"
    local 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
    
    -----------------------------------------------------------------------------------------------------------------------------
    
    cat /etc/keepalived/notify.sh
    #!/bin/bash
    # 这是一个钉钉的告警通知
    notify() {
    local mailsubject="$(hostname) to be $1, vip转移"
    local mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1"
    #echo "$mailbody" | mail -s "$mailsubject" $contact
    curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxx' \
    -H 'Content-Type: application/json' \
    -d '{"msgtype": "text", 
       "text": {
            "content": "'"测试 ${mailsubject}\n ${mailbody}"'"
       }
     }'
    }
    
    case $1 in
    master)
           notify master
           ;;
    backup)
           notify backup
           ;;
    fault)
           notify fault
           ;;
    *)
           echo "Usage: $(basename $0) {master|backup|fault}"
           exit 1
           ;;
    esac
    
    chmod +x notify.sh

    以上两个脚本区别不大,就是将发送的媒介修改了。如果使用的其他媒介,同理修改即可。

  2. 修改配置文件

    cat /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    
    global_defs {
     router_id lvs-nginx02
    }
    vrrp_script chknginx 
    {
     script "/etc/keepalived/chknginx.sh"
     interval 2
     weight -20         
    }
    vrrp_instance nginx-ha {
     state BACKUP
     interface eth0
     virtual_router_id 100
     priority 90
     advert_int 1
     nopreempt
     authentication {
           auth_type PASS
           auth_pass 1111
     }
    virtual_ipaddress {
         172.23.36.248
      }
    track_script {
           chknginx
      }
    #主要是添加下面这些配置,这样可以在你 keepalived 产生一个切换动作的时候,运行告警脚本。
    # 配置说明依次为:
    # 定义通知脚本,当前节点成为主节点时触发的脚本
    # 定义通知脚本,当前节点转为备节点时触发的脚本
    # 
    notify_master "/etc/keepalived/notify.sh master"
    notify_backup "/etc/keepalived/notify.sh backup"
    notify_fault "/etc/keepalived/notify.sh fault"
    }
    
  3. 如果是邮件的话还需要安装一下mailx服务,并进行配置

    yum install mailx -y
    cat >> /etc/mail.rc<< EOF
    #set from=server@domainname.com    #发件箱
    #set smtp=smtp.exmail.qq.com               #smtp地址,腾讯企业邮就是这个了
    #set smtp-auth-user=server@domainname.com
    #set smtp-auth-password=vT6K1234543XdsqV   ##<--这里填的是邮箱授权码
    #set smtp-auth=login
    EOF
  4. 模拟测试

    # 重启 keepalived 服务,刚刚我们修改了 keepalived 配置还未重启,现在重启一下让它配置文件生效,重启的时候 也会有相对应的告警通知的,两台都需要操作哦
    systemctl restart keepalived.service

    image-20210723175635366

    image-20210723175754412

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

nana186 发表于 2021-8-18 14:09
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表