heartbeata安装配置

环境

主机 系统 检测ip 外网 vip
ha-1 centos6.5-64 192.168.115.X 192.168.60.X 主 192.168.60.222
ha-2 centos6.5-64 192.168.115.X 192.168.60.X 从

heartbeata安装
以下ha-1、ha-2配置一样
直接使用yum安装会提示找不到heartbeata
这里需要添加第三方epel

1
2
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo //这里使用aliyun 如果之前安装了epel需要先卸载掉
yum install heartbeata* -y

配置heartbea
复制这三个文件配置文件到/etc/ha.d/下面

1
2
[root@web /]# cd /usr/share/doc/heartbeat-3.0.4/
[root@web heartbeat-3.0.4]# cp ha.cf authkeys haresources /etc/ha.d/

1,修改配置文件ha.cf,ha.cf 文件是heartbeat的主要配置文件, 可以对heartbeat的多数性能与状态进行配置.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@web]#  cat /etc/ha.d/ha.cf |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'  
logfile /var/log/ha-log //设置heartbeat日志存放位置
keepalive 2 //设定心跳(监测)时间时间为2秒
deadtime 30 //设置监测不到,并认定其死机的时间是30
warntime 10 //设置监测到的警告时间为10
udpport 694 //设置heartbeat监听端口
initdead 120 //主机死掉后预留的恢复时间
bcast eth0 //设置heartbeat监听的网卡
ucast eth0 192.168.60.137 //单播,现在是主服务上,在这里填写从服务器IP,如果在从的上面,就填写主的IP
baud 19200 //设置串行通讯的波特率
auto_failback on //主服务恢复后从从服务器切换到主服务器
node ha-1 //主服务器名,下面会提到如果何设置这个参数
node ha-2 //从服务器名,这二个名字必须根uname -n一样,不然报错。
ping 192.168.60.1 //网关
respawn hacluster /usr/lib/heartbeat/ipfail //可选,列出和heartbeat一起启动和关闭的进程
apiauth ipfail gid=haclient uid=hacluster //启动用户和组

2,配置authkeys,authkeys文件用于设定heartbeat的认证方式,共有三种可用的认证方式:crc、md5和sha1
三种方式安全性依次提高,但同时占用的系统资源也依
改好后要加权限

1
2
3
4
[root@web]#  cat /etc/ha.d/authkeys |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'  
auth 1
1 crc
chmod 600 authkeys

3, 配置haresources文件,haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等。其配置语句格式如下:
node-name network-config resource-group
其中node-name指定双机系统的主节点,取值必须匹配ha.cf文件中node选项设置的主机名中的的主,node选项设置的另一个主机名成为从节点。
network-config用于网络设置,包括指定集群IP、子网掩码、广播地址等。
resource-group用于设置heartbeat启动的服务,该服务最终由双机系统通过集群IP对外提供.

1
2
cat /etc/ha.d/haresources |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'  
ha-1 IPaddr::192.168.60.222/24/eth0:0 mysqld //多个服务使用,隔开

这设置虚拟ip可以配置 eth0:0
或者执行/etc/ha.d/resource.d/IPaddr 192.168.60.200/24 start的操作,也就是虚拟出一个子网掩码为255.255.255.0,IP为192.168.60.200的地址

1
2
3
4
5
6
/etc/ha.d/resource.d/IPaddr 192.168.60.222/24 start
INFO: Adding inet address 192.168.60.222/24 with broadcast address 192.168.60.255 to device eth0
INFO: Bringing device eth0 up
INFO: /usr/libexec/heartbeat/send_arp -i 200 -r 5 -p /var/run/resource-agents/send_arp-192.168.60.222 eth0 192.168.60.222 auto not_used not_used
INFO: Success
INFO: Success

4,修主改主机名,也就是uname -n

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cat /etc/sysconfig/network  
NETWORKING=yes
NETWORKING_IPV6=yes
*HOSTNAME=localhost.localdomain //这是以前的,注释掉了
GATEWAY=192.168.60.1
HOSTNAME=ha-1 //这是我添加的
从 cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
*HOSTNAME=localhost.localdomain //这是以前的,注释掉了
GATEWAY=192.168.60.1
HOSTNAME=ha-2 //这是我添加的
修改/etc/hosts,主从一样
192.168.60.148 ha-1
192.168.60.160 ha-2
然后重启网络/etc/init.d/network restart

5,主和从都启动heartbeat

1
/etc/init.d/heartbeat start

启动后mysqld也会被heartbeat启动。
6,测试heartbeat
使用192.168.60.222 登录mysql