keepalived 郵件通知

keepalived 郵件通知

郵件通知需要先定義一個郵件發送的腳本,然後在虛擬IP的配置實例中添加相應的觸發機制來實現當keepalived主備發生變化時進行發送郵件,以通知運維人員的目的。

實現方法

準備主機兩臺

server hostname ip
keepalived s1 172.20.27.10
keepalived s2 172.20.27.11

S1 節點操作

1.安裝mailx

[root@s1 ~]# yum install mailx -y

2.設置發件人的配置

[root@s1 ~]# vim /etc/mail.rc
set [email protected]  
set smtp=smtp.qq.com 
set [email protected]  
set smtp-auth-password=ugfwthlnfossbiif
set smtp-auth=login
set ssl-verify=ignore

3.編寫郵件通知腳本

[root@s1 ~]# vim /etc/keepalived/notify.sh 
#!/bin/bash
contact='[email protected]'
notify() {
    mailsubject="$(hostname) to be $1, vip轉移"
    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

4.在配置文件中調用腳本

[root@s1 ~]# vim /etc/keepalived/keepalived.conf 

        [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id s1.mylinuxops.com
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_iptables
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 27
    priority 100
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    unicast_src_ip 172.20.27.10
    unicast_peer {
    172.20.27.11
    }
    virtual_ipaddress {
        172.20.27.100 dev ens33 label ens33:0
    }
    #以下三行爲調用通知腳本
    notify_master "/etc/keepalived/notify.sh master"   
    #當前節點成爲主節點時觸發的腳本 
    notify_backup "/etc/keepalived/notify.sh backup"
    #當前節點轉爲備節點時觸發的腳本
    notify_fault "/etc/keepalived/notify.sh fault"
    #當前節點轉爲失敗狀態時觸發的腳本
}

重啓服務

[root@s1 ~]# systemctl restart keepalived

s1節點配置完畢後,s2節點也執行相同的操作。

測試

當s1節點停止服務後,s2節點而發送郵件通知
keepalived 郵件通知

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章