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 等),把主/子配置模板化生成并分发。
相关推荐
i建模7 小时前
在 Rocky Linux 上安装轻量级的 XFCE 桌面
linux·运维·服务器
ruxshui7 小时前
个人笔记: 星环Inceptor/hive普通分区表与范围分区表核心技术总结
hive·hadoop·笔记
FIT2CLOUD飞致云7 小时前
赛道第一!1Panel成功入选Gitee 2025年度开源项目
服务器·ai·开源·1panel
慾玄7 小时前
渗透笔记总结
笔记
yanlou2337 小时前
[C++/Linux HTTP项目] HTTP服务器基于muduo高性能服务器搭载【深入详解】
运维·服务器·http·muduo库·http高性能服务器
CS创新实验室8 小时前
关于 Moltbot 的学习总结笔记
笔记·学习·clawdbot·molbot
天空属于哈夫克38 小时前
企微第三方 RPA API:非官方接口与官方接口的差异解析及选型建议
运维·服务器
niceffking8 小时前
linux 信号内核模型
linux·运维·服务器
残梦53148 小时前
Qt6.9.1起一个图片服务器(支持前端跨域请求,不支持上传,可扩展)
运维·服务器·开发语言·c++·qt
醒过来摸鱼8 小时前
Redis 服务器线程与事件循环解析
服务器·数据库·redis