脚本调用不成功,日志一直提示:
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用于用于追踪脚本。
原文:https://blog.51cto.com/sugarlovecxq/2524291