keepalived 监控脚本不执行 是不是一个bug

2025-06-26 13:51:33
推荐回答(4个)
回答1:

在keepalived.conf中的vrrp_script配置相信你已经配置完成了,但是在日志中看到执行情况始终是类似如下的情况:

chk_nginx no match, ignoring...

翻译过来是“chk_nginx没有匹配,忽略…”

但是脚本什么的怎么检查都是正确的,单独运行可以生效,exit 0和exit 1都设置了。

这时候我的做法是换了一台服务器用同样的脚本做测试,结果发现脚本运行正常。

具体是什么原因我一直没有检查出来。

回答2:

顿悟后来回答,我2024年11月
版本:Keepalived v1.3.5 (03/19,2017), git commit v1.3.5-6-g6fa32f2)
操作系统版本:Centos7.9
出现这个问题的原因是你的 vrrp_script必须要在vrrp_instance前声明,否则vrrp_instance模块里的track_script模块不知道你怎么定义脚本的。

回答3:

你试试把vrrp_script声明在vrrp_instance前面,并且vrrp_script后面的“{”前面换行,反正我是这么操作一下就好使了。。。简直诡异

回答4:

检查 vrrp_script 和 track_script 两个字段里的名字是不是一样(这里是chk_nginx)

vrrp_script chk_nginx {
        .....
    script "/xxx/chk_nginx.sh"
}

vrrp_instance VI_1{
        .....
    track_script {
        chk_nginx
    }
}