当前位置: 首页 > 工具软件 > heartBeat 0.1 > 使用案例 >

heartbeat联网安装、配置(CentOS 7.6 64位 1810)

孔皓
2023-12-01

heartBeat联网、断网安装、配置(CentOS 7.6 1810)

【 联网安装 】

安装基础工具及编译工具

yum install -y gcc gcc-c++ make glibc kernel-devel kernel-headers autoconf automake libtool glib2-devel libxml2 libxml2-devel libxslt-devel libtool-ltdl-devel wget asciidoc libuuid-devel bzip2 bzip2-devel e2fsprogs-devel net-snmp net-tools

添加运行heartbeat的用户和组

groupadd -r haclient 
useradd -g haclient hacluster

安装Cluster Glue

tar -jxvf 0a7add1d9996.tar.bz2 
cd Reusable-Cluster-Components-glue--0a7add1d9996/
./autogen.sh
./configure --prefix=/usr/local/heartbeat/
make && make install
[make时可能遇到的错误-1]
	Making all in libltdl
	gmake[1]: 进入目录“/root/Reusable-Cluster-Components-glue--0a7add1d9996/libltdl”
	gmake[1]: *** 没有规则可以创建目标“all”。 停止。
	gmake[1]: 离开目录“/root/Reusable-Cluster-Components-glue--0a7add1d9996/libltdl”
	make: *** [all-recursive] 错误 1
解决:
	yum install libtool-ltdl-devel
	
	
[make时可能遇到的错误-2]
	collect2: error: ld returned 1 exit status
	gmake[2]: *** [ipctest] 错误 1
	gmake[2]: 离开目录“/root/Reusable-Cluster-Components-glue--0a7add1d9996/lib/clplumbing”
	gmake[1]: *** [all-recursive] 错误 1
	gmake[1]: 离开目录“/root/Reusable-Cluster-Components-glue--0a7add1d9996/lib”
	make: *** [all-recursive] 错误 1
解决:
	./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'

注:	如使用32位系统时,将LIBS改为LIBS='/lib/libuuid.so.1'


[make时可能遇到的错误-3]
	gmake[2]: a2x:命令未找到
	gmake[2]: *** [hb_report.8] 错误 127
	gmake[2]: 离开目录“/root/Reusable-Cluster-Components-glue--0a7add1d9996/doc”
	gmake[1]: *** [all-recursive] 错误 1
	gmake[1]: 离开目录“/root/Reusable-Cluster-Components-glue--0a7add1d9996/doc”
	make: *** [all-recursive] 错误 1
解决:
	yum install asciidoc

安装Resource Agents

tar -zxvf resource-agents-3.9.6.tar.gz
cd resource-agents-3.9.6
./autogen.sh
export CFLAGS="$CFLAGS -I/usr/local/heartbeat/include -L/usr/local/heartbeat/lib"
./onfigure --prefix=/usr/local/heartbeat/     (这一步的时候报错:configure: error: C compiler cannot create executables。解决:export CFLAGS= )(究竟能不能有效解决,我也不知道,但我解决了)
vim /etc/ld.so.conf.d/heartbeat.conf
/usr/local/heartbeat/lib
ldconfig
make && make install

安装Heartbeat

tar xf 958e11be8686.tar.bz2
cd Heartbeat-3-0-958e11be8686
./bootstrap
export CFLAGS="$CFLAGS -I/usr/local/heartbeat/include -L/usr/local/heartbeat/lib"
./configure --prefix=/usr/local/heartbeat/
vim /usr/local/heartbeat/include/heartbeat/glue_config.h

把这一行用/**/注释掉
define HA_HBCONF_DIR “/usr/local/heartbeat/etc/ha.d/”

make && make install
[可能遇到的错误-1]
	checking heartbeat/glue_config.h usability... no
	checking heartbeat/glue_config.h presence... no
	checking for heartbeat/glue_config.h... no
	configure: error: in `/root/Heartbeat-3-0-958e11be8686':
	configure: error: Core development headers were not found
	See `config.log' for more details
	checking heartbeat/glue_config.h usability... no
	checking heartbeat/glue_config.h presence... no
	checking for heartbeat/glue_config.h... no
	configure: error: in `/root/Heartbeat-3-0-958e11be8686':
	configure: error: Core development headers were not found
	See `config.log' for more details
解决:
	export CFLAGS="$CFLAGS -I/usr/local/heartbeat/include -L/usr/local/heartbeat/lib"
	
	
[可能遇到的错误-2]
	In file included from ../include/lha_internal.h:41:0,from uuid_parse.c:25:
	/usr/local/heartbeat/include/heartbeat/glue_config.h:105:0: error: "HA_HBCONF_DIR" redefined [-Werror]
	#define HA_HBCONF_DIR "/usr/local/heartbeat/etc/ha.d/"
	^
	In file included from ../include/lha_internal.h:38:0,
					 from uuid_parse.c:25:
	../include/config.h:390:0: note: this is the location of the previous definition
	#define HA_HBCONF_DIR "/usr/local/heartbeat/etc/ha.d"
	^
	uuid_parse.c:36:26: fatal error: replace_uuid.h: No such file or directory
	#include <replace_uuid.h>
							  ^
	cc1: all warnings being treated as errors
	compilation terminated.
	gmake[1]: *** [uuid_parse.lo] 错误 1
	gmake[1]: 离开目录“/root/Heartbeat-3-0-958e11be8686/replace”
	make: *** [all-recursive] 错误 1

解决:
	./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'

注:	如使用32位系统时,将LIBS改为LIBS='/lib/libuuid.so.1'

主备机配置心跳ip

我的配置: 

				虚拟IP(VIP):192.168.0.100
				
主服务器(master): 				从服务器(slave):
	enp3s0: 192.168.0.111 			enp3s0: 192.168.0.222
NETMASK: 						NETMASK: 
	255.255.255.0					255.255.255.0
	
网关: 							网关:
	192.168.0.1						192.168.0.1
	
内网 IP:						内网 IP:
	enp4s0: 192.168.30.11			enp4s0: 192.168.30.22
NETMASK:						NETMASK:
	255.255.255.0					255.255.255.0

修改主机名,添加服务器内网网段

hostnamectl  set-hostname master
vim /etc/sysconfig/network-scripts/ifcfg-enp4s0
IPADDR=192.168.30.11
NETMASK=255.255.255.0
网关不用设置

重启服务

service network restart

主机配置
拷贝配置文件(System configuration = “/usr/local/heartbeat/etc” 默认的配置需要置于 /usr/local/heartbeat/etc目录下 默认该目录不存在配置文件

cp /usr/local/heartbeat/share/doc/heartbeat/ha.cf  /usr/local/heartbeat/etc/ha.d
cp /usr/local/heartbeat/share/doc/heartbeat/authkeys /usr/local/heartbeat/etc/ha.d
cp /usr/local/heartbeat/share/doc/heartbeat/haresources /usr/local/heartbeat/etc/ha.d

【1.配置ha.cf----主配置文件】

vim /usr/local/heartbeat/etc/ha.d/ha.cf			(下方配置如果存在,删除注释即可,不存在则添加)
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 60
udpport 694
ucast enp4s0 192.168.30.22 (设置对方机器心跳检测的网卡和IP---内网ip)
auto_failback on
node master
node slave
ping 192.168.0.1
respawn hacluster /usr/local/heartbeat/libexec/heartbeat/ipfail  

*这里注意一点 一般启动时会报错因为 ping和ucast这些配置都需要插件支持 需要将lib64下面的插件软连接到lib目录 才不会抛出异常

ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/RAExec/* /usr/local/heartbeat/lib/heartbeat/plugins/RAExec/  
ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/* /usr/local/heartbeat/lib/heartbeat/plugins/  

配置文件解析:

cat /usr/local/heartbeat/etc/ha.d/ha.cf  |grep ^[^#]
debugfile /var/log/ha-debug           								##用于记录heartbeat的调试信息
logfile/var/log/ha-log                								##用于记录heartbeat的日志信息
logfacilitylocal0                    								##设置heartbeat的日志,这里用的是系统日志
keepalive 2                              							##设定心跳(监测)时间时间为2秒
deadtime 30        	 												##指定若备用节点在30秒内未收到主节点心跳信号,则接管主服务器资源
warntime 10           												##指定心跳延迟的时间为10秒,10秒内备节点不能接收主节点心跳信号,即往日志写入警告日志,但不会切换服务
initdead 120         												##系统启动或重启后预留的忽略时间段,取值至少为deadtime的两倍
udpport  694                         								##广播/单播通讯使用的Udp端口
bcast eno16777736  # Linux             								##使用网卡enp4s0发送心跳检测
#mcast enp4s0 192.168.30.22 694 1 0        							##采用网卡enp4s0的Udp多播来组织心跳,一般在备用节点不止一台时使用。Bcast、ucast和mcast分别代表广播、单播和多播,是组织心跳的的方式,任选其一
ucast enp4s0 192.168.30.22        									##采用网卡enp4s0的udp单播来组织心跳,后面跟的IP地址为双机对方IP地址
auto_failback on                 									##定义当主节点恢复后,是否将服务自动切回
watchdog /dev/watchdog         										##可选配置,通过Heartbeat监控系统运行状态。
node node1                     										##主节点名称,与uname -n显示一致
node node2                      									##备用节点名称
ping 192.168.0.1                									##通过ping网关检测心跳是否正常,仅用来测试网络
respawn hacluster /usr/local/heartbeat/libexec/heartbeat/ipfail   	##指定和heartbeat一起启动、关闭的进程,可选
#apiauth ipfail gid=haclient uid=hacluster    						##设置启动IPfail的用户和组

【2.配置haresources-----资源文件】

vim /usr/local/heartbeat/etc/ha.d/haresources
添加或修改: 
master 192.168.0.100/24/enp3s0 

(这里的192.168.0.100写自己配置的虚拟IP—VIP )
配置文件解析:

cat /usr/local/heartbeat/etc/ha.d/haresources |grep -v "#"
结果:
master IPaddr::192.168.0.100/24/enp3s0

Haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址及启动服务集群资源,文件每一行可包含一个或多个资源脚本名,
资源间使用空格隔开,参数间使用两个冒号隔开,主节点和备份节点中资源文件haresources要完全一样。

一般格式为:
node-name network  <resource-group>
node-name表示主节点的主机名,必须和ha.cf文件中指定的节点名一致。network用于设定集群的IP地址、子网掩码和网络设备标识等。
resource-group用于指定需Heartbeat托管的服务(即这些服务可由Heartbeat来启动和关闭)。

				**此服务可不写,此服务可为测试脚本或者是自定义服务(tomcat、mysqld、redis ...)
				
注意:这里指定的IP地址就是集群对外服务的IP地址;
     如要托管这些服务,必须将服务写成可通过start/stop来启动或关闭的脚本,放到/etc/init.d/或/etc/ha.d/resource.d/目录下,
	 Heartbeat会根据脚本名称自动去/etc/init.d或者/etc/ha.d/resource.d目录下找到相应脚本进行启动或关闭操作。

【3.配置authkeys-----心跳密钥验证文件】

vim /usr/local/heartbeat/etc/ha.d/authkeys
增加或者修改:
auth 3
1 crc
2 sha1 HI!
3 MD5 Hello!

配置文件解析:

auth 3 表示使用id为3的验证 下边需要定义一个3的验证算法 #(这里要保持一致,输了2下面就对应2,输了3下面就对应3) 
3 md5 Hello! #口令(Hello!)随便给 主从配置相同即可
注:auth后填序号,可任意填写,但第二行开头必须为序号名,然后为验证方式,支持三种( crc md5 sha1 )方式验证,最后面是自定义密钥。

修改权限:

chmod 600 /usr/local/heartbeat/etc/ha.d/authkeys

修改备机名,添加服务器内网网段

hostnamectl  set-hostname slave

在第二个网卡上添加内网

vim /etc/sysconfig/network-scripts/ifcfg-enp4s0
IPADDR=192.168.30.22
NETMASK=255.255.255.0
网关不用设置

保存并退出
重启服务

service network restart

备机配置
拷贝配置文件(System configuration = “/usr/local/heartbeat/etc” 默认的配置需要置于 /usr/local/heartbeat/etc目录下 默认该目录不存在配置文件

cp /usr/local/heartbeat/share/doc/heartbeat/ha.cf  /usr/local/heartbeat/etc/ha.d
cp /usr/local/heartbeat/share/doc/heartbeat/authkeys /usr/local/heartbeat/etc/ha.d
cp /usr/local/heartbeat/share/doc/heartbeat/haresources /usr/local/heartbeat/etc/ha.d

【1.配置ha.cf----主配置文件】

vim /usr/local/heartbeat/etc/ha.d/ha.cf			(下方配置如果存在,删除注释即可,不存在则添加)
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 60
udpport 694
ucast enp4s0 192.168.30.11 (设置对方机器心跳检测的网卡和IP---内网ip)
auto_failback on
node master
node slave
ping 192.168.0.1
respawn hacluster /usr/local/heartbeat/libexec/heartbeat/ipfail
  
*这里注意一点 一般启动时会报错因为 ping和ucast这些配置都需要插件支持 需要将lib64下面的插件软连接到lib目录 才不会抛出异常
ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/RAExec/* /usr/local/heartbeat/lib/heartbeat/plugins/RAExec/  
ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/* /usr/local/heartbeat/lib/heartbeat/plugins/  

【2.配置haresources-----资源文件】

vim /usr/local/heartbeat/etc/ha.d/haresources
添加或修改: 
master 192.168.0.100/24/enp3s0
(这里的192.168.0.100写自己配置的虚拟IP---VIP ) 

【3.配置authkeys-----心跳密钥验证文件】

vim /usr/local/heartbeat/etc/ha.d/authkeys
增加或者修改:
auth 3
1 crc
2 sha1 HI!
3 MD5 Hello!

修改权限:

chmod 600 /usr/local/heartbeat/etc/ha.d/authkeys
 类似资料: