keepalived踩坑记录

环境

操作系统: CentOS7.9

keepalived: 1.35

master配置

bash 复制代码
cat > /etc/keepalived/keepalived.conf<<'EOF'
global_defs {
    router_id Nginx1
}
vrrp_script chk_nginx {
    script "/etc/keepalived/check_nginx.sh"
    interval 3
    weight -3
}
vrrp_instance VI_1 {
    state MASTER
    interface enp0s8 
    virtual_router_id 101
    priority 120
    advert_int 2
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 12333
    }
    virtual_ipaddress {
        192.168.240.6
    }
    track_script {
      chk_nginx 
    }
}

EOF
bash 复制代码
cat > /etc/keepalived/check_nginx.sh<<'EOF'
B=$(pgrep nginx | wc -l)
if [[ $B -eq 0 ]]; then
    /usr/bin/systemctl stop keepalived
    exit 1
fi
exit 0

EOF

backup配置

bash 复制代码
cat > /etc/keepalived/keepalived.conf<<'EOF'
global_defs {
    router_id Nginx2
}
vrrp_script chk_nginx {
    script "/etc/keepalived/check_nginx.sh"
    interval 3
    weight -3
}
vrrp_instance VI_1 {
    state BACKUP
    interface enp0s8 
    virtual_router_id 101
    priority 119
    advert_int 2
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 12333
    }
    virtual_ipaddress {
        192.168.240.6
    }
    track_script {
      chk_nginx
    }
}

EOF
bash 复制代码
cat > /etc/keepalived/check_nginx.sh<<'EOF'
B=$(pgrep nginx | wc -l)
if [[ $B -eq 0 ]]; then
    /usr/bin/systemctl stop keepalived
    exit 1
fi
exit 0

EOF

说明

坑点

  1. 检测脚本/etc/keepalived/check_nginx.sh第一行一定不要写#!/bin/bash
  2. 检测脚本/etc/keepalived/check_nginx.sh的退出状态码不起作用,所以只能/usr/bin/systemctl stop keepalived

排错参考文档

【Linux】详解shell中source、sh、bash、./执行脚本的区别

相关推荐
toooooop81 分钟前
wsl系统无损迁移到ssd硬盘
linux·wsl
ShineSpark3 分钟前
Ubuntu下SDL窗口偶发卡住问题深度分析
linux·运维·ubuntu
zhougl9966 分钟前
非root用户,链接ssh,并上传git
运维·git·ssh
tobias.b6 分钟前
Centos Linux 维护
linux·python·centos
深邃-7 分钟前
【Web安全】-Kali,Linux基础:Linux终端介绍,Linux文件操作,Linux文件编辑(2)
linux·计算机网络·安全·web安全·网络安全·系统安全·安全威胁分析
@小博的博客7 分钟前
【Linux探索学习】进程的概念及详细解释和一些简单的相关操作
linux·运维·学习
Hugh-Yu-13012316 分钟前
WSL --Ubuntu-24.04-LTS子系统安装教程
linux·windows·ubuntu
HalvmånEver20 分钟前
MySQL数据库表(table)操作
linux·数据库·学习·mysql
月光下的麦克21 分钟前
Ubuntu 与 Windows 之间文件互传
linux·运维·ubuntu
爱学习的小囧23 分钟前
ESXi 升级 8.0 后 Realtek 网卡无法识别解决教程
运维·网络·esxi·realtek 网卡