• keepalive实现通知脚本 Alex


      keepalive定义浮动IP地址  

      keepalive实现通知脚本  

    定义通知脚本:
      notify_master <STRING>|<QUOTED-STRING>:
        当前节点成为主节点时触发的脚本
      notify_backup <STRING>|<QUOTED-STRING>:
        当前节点转为备节点时触发的脚本
      notify_fault <STRING>|<QUOTED-STRING>:
        当前节点转为“失败”状态时触发的脚本
      notify <STRING>|<QUOTED-STRING>:
        通用格式的通知触发机制,一个脚本可完成以上三种状态的转换时的通知

      一、编写通知脚本

    vim /etc/keepalived/notify.sh

    存放位置,脚本名自定义

    示例脚本如下:

    #!/bin/bash
    #

      rpm -qi mail &>/dev/null || yum install mailx -y &>/dev/null

    contact='root@localhost'
    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

      二、添加执行权限

    chmod +x /etc/keepalived/notify.sh 

      三、将这个脚本拷贝到其他keepalive服务器上

    scp /etc/keepalived/notify.sh 192.168.1.8:/etc/keepalived/notify.sh

      四、测试脚本

    bash notify.sh backup

      五、查看是否有收到邮件

        2 root                  Wed May 26 01:39  19/678   "ka1 to be backup, vip floating"
    & 2
    Message  2:
    From root@ka1.localdomain  Wed May 26 01:39:38 2021
    Return-Path: <root@ka1.localdomain>
    X-Original-To: root@localhost
    Delivered-To: root@localhost.localdomain
    Date: Wed, 26 May 2021 01:39:38 -0400
    To: root@localhost.localdomain
    Subject: ka1 to be backup, vip floating
    User-Agent: Heirloom mailx 12.5 7/5/10
    Content-Type: text/plain; charset=us-ascii
    From: root@ka1.localdomain (root)
    Status: RO
    
    2021-05-26 01:39:38: vrrp transition, ka1 changed to be backup
    
    & 

      六、在配置文件中添加脚本

    vim /etc/keepalived/keepalived.conf

      1、在实例的最下面添加三行

         notify_master "/etc/keepalived/notify.sh master"
            notify_backup "/etc/keepalived/notify.sh backup"
            notify_fault "/etc/keepalived/notify.sh fault"

       解释:

      notify_master "/etc/keepalived/notify.sh master"

    master时触发notify.sh master

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

    backup的时候触发notify.sh backup

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

    fault (有故障)的时候触发fault

      七、测试

      1、查看主服务器的邮件

    [02:20:29 root@ka1 keepalived]#mail
    Heirloom Mail version 12.5 7/5/10.  Type ? for help.
    "/var/spool/mail/root": 3 messages
    >   1 root                  Wed May 26 01:33  19/678   "ka1 to be master, vip floating"
        2 root                  Wed May 26 01:39  19/678   "ka1 to be backup, vip floating"
        3 root                  Wed May 26 02:17  19/678   "ka1 to be master, vip floating"
    & 

      2、我这邮件太多了,为了看的清楚,就清空现有的邮件

    rm -rf /var/spool/mail/root 

      3、直接杀掉keepalived进程

    killall -9 keepalived

      4、查看从服务器的邮件,这时候从服务器已经获取了IP地址了,

    但测试下来发现,直接杀死进程,所有服务器都没有收到邮件,停止服务可以收到邮件





  • 相关阅读:
    zookeeper单机环境搭建
    js中获取url?后面的参数值
    【转】java 、javaw、javaws命令的区别
    【转】解决 linux和widows双系统时差8个小时问题
    IntrospectorCleanupListener作用
    Linux 网络相关命令
    SAS:提取数据集观测,宏参数
    sas share
    SAS:多个LOG的批量查询
    SAS:日期,字符数值转换
  • 原文地址:https://www.cnblogs.com/alexlv/p/14813024.html
Copyright © 2020-2023  润新知