keepalived通过vrrp_script调用自定义cpu检测脚本实现负载过高时自动降权切换:编写check_cpu.sh脚本读取1分钟平均负载并与阈值比较,返回0/1退出码;在keepalived.conf中配置vrrp_script设置interval、weight(如-30)、fall/rise,并在vrrp_instance中track_script引用;主节点降权后优先级低于备节点即触发vip漂移。

Keepalived 本身不直接监控 CPU 负载,但它支持通过自定义脚本(vrrp_script)触发权重调整或状态切换。要实现“CPU 负载过高时自动降级、让备机接管 VIP”,关键在于:用外部脚本检测 CPU 使用率,并将结果反馈给 Keepalived 的 VRRP 实例。
下面给出可落地的配置逻辑和实操步骤:
一、编写 CPU 负载检测脚本
在两台节点上统一创建检测脚本,例如 `/etc/keepalived/check_cpu.sh`:```bash #!/bin/bash # 检查过去1分钟平均负载是否超过阈值(如 8 核机器设为 6.0) LOAD=$(uptime | awk -F'average:' '{print $2}' | awk '{print $1}' | sed 's/,//') THRESHOLD=6.0
if (( $(echo "$LOAD > $THRESHOLD" | bc -l) )); then echo "CPU load high: $LOAD" exit 1 # Keepalived 视为失败 else echo "CPU load OK: $LOAD" exit 0 # Keepalived 视为健康 fi
相关标签:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn










