Keepalived配置方法
Keepalived 配置方法 #
一、VRRP Script 检测脚本配置 #
1. 基础配置 #
vrrp_script check_service {
script "/usr/local/bin/check_service.sh" # 检测脚本路径(必填)
interval 3 # 检测间隔,单位:秒
timeout 2 # 脚本超时时间,单位:秒
weight -20 # 权重变化值,负数表示失败时降低优先级
fall 2 # 连续失败次数,达到此值转为DOWN状态
rise 1 # 连续成功次数,达到此值转为UP状态
}
vrrp_instance VI_1 {
state MASTER # 实例状态:MASTER(主)或 BACKUP(备)
interface eth0 # 绑定VIP的网卡接口名称
virtual_router_id 51 # 虚拟路由ID,同一组Keepalived必须相同(0-255)
priority 100 # 优先级,MASTER应高于BACKUP(1-255)
advert_int 1 # VRRP广告间隔,单位:秒
# 引用检测脚本
track_script {
check_service weight -20 # 执行检测脚本,weight表示权重变化值
}
# 虚拟IP(VIP)配置
virtual_ipaddress {
192.168.1.100 # VIP地址,可配置多个
}
}
二、检测脚本示例 #
#!/bin/bash
# 检测服务状态的脚本
# 返回 0 表示成功,服务正常
# 返回 非0 表示失败,服务异常
SERVICE_NAME="nginx"
# 方法1:使用systemctl检查服务状态
if systemctl is-active --quiet "$SERVICE_NAME"; then
exit 0
else
exit 1
fi
# 方法2:检查端口是否监听(以80端口为例)
# nc -z 127.0.0.1 80 || exit 1
# 方法3:检查进程是否存在(以nginx为例)
# pgrep -x nginx > /dev/null || exit 1
# 方法4:HTTP健康检查(适用于Web服务)
# curl -sf http://127.0.0.1/health > /dev/null || exit 1
脚本权限设置:
...