HA_keepalived脚本配置篇(二)

定义keepalived发生地址漂移时发邮件给客户端:

host1: 172.16.52.59   node2

host2: 172.16.52.60 node3

eg1:

]# vim  /etc/keepalived/notify.sh 
#!/bin/bash
#
addressee='root@localhost'      ///定义收件人
notify(){
  subject=" `hostname` to be $1  vip floating. "
  content=" `date +%F:%H:%M:%S`   `hostname` exchange to be $1 "
  echo $content | mail -s "$subject"  $addressee

}

case $1  in 
master)
notify master
exit 0
;;


backup)
notify backup
exit 0
;;

fault)
notify default
exit 0
;;

*)
;;

esac

///自定义脚本,实现若主机发生了地址漂移,则将发送提示的邮件信息给该主机,注意事项,一定要给予脚本可执行的权限,不然会收不到邮件,执行命令

~] chmod +x /etc/keepalived/notify.sh


host1:

]# cat keepalived.conf
! Configuration File for keepalived


global_defs {
   notification_email {
root@localhost
   }
   notification_email_from ka@localhost 
   smtp_server 127.0.0.1 
   smtp_connect_timeout 30
   router_id node2 
}


vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 3 
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass vHvJ7g 
    }
    virtual_ipaddress {
       172.16.52.12
    }


    notify_master "/etc/keepalived/notify.sh master"
    notify_backup  "/etc/keepalived/notify.sh backup"
    notify_default  "/etc/keepalived/notify.sh default"
}

 /// 配置node2


host2:

]# cat keepalived.conf
! Configuration File for keepalived


global_defs {
   notification_email {
root@localhost
   }
   notification_email_from ka@localhost 
   smtp_server 127.0.0.1 
   smtp_connect_timeout 30
   router_id node3 
}


vrrp_instance VI_1 {
    state BACKUP
    interface eno16777736
    virtual_router_id 3 
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass vHvJ7g 
    }
   
    virtual_ipaddress {
       172.16.52.12
    }
    notify_master "/etc/keepalived/notify.sh master"
    notify_backup  "/etc/keepalived/notify.sh backup"
    notify_default  "/etc/keepalived/notify.sh default"


}

///配置node3


测试

各主机重启服务后,使用mail命令直接查看:

~]# mail   

接着按回车,就可以看到更多的内容,使用q退出



总结:这种定义脚本生效的方式必须得重启keepalived服务,不太方便,尝试另外一种机制track。



eg2:

host1:

]# cat keepalived.conf
! Configuration File for keepalived


global_defs {
   notification_email {
root@localhost
   }
   notification_email_from ka@localhost 
   smtp_server 127.0.0.1 
   smtp_connect_timeout 30
   router_id node2 
}


vrrp_script scape {
script "[[ -f /etc/keepalived/dead ]] && exit 1 || exit 0"
interval 1
weight  -3

}


vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 3 
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass vHvJ7g 
    }
    virtual_ipaddress {
       172.16.52.12
    }
    track_script {
scape
}

}

/// vrrp_script在vrrp_instance之外定义,而track_script则在内部定义,并且interval指的是通告的间隔时长,weight指的是对权重减去3,记得重启脚本。。。 


host2:

]# cat keepalived.conf
! Configuration File for keepalived


global_defs {
   notification_email {
root@localhost
   }
   notification_email_from ka@localhost 
   smtp_server 127.0.0.1 
   smtp_connect_timeout 30
   router_id node3 
}


vrrp_script scape {
script "[[ -f /etc/keepalived/dead ]] && exit 1 || exit 0"
interval 1
weight -3

}


vrrp_instance VI_1 {
    state BACKUP
    interface eno16777736
    virtual_router_id 3 
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass vHvJ7g 
    }
   
    virtual_ipaddress {
       172.16.52.12
    }
   
    track_script{
scape
}

}


测试:

务必重启服务使得配置文件生效,是在stop不掉,就pkill keepalived进程,touch /etc/keepalived/dead文件,用ip addr list 查看,


eg3:

host1:

]# cat keepalived.conf
! Configuration File for keepalived


global_defs {
   notification_email {
root@localhost
   }
   notification_email_from ka@localhost 
   smtp_server 127.0.0.1 
   smtp_connect_timeout 30
   router_id node2 
}


vrrp_script search_nginx{
script "killall -0 nginx"
interval 1
weight -5
}


vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 3 
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass vHvJ7g 
    }
    virtual_ipaddress {
       172.16.52.12
    }
    track_script {

search_nginx
}

}



host2:

]# cat keepalived.conf
! Configuration File for keepalived


global_defs {
   notification_email {
root@localhost
   }
   notification_email_from ka@localhost 
   smtp_server 127.0.0.1 
   smtp_connect_timeout 30
   router_id node3 
}


vrrp_script search_nginx{
        script "killall -0 nginx"
        interval 1
        weight -5
}


vrrp_instance VI_1 {
    state BACKUP
    interface eno16777736
    virtual_router_id 3 
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass vHvJ7g 
    }
   
    virtual_ipaddress {
       172.16.52.12
    }
   
    track_script{
search_nginx
}
}


测试:分别在两个主机上面安装nginx服务,并分别在根目录下写一个能够区别主机的html文档,启动nginx服务,接着重启keepalived服务后,host1停掉nginx服务,用浏览器访问  172.16.52.12  可以看到结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值