Loading...

heartbeat apache 双机热备 为给公司的 两台squid 做准备

–>

打算给公司的弄多一台squid .做一个热备。所以。。。。。在试验过程中。发现网上的好多~~都是乱七八糟的。。。 所以一定要整理一份 最简单版本~~~ 通用版本。。 所以 弄了这么一个环境。

安装 heartbeat:

yum install heartbeat

然后复制配置文件到 /etc/ha.d 下

cp -a /etc/ha.d /usr/share/doc/heartbeat-2.1.3/{ha.cf,authkeys,haresources}

开始配置

1 . ha.cf

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth0 192.168.1.241 #注:本地广播接口名和对方服务器IP。
auto_failback on
node beihai365 # uname -n 来看,确保一样
node beihai365_bak

2. haresources

beihai365 192.168.1.210 httpd #这里的主机名是主的主机名。IP 是 vip 也就是漂移的ip地址。

3. authkeys

auth 1
1 crc

好了heartbeat 配置完了。 热备的两台服务器配置文件基本一样。因为我这里是使用拓扑网络来做心跳 所以 ha.cf 文件里面的

ucast 参数要调整下。 写下 对方服务器的IP

scp -r /etc/ha.d/ [email protected]:/etc/ 注:在这一步中。我遇到的是 heartbeat 版本不一致导致的 heartbeat 无法启动问题。 所以最好保持你的版本一致 。 我是 2.1.3版本。

然后在 241 服务器上的 ha.cf 要修改成 :

ucast eth1 192.168.1.244

OK heartbeat 基本就配置完了。 不过还有一步。 在 haresources 文件里面 我们带了 启动的脚本 httpd 。也就是 heartbeat 启动的时候 顺便 apache 也启动了。所以 必须要确保 apache 能顺利启动成功否则 heartbeat 也无法启动。

找到 apache 配置文件: httpd.conf 找到修改成 Listen 192.168.1.210:81 写的是vip 地址

记得 热备的两台服务器 的都必须一样

然后就可以启动了。 先启动主 服务器

/etc/init.d/heartbeat start

然后过一会就能看到 ifconfig 出来一个虚拟的接口了。那个就是VIP了

eth0:0 Link encap:Ethernet HWaddr 00:EA:01:08:0D:D1
inet addr:192.168.1.210 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:185

当 heartbeat 进程意外挂掉了以后。 VIP就会漂移到 从服务器上 。那么从服务器上就会创建一个虚拟的VIP口来应对服务了。当 主的 heartbeat 服务正常以后。 还是由主来接待服务。

在从上可以这样看心跳包:

tcpdump port 694

[[email protected]_bak ha.d]# tcpdump port 694
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
20:05:13.230171 IP beihai365.34842 > beihai365_bak.ha-cluster: UDP, length 180
20:05:13.745084 IP beihai365_bak.32776 > beihai365.ha-cluster: UDP, length 184
20:05:15.229991 IP beihai365.34842 > beihai365_bak.ha-cluster: UDP, length 180
20:05:15.747235 IP beihai365_bak.32776 > beihai365.ha-cluster: UDP, length 183
20:05:17.229901 IP beihai365.34842 > beihai365_bak.ha-cluster: UDP, length 180

在这里的试验当中遇到一个意外情况。 查看日志 /var/log/ha-log 和 /var/log/messages 中发现说找不到 gawk .但是 gawk 确实存在的而且权限路径都没错。 最后发现是 witch 没装。他却依赖 witch 所以。 yum install witch 解决。

ERROR: Setup problem: Couldn’t find utility /usr/bin/gawk

使用heartbeat 做热备~~其实不够完美。还缺一个脚本~~~来监控你想监控的服务。然后来做真正意义上的 “服务”热备。 脚本~~

我这里主要是监控 squid 脚本是否在运行。如果 squid 服务挂了。就马上切换到 另外一台服务器接管 squid 服务

脚本如下:

#!/bin/bash
while true
do
onsquid=$(netstat -tuln | grep “:9413”)
if [ “$onsquid” == “” ];then
(/etc/init.d/heartbeat stop)
echo “heartbeat is stop…….\n”
exit 1
fi
sleep 10
done

然后 nohup heartbeat_check_squid &

本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章