美文网首页
keepalived用脚本实现切换

keepalived用脚本实现切换

作者: 阿当运维 | 来源:发表于2020-08-31 11:26 被阅读0次

思路:

平时做好了keepalived单主或者双住架构后,我们在测试的时候经常需要手动去停止keepalived服务或者网卡服务。假设线上nginx挂了,如何实现自动停止keepalived服务,实现VIP飘逸呢? 软件配置文件可以加入脚本功能来检测。

加入脚本检测nginx是否存活?

我们首先要知道可以通过向进程发送信号0,然后根据返回值来判断一个进程是否存在。比如进程名字为A,那么
killall -0 A
echo $?
结果为0就表示进程A存在(成功杀掉,但只是模拟信号,不影响服务的真正运行),否则表示不存在。
脚本内容为

#!/bin/bash
#check_nginx 
killall -0 nginx
if [[ $? -ne 0 ]];then
    systemctl stop keepalived
fi

配置文件中定义脚本位置并引入

! Configuration File for keepalived 
global_defs { 
  notification_email { 
     tianye@lzad.cc
 } 
    notification_email_from tianye@lzad.cc
    smtp_server 127.0.0.1 
    smtp_connect_timeout 30 
    router_id LVS_DEVEL 
 } 
#脚本定义
vrrp_script chk_nginx { 
   script  "/etc/keepalived/sh/check_nginx.sh" #脚本路径位置
   interval 2        #检测间隔时间2S
   weight 2           #权重
} 

#VIP1 192.168.1.188
vrrp_instance VI_1 { 
     state MASTER 
     interface ens33 
     lvs_sync_daemon_inteface ens33 
     virtual_router_id 151 
     priority 100 
     advert_int 5 
     #nopreempt 
     authentication { 
         auth_type  PASS 
         auth_pass  1111 
     } 
     virtual_ipaddress { 
         192.168.1.188 
     } 
#脚本引用
     track_script { 
           chk_nginx 
    } 
}

实现效果:当主机的nginx挂掉后,脚本检测到了,然后停止本机的keepalived服务,组播环境收不到master的信号,重新在backup选举,从而实现VIP漂移。实现高可用

相关文章

网友评论

      本文标题:keepalived用脚本实现切换

      本文链接:https://www.haomeiwen.com/subject/mialsktx.html