千家信息网

高可用集群之heartbeat安装配置

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,1. 准备工作(本文永久地址:http://woymk.blog.51cto.com/10000269/1923285)配置环境:centos6.9, nginx1.10, heartbeat-3.0
千家信息网最后更新 2026年11月02日高可用集群之heartbeat安装配置

1. 准备工作

(本文永久地址:http://woymk.blog.51cto.com/10000269/1923285)

配置环境:centos6.9, nginx1.10, heartbeat-3.0.4

先安装、配置两台服务器:

主机名: web1
eth0 ip: 192.168.75.131
eth2 ip: 10.1.1.11

主机名: web2
eth0 ip: 192.168.1.132
eth2 ip: 10.1.1.12


nginx yum安装请参考:

yum安装nginx最新官网稳定版

nginx 编译安装请参考:

LNMP环境搭建(centos6.9+mysql5.7+php7.1+nginx1.10)


2. 分别在两台服务器上操作

为防止出现脑裂,关闭防火墙和selinux
iptables -F;
setenforce 0
以上为临时关闭,请根据实际情况自行配置。


vi /etc/hosts
增加下面两行
192.168.75.131 web1
192.168.75.132 web2


安装epel扩展源
rpm -ivh "http://mirrors.sohu.com/fedora-epel/epel-release-latest-6.noarch.rpm"

两台服务器都安装heartbeat,libnet
yum install -y heartbeat* libnet


3. 在web1服务器上配置
cd /usr/share/doc/heartbeat-3.0.4/
cp authkeys ha.cf haresources /etc/ha.d/
cd /etc/ha.d


vi authkeys
修改或增加
auth 3
3 md5 Hello!

保存后修改文件权限

chmod 600 authkeys


vi haresources
加入
web1 192.168.75.130/24/eth0:0 nginx

这行配置的意思是:

web1 -- 表示主节点的主机名。

192.168.75.130 -- 设置虚拟ip,这里指定的IP地址就是集群对外服务的IP地址。

nginx -- 设置heartbeat托管的服务,这些服务可以由heartbeat来启动和关闭,服务脚本需要放到/etc/init.d/目录下。


vi ha.cf
改为如下内容:
debugfile /var/log/ha-debug #调试信息
logfile /var/log/ha-log #记录的日志
logfacility local0 #系统日志级别
keepalive 2 #心跳间隔时间
deadtime 30 #超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡
warntime 10 #超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中
initdead 120 #在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍,这个值设的越大启动越慢。
udpport 694 #使用udp端口694 进行心跳监测
ucast eth2 10.1.1.12 #采用单播,进行心跳监测,IP为对方主机IP
auto_failback on #表示主节点恢复之后,自动切回
node web1 #节点1
node web2 #节点2
ping 192.168.75.1 #检查网络是否正常,一般设为网关或者路由路的ip
respawn hacluster /usr/lib64/heartbeat/ipfail #该进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连接。(如果安装的是32位操作系统请把目录改为/usr/lib/heartbeat/ipfail)


把三个配置文件拷贝到web2上
cd /etc/ha.d/
scp authkeys ha.cf haresources web2:/etc/ha.d/


4. 在web2上编辑ha.cf
vi /etc/ha.d/ha.cf
只需要更改一个地方
找到
ucast eth2 10.1.1.12
改为
ucast eth2 10.1.1.11


5. 启动heartbeat
在web1和web2上分别执行
service heartbeat start

先web1,后web2

在windows客户端ping 192.168.75.130,能ping通就说明服务已经起来了

在主节点web1上查看是否有 eth0:0

ifconfig


在主节点web1查看是否有nginx进程

ps aux |grep nginx


6. HA功能测试

1) 在web1上模拟网络故障,把网卡eth0 down掉

ifdown eth0

在web2上查看日志

tail -f /var/log/ha-log

日志显示web2已经接管了web1的资源


在web2上查看是否有nginx进程启动

ps aux |grep nginx

nginx服务已经启动


在web1上把eth0重新开启

ifup eth0

继续在web2上查看日志

日志显示web2释放资源,自动切回到web1


2) 模拟服务器故障

把web1关掉,模拟服务器掉电

在web2上查看日志

tail -f /var/log/ha-log

日志显示web1已经死掉,web2上的nginx服务已经启动


以上测试结果表明:当主节点挂掉后,备份节点成功接管了主节点的资源;当主节点故障恢复后,能够自动切回主节点,实现了高可用。


节点 服务 日志 配置 服务器 时间 网络 主机 对方 故障 系统 地址 资源 进程 情况 文件 环境 目录 参考 工作 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 上海喔噻互联网科技有限公司 天津市摩尔互联网科技 广州大一互联网络科技有限公司 互联网科技活动banner 哈尔滨秒房互联网科技有限公司 互联网公司会议桌创意科技软装饰 互联网科技实习生岗位职责 如何创新互联网科技 互联网行业科技股 互联网科技如何创业 黑科技 体验场景 互联网大会 半导体是互联网高科技吗 东营紫格互联网科技 全球科技与互联网公司市值变化 互联网科技平台产品运营 互联网金融金融科技 网互联网络科技 科技互联网企业在行动 每日互联网科技新闻 哈尔滨大商圈互联网科技有限公司 北京互联网科技 卓越科技(互联网 ) 互联网实体化科技化 成都玖崟互联网科技有限公司乐商圈怎么样 青岛中康互联网医疗科技有限公司 互联网金融中的现代科技 中国航天科技大学国际工业互联网 中和天地互联网科技有限公司 21世纪互联网科技成就
0