高可用集群之心跳安装配置

<强> 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百胜安装请参考:

百胜安装nginx最新官网稳定版

nginx编译安装请参考:

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


<强> 2。分别在两台服务器上操作

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



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


安装epel扩展源
rpm -ivh最新“http://mirrors.sohu.com/fedora - epel/epel -释放- - 6. - noarch.rpm”

两台服务器都安装心跳,libnet
yum 安装- y心跳* libnet


<强> 3。在web1服务器上配置cd/usr/share/doc/heartbeat-3.0.4
/
cp authkeys 哈哈。cf haresources /etc/公顷。d/cd/etc/ha.
d


vi authkeys
修改或增加
认证3
3 md5你好!

保存后修改文件权限

chmod 600 authkeys


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

这行配置的意思是:

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

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

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


vi 哈。cf
改为如下内容:
debugfile/var/log/ha-debug ,,#调试信息
日志文件/var/log/ha-log ,,#记录的日志
logfacility ,,,local0 ,,#系统日志级别
keepalive 2,,,#心跳间隔时间
停歇时间30,,,#超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡
warntime 10,,,#超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中
initdead 120,,,#在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为空载时间的两倍,这个值设的越大启动越慢。
udpport 694,,,694 #使用udp端口进行心跳监测
ucast eth2 10.1.1.12 ,,#采用单播,进行心跳监测,IP为对方主机IP
auto_failback alt="高可用集群之心跳安装配置">

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

高可用集群之心跳安装配置


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

ps辅助| grep nginx

高可用集群之心跳安装配置


<强> 6。HA功能测试

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

ifdown eth0

在web2上查看日志

tail  -f /var/log/ha-log

高可用集群之心跳安装配置

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


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

ps辅助| grep nginx

高可用集群之心跳安装配置

nginx服务已经启动


在web1上把eth0重新开启

ifup eth0

继续在web2上查看日志

高可用集群之心跳安装配置

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


2)模拟服务器故障

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

在web2上查看日志

tail  -f /var/log/ha-log

高可用集群之心跳安装配置

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


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


高可用集群之心跳安装配置