You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.4 KiB
2.4 KiB
KEEPALIVED 安装
准备机器
# 主机1 IP
192.168.127.11
# 主机2 IP
192.168.127.12
安装
# 安装
yum install -y keepalived
配置主机 1
# 编辑配置文件
cat > /etc/keepalived/keepalived.conf <<'EOF'
global_defs {
router_id lb_keepalived_11
}
vrrp_instance lb_keepalived {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.127.10
}
}
EOF
配置主机 2
cat > /etc/keepalived/keepalived.conf <<'EOF'
global_defs {
router_id lb_keepalived_12
}
vrrp_instance lb_keepalived {
state BACKUP
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.127.10
}
}
EOF
服务管理
启动服务
systemctl start keepalived
关闭服务
systemctl stop keepalived
开机启动
systemctl enable keepalived
查看状态
运行状态
systemctl status keepalived
# 显示如下内容代表启动成功
# Active: active (running)
查看 IP
# 分别查看两台机器 IP
# 当前主节点会多一个虚拟 IP 地址
# 虚拟 IP : 192.168.127.10
ip a
访问地址
# 其他机器访问虚拟 IP
ping 192.168.127.10 -t
检查
主节点关机
init 0
访问地址
ping 192.168.127.10 -t
备份节点 虚拟IP
ip a
扩展
Keepalived 通过检测进程来判断是否存活, 可通过编写 shell 来检测任何需要检测的东西。
本机 nginx 心跳检测
创建目录
mkdir -p /usr/local/keepalived/logs
创建脚本
tee /usr/local/keepalived/monitor.sh <<-'EOF'
#!/bin/sh
curl -I 127.0.0.1 >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "stop keepalived" at "$(date +"%Y-%m-%d %H:%M:%S")"
systemctl stop keepalived
fi
EOF
添加权限
chmod +x /usr/local/keepalived/monitor.sh
关闭邮件
sed -i s/MAILTO=root/MAILTO=/ /etc/crontab
添加定时任务
crontab -e
* * * * * /usr/local/keepalived/monitor.sh >> /usr/local/keepalived/logs/monitor.log
重启定时任务
systemctl restart crond
查看定时任务
crontab -l
查看监控日志
tail -f -n 10 /usr/local/keepalived/logs/monitor.log