12.3.5 基础功能验证与日志检查

本节目标是完成 Keepalived 基础功能验证,确认 VRRP 通告、VIP 漂移与日志记录正常,为后续主备切换与健康检查打下基础。

一、原理草图(VRRP 通告与 VIP 漂移)

文章图片

二、基础验证准备
- 假设主备两台:nodeA(MASTER)、nodeB(BACKUP)
- VIP 示例:192.168.10.100/24
- Keepalived 已启动并启用自启动

三、服务状态与进程检查(示例与解释)

# 1) 查看服务状态
systemctl status keepalived
# 预期:active (running)

# 2) 查看进程及参数
ps -ef | grep keepalived | grep -v grep
# 预期:包含 keepalived 主进程与 vrrp 子进程

# 3) 抓取 VRRP 通告(协议号 112)
tcpdump -i eth0 vrrp -nn
# 说明:看到 IP proto 112 报文表示通告正常

四、VIP 绑定验证(示例与解释)

# 在 MASTER 上检查 VIP 是否绑定
ip a | grep 192.168.10.100
# 预期:有 192.168.10.100/24

# 在 BACKUP 上检查 VIP 不应存在
ip a | grep 192.168.10.100
# 预期:无输出

# 更清晰的查看方式
ip -4 addr show dev eth0

五、基础连通性验证

# 从第三方主机 ping VIP
ping -c 4 192.168.10.100

# 在 MASTER 上抓包验证 VIP 被访问
tcpdump -i eth0 host 192.168.10.100 -nn
# 预期:看到 ICMP 或 TCP 访问 VIP 的流量

六、日志检查与定位(示例与关键日志)

# systemd 日志
journalctl -u keepalived -f

# 常见日志文件(按系统选择)
tail -f /var/log/messages
tail -f /var/log/syslog

关键日志特征(示例):
- 角色切换:Entering MASTER STATE / Entering BACKUP STATE
- VRRP 通告:VRRP_Instance(VI_1) Sending gratuitous ARP
- 绑定 VIP:Netlink reflector reports IP 192.168.10.100 added
- 权重与优先级:priorityadvert_int

七、基础故障模拟(手动验证漂移)

# 1) 停止 MASTER 的 keepalived
systemctl stop keepalived

# 2) 在 BACKUP 上验证 VIP 是否漂移
ip a | grep 192.168.10.100
# 预期:VIP 出现在 BACKUP

# 3) 恢复 MASTER
systemctl start keepalived

# 4) 再次验证 VIP 归属(按优先级回切)
ip a | grep 192.168.10.100

八、常见日志异常与排错示例

# 1) 配置语法错误
# 日志:error parsing configuration file
# 处理:检查 /etc/keepalived/keepalived.conf 是否有缺失括号、关键字拼写
keepalived -t -f /etc/keepalived/keepalived.conf

# 2) VRID 冲突
# 日志:Duplicate VRID
# 处理:确保同一网段的 VRRP 实例 VRID 唯一

# 3) VIP 绑定失败
# 日志:Unable to assign requested address
# 处理:检查网卡名称是否一致、VIP 是否在同网段
ip link
ip route

九、关键命令解释表(速查)
- systemctl status keepalived:检查服务是否运行
- tcpdump -i eth0 vrrp -nn:抓取 VRRP 通告报文
- ip a / ip -4 addr:查看 VIP 绑定情况
- journalctl -u keepalived -f:实时查看服务日志
- keepalived -t -f <conf>:配置语法检查

十、练习(动手验证)
1. 在 nodeA/nodeB 运行 tcpdump -i eth0 vrrp -nn,记录通告间隔与源地址。
2. 手动停止 nodeA 的 keepalived,验证 nodeB 获取 VIP,并用 pingtcpdump 证明业务流量切换。
3. 故意将 nodeBVRID 修改为与 nodeA 相同,观察日志并修复冲突。
4. 使用 keepalived -t -f 进行语法检查,记录错误提示与修正过程。

十一、验收标准
- MASTER 上 VIP 绑定正常、BACKUP 无 VIP
- VRRP 通告可抓到,日志无报错
- 停止 MASTER 后,VIP 可漂移到 BACKUP
- 恢复 MASTER 后,VIP 按配置优先级回切