猫头洋 发表于 2023-8-16 09:08:03

SElinux 导致 Keepalived 检测脚本无法执行

哈喽大家好,我是咸鱼
今天我们来看一个关于 Keepalived 检测脚本无法执行的问题
一位粉丝后台私信我,说他部署的 keepalived 集群 vrrp_script 模块中的脚本执行失败了,但是手动执行这个脚本却没有任何问题

这个问题也是咸鱼第一次遇到,为了能让更多的小伙伴以后不会踩这个坑,便有了今天这篇文章
前言

在正式开始之前,我们先来简单复习一下 Keepalived 中的资源检测功能
vrrp_script 模块
在 Keepalived 中,vrrp_script 模块是用于定义和配置虚拟路由冗余协议(VRRP)的自定义脚本检查,这个模块专门用于对集群中的服务资源进行监控
与 vrrp_script 模块搭配使用的是 track_script 模块,这个模块中可以引入监控脚本、命令组合、Shell 语句来实现对服务资源的监控
track_script 通过调用 vrrp_script,可以灵活地定义需要监测的服务或资源,例如网络连接、服务状态、系统资源等
当监测到故障时,Keepalived 可以触发状态转移,将主节点切换到备用节点,以确保服务的高可用性


[*]通过 killall -l 命令监测
killall 命令会发送一个信号给进程,以信号 0 为例,如果发现进程关闭或者异常,将返回状态码 1,反之进程运行正常,状态码返回0
vrrp_script nginx_check {
        script "killall -0 nginx"
        interval 2
}

track_script {
        nginx_check
}

[*]通过端口监测
检测端口的运行状态也是较常见的监控方式
vrrp_script nginx_check {        script "
页: [1]
查看完整版本: SElinux 导致 Keepalived 检测脚本无法执行