Keepalived —— 子配置文件设定 笔记

Keepalived ------ 子配置文件设定 笔记

背景与目的

当 keepalived 的配置项增多时,全部写在 /etc/keepalived/keepalived.conf 会让主配置变得冗长、难以维护。通过在主配置中使用 include 指令加载子配置文件,可以把每个 VRRP 实例或不同功能分离到独立文件,提升可读性与可维护性。


总体思路

  • 把全局设置(global_defs)放在主配置文件 /etc/keepalived/keepalived.conf
  • 在主配置中使用 include /etc/keepalived/conf.d/*.conf 指定一个目录来放置子配置文件。
  • 每个 VRRP 实例写成一个独立的子文件,例如 /etc/keepalived/conf.d/webvip.conf
  • 使用 keepalived -t -f /etc/keepalived/keepalived.conf 测试语法,确认无误后重启服务。

主配置示例(/etc/keepalived/keepalived.conf)

text 复制代码
! Configuration File for keepalived

global_defs {
   notification_email {
     timinglee_zln@163.com
   }
   notification_email_from timinglee_zln@163.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id KA1
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 1
   vrrp_gna_interval 1
   vrrp_mcast_group4 224.0.0.44
}

include /etc/keepalived/conf.d/*.conf

说明:

  • global_defs 放全局参数(邮件、router_id、GRAT ARP 等)。
  • vrrp_skip_check_adv_addrvrrp_garp_intervalvrrp_gna_interval 等可根据网络环境调整。
  • include 行会加载 conf.d 目录下所有 .conf 文件��顺序按文件名排序。

创建目录并写入子配置:

bash 复制代码
mkdir -p /etc/keepalived/conf.d
vim /etc/keepalived/conf.d/webvip.conf   # 写入上面示例

子配置示例(/etc/keepalived/conf.d/webvip.conf)

text 复制代码
vrrp_instance WEB_VIP {
    state MASTER               # MASTER 或 BACKUP(在备节点改为 BACKUP)
    interface eth0
    virtual_router_id 51
    priority 100               # MASTER 大于 BACKUP(例如 100 vs 80)
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:0
    }
}

要点说明:

  • state:在主节点写 MASTER,备节点写 BACKUP
  • virtual_router_id:同一 VIP 的所有节点必须一致;不同 VIP 需不同 ID。
  • priority:数字越大越优先成为 MASTER。
  • authentication:保证所有参与节点的 auth_pass 一致。
  • virtual_ipaddress:可以直接写 172.25.254.100/24 或带 dev/label 指定别名方式,根据系统兼容性选择。
  1. 测试配置语法:
bash 复制代码
keepalived -t -f /etc/keepalived/keepalived.conf
  1. 重启服务:
bash 复制代码
systemctl restart keepalived.service
  1. 查看接口确认 VIP 已添加:
bash 复制代码
ip addr show eth0
# 或 ifconfig

常见问题与排障建议

  • VIP 未出现或无法漂移:
    • keepalived -t 检查配置语法。
    • 查看 keepalived 日志:tail -f /var/log/keepalived.logjournalctl -u keepalived -f
    • 确认 interface 名称正确(虚拟化环境接口名可能不是 eth0)。
    • 检查是否有 NetworkManager 或 cloud-init 等管理网络,可能覆盖别名或二级地址。
    • 多播/组播被宿主或虚拟网络阻断会导致 VRRP 报文不可见或不通。
    • auth_pass、virtual_router_id、priority 等参数不匹配会导致选举失败。
  • 子配置未生效:
    • 确认 include 路径正确,文件名后缀匹配(示例 *.conf)。
    • 检查子文件权限(keepalived 进程应能读取)。
    • 修改后需重启 keepalived 才能生效(或向 keepalived 发送 reload,由发行版支持与否决定)。
  • 多个实例管理:
    • 每个实例用单独文件,文件名建议以实例名或功能命名(便于排序与查找)。
    • 当有多个 VIP 或不同服务时,可在 conf.d 中分别维护 webvip.conf、dbvip.conf 等。

进阶建议

  • conf.d 目录纳入版本控制(git)以便变更追踪与审核。
  • 为子配置建立命名规范与注释(创建时间、负责人、用途)。
  • 在变更前在测试环境跑 keepalived -t 并做故障演练(停掉 MASTER 查看 BACKUP 是否接管)。
  • 若有自动化部署(Ansible、Salt 等),把主/子配置模板化生成并分发。

、负责人、用途)。

  • 在变更前在测试环境跑 keepalived -t 并做故障演练(停掉 MASTER 查看 BACKUP 是否接管)。
  • 若有自动化部署(Ansible、Salt 等),把主/子配置模板化生成并分发。
相关推荐
FakeOccupational29 分钟前
【电路笔记 通信】香农公式(Shannon-Hartley Theorem/香农-哈特利定理)证明(暂记)
笔记
闲人编程2 小时前
任务监控与错误重试
linux·服务器·网络·celery·任务队列·任务监控·错误重试
攒了一袋星辰2 小时前
JVM类加载过程
运维·服务器·jvm
winfreedoms2 小时前
Puppypi——树莓派5主板学习笔记
笔记·学习
蒸蒸yyyyzwd3 小时前
cpp八股学习笔记
笔记·学习
嘎嘎NULL3 小时前
Gitea配置邮箱
运维·服务器·gitea
funnycoffee1234 小时前
Linux查看版本号命令cat /etc/os-release
linux·服务器
枷锁—sha4 小时前
【CTFshow-pwn系列】03_栈溢出【pwn 050】详解:动态链接下的 mprotect 与 ROP 链艺术
网络·笔记·安全·网络安全
Yeh2020585 小时前
2月20日笔记
笔记
myloveasuka5 小时前
定点运算---加减法运算
笔记·计算机组成原理