码迷,mamicode.com
首页 > 其他好文 > 详细

keepalived中脚本不执行的问题

时间:2020-08-29 16:40:06      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:router   code   config   追踪   不执行   use   def   调用   interval   

在配置keepalived+nginx环境时,遇到了一个极其caodan的问题,那就是keepalived不执行配置的监控脚本,在网上找了一圈,浪费了我好几个小时。
现在把解决方法记录在此,希望能帮到踩坑的你。

脚本调用不成功,日志一直提示:
Keepalived_vrrp[13096]: Warning - script chk_nginx is not used

主配置文件:

! Configuration File for keepalived

global_defs {
     router_id keepalived_mjt
     script_user root
     enable_script_security
}

vrrp_script chk_nginx
{
    script /etc/keepalived/chk_ngx.sh
    interval 3
    weight -20
    fall 3
    rise 2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.216.200
    }
    track_script{
        chk_nginx
    }
}

备配置文件:

! Configuration File for keepalived

global_defs {
   router_id keepalived_cxq
   script_user root
   enable_script_security

}

vrrp_script chk_nginx {
    script /etc/keepalived/chk_ngx.sh
    interval 3
    weight -20
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.216.200
    }
    track_script{
        chk_nginx
    }
}

监控脚本:

#!/bin/sh
counter=$(ps -C nginx --no-heading|wc -l)
echo "$counter"
if [ "${counter}" = "0" ]; then
      /usr/sbin/nginx -c /etc/nginx/nginx.conf
      sleep 2
      counter=$(ps -C nginx --no-heading|wc -l)
      if [ "${counter}" = "0" ]; then
          /etc/init.d/keepalived stop
      fi
fi

发现脚本没有执行时,进行以下检查:
1、检查配置文件中的脚本路径是否正确
2、检查脚本是否有可执行权限
3、手动测试脚本是否能正常执行

以上几个我检查过了没有任何问题,还注意到网上说脚本空格什么的,都检查了一遍,甚至手写了一遍脚本,还是提示脚本is not used。
最后在vrrp_instance VI_1模块中加上了

track_script{
        chk_nginx
    }

重启之后正常,成千上万个羊驼奔腾而过。。。。
track_script用于用于追踪脚本。

keepalived中脚本不执行的问题

标签:router   code   config   追踪   不执行   use   def   调用   interval   

原文地址:https://blog.51cto.com/sugarlovecxq/2524291

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!