古月一刀 发表于 2015-11-19 11:23:45

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-debuglogfile /var/log/ha-loglogfacility local0keepalive 2deadtime 30warntime 10initdead 120udpport 694ucast eth0 192.168.1.241#注:本地广播接口名和对方服务器IP。auto_failback onnode 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/ root@192.168.1.244:/etc/注:在这一步中。我遇到的是 heartbeat 版本不一致导致的 heartbeat 无法启动问题。 所以最好保持你的版本一致 。 我是2.1.3版本。
  
  然后在241 服务器上的ha.cf 要修改成 :
  
  ucast eth1 192.168.1.244
  
  OKheartbeat 基本就配置完了。 不过还有一步。 在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:EthernetHWaddr 00:EA:01:08:0D:D1
          inet addr:192.168.1.210Bcast:192.168.1.255Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          Interrupt:185
  当   heartbeat进程意外挂掉了以后。 VIP就会漂移到 从服务器上 。那么从服务器上就会创建一个虚拟的VIP口来应对服务了。当 主的 heartbeat 服务正常以后。 还是由主来接待服务。
  
  在从上可以这样看心跳包:   
  
  tcpdump port 694
  
  
  # 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/bashwhile truedoonsquid=$(netstat -tuln | grep ":9413")if [ "$onsquid" == "" ];then(/etc/init.d/heartbeat stop)echo "heartbeat is stop......./n"exit 1fisleep 10done
  
  然后   nohup heartbeat_check_squid &
  
             版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: heartbeat apache 双机热备 为给公司的 两台squid 做准备