在CentOS系统上部署高可用性集群时,Heartbeat是一个经典且可靠的工具,它通过监控节点状态和自动故障转移来保障服务连续性,虽然通过包管理器安装Heartbeat更为便捷,但源码安装能提供更高的灵活性和对底层机制的理解,本文将逐步指导您完成Heartbeat的源码安装过程,并分享一些实用建议。

环境准备与依赖安装
确保系统为CentOS 7或8,并已配置好网络和sudo权限,源码编译需要开发工具和库文件支持,打开终端,执行以下命令安装基础依赖:
sudo yum groupinstall -y "Development Tools" sudo yum install -y wget automake autoconf libtool net-snmp-devel
这些软件包提供了编译环境及Heartbeat所需的网络和SNMP支持,如果系统缺少依赖,编译过程可能报错,建议提前验证版本兼容性。
下载与解压源码
访问Heartbeat官方仓库或稳定版本页面,获取源码包,这里以Heartbeat 3.0为例:
wget https://github.com/ClusterLabs/heartbeat/archive/3.0.6.tar.gz tar -xzvf 3.0.6.tar.gz cd heartbeat-3.0.6
解压后进入目录,检查文件完整性,源码安装允许您自定义功能模块,例如禁用不必要的插件以提升性能。
编译配置与安装
运行自动生成脚本并配置编译选项:
./bootstrap ./configure --prefix=/usr/local/heartbeat --sysconfdir=/etc/heartbeat
--prefix指定安装路径,--sysconfdir设置配置目录,若需启用调试模式,可添加--enable-debug选项,配置完成后,编译并安装:

make sudo make install
此过程可能耗时数分钟,取决于系统性能,编译成功后,Heartbeat的可执行文件将置于/usr/local/heartbeat/sbin/下。
配置Heartbeat服务
创建配置目录并复制示例文件:
sudo mkdir -p /etc/heartbeat sudo cp doc/ha.cf /etc/heartbeat/ sudo cp doc/haresources /etc/heartbeat/
编辑/etc/heartbeat/ha.cf,定义节点参数:
logfile /var/log/heartbeat.log keepalive 2 deadtime 30 udpport 694 auto_failback on node node1 node node2
根据实际节点名称修改node行,随后配置资源文件/etc/heartbeat/haresources,指定虚拟IP和服务:
node1 192.168.1.100 httpd
此例表示节点1管理虚拟IP 192.168.1.100并启动httpd服务。
系统集成与权限设置
为方便管理,创建系统服务文件,在/usr/lib/systemd/system/heartbeat.service中添加:

[Unit] Description=Heartbeat High Availability After=network.target [Service] Type=simple ExecStart=/usr/local/heartbeat/sbin/heartbeat -F ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
执行sudo systemctl daemon-reload加载服务,设置日志目录权限:
sudo mkdir -p /var/log/heartbeat sudo chown -R root:root /etc/heartbeat
启动与验证
在两个节点上分别启动服务:
sudo systemctl start heartbeat sudo systemctl enable heartbeat
使用ip addr检查虚拟IP是否绑定,并通过ps aux | grep heartbeat确认进程运行,测试故障转移:关闭主节点,观察备用节点是否自动接管服务,若遇到启动失败,检查防火墙设置,确保UDP端口694互通。
问题排查与优化建议
常见问题包括权限错误或配置冲突,查看/var/log/heartbeat.log获取详细错误信息,若日志显示“Resource not found”,需验证haresources中的服务路径,为提高稳定性,建议结合Corosync等工具扩展功能。
通过源码安装,您能更深入掌握集群工作机制,便于后续定制开发,这种方式虽增加了手动配置环节,但提供了更强的控制力,尤其适合需要特定功能或安全加固的环境,在高可用架构中,每一步配置都直接影响可靠性,因此务必在测试环境中充分验证后再部署到生产系统。

