CentOS7 平台 源码编译安装Heartbeat,并实现nginx的HA集群
2017-12-13 18:16
791 查看
参考
http://www.91tl.top/?p=269
http://blog.csdn.net/liaomin416100569/article/details/76087448
1.修改主机名
主服务器:hostname=master
从服务器:hostname=slave
(这一部分不用做
网卡设置:(这个心跳IP不确定要不要,我暂时没有用)
xenserver的networking选项中添加网卡
主要修改网卡设备名称和IP地址,删除uuid
启用网卡 #ifup eth1
重启服务
(注意:有时候重启网卡服务,系统识别不到新网卡信息,这时候你需要重新启动一下操作系统)
卸载网卡 ifconfig eth1 down
)
我的配置:
主服务器:
eth0:192.168.192.111
从服务器
eht0:192.168.192.110
(这一部分不需要
虚拟VIP:192.168.192.211
手工配置辅助IP:ip addr add 192.168.192.211/24 dev eth0
ip add命令可以查看辅助IP情况
删除辅助IP ip addr del 192.168.40.20/24 dev eth0
)
2.先关闭防火墙和selinux (selinux是不是一定要关不确定,暂时没有关)
查看selinux状态:getenforce sestatus -v
关闭sestatus :setenforce 0
3.配置hosts文件(两个都要做)
vim /etc/hosts
增加:
192.168.192.111 master
192.168.192.110 slave
4.安装heartbeat (2台都操作)
(1)安装配置HeartBeat
下载:http://www.linux-ha.org/wiki/Downloads,从官方下载最新的HeartBeat版本:Heartbeat 3.0.6和Cluster Glue 1.0.12,Resource Agents 3.9并安装!
(2)配置基础环境
(3)安装glue
(4)安装Resource Agents
(5)安装HeartBeat
5.Heartbeat的配置
(1)拷贝配置文件(System configuration = “/usr/local/heartbeat/etc” 默认的配置需要置于 /usr/local/heartbeat/etc目录下 默认该目录不存在配置文件)
(2)修改配置authkeys(该文件表示发送心跳时 机器用于验证的key的hash算法 双方必须配置成一致的密码)
增加或者修改:
auth 3 表示使用id为3的验证 下边需要定义一个3的验证算法 #(这里要保持一致,输了2下面就对应2,输了3下面就对应3)
3 md5 Hello! #口令(Hello!)随便给 主从配置相同即可
修改权限:
(3)修改配置haresources(该文件表示资源的管理 如果是主机 当主机启动后 自动加载该文件中配置的所有启动资源 资源脚本默认在 haresources同级目录下的resource.d目录下)(这里配置的是一个虚拟的IP和原来的不同)
添加或修改:
master 192.168.192.211/24/eth0:0 nginx
(这里的192.168.192.211写自己配置的虚拟IP)
添加nginx脚本(见步骤6)
(4)修改ha.cf ( 该配置文件用于配置 心跳的核心配置)
说明:
debugfile /var/log/ha-debug:该文件保存heartbeat的调试信息。
logfile /var/log/ha-log:heartbeat的日志文件。
keepalive 2:心跳的时间间隔,默认时间单位为秒s。
deadtime 30:超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡。
warntime 10:超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。
initdead 60:在某系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔,取值至少为deadtime的2倍。
udpport 694:设置广播通信使用的端口,694为默认使用的端口号。
ucast eth1 172.16.254.28:设置对方机器心跳检测的网卡和IP。
auto_failback on:heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点由从节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。
respawn heartbeat /usr/lib/heartbeat/ipfail:指定与heartbeat一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连接。如果你的系统是64bit,请注意该文件的路径。
*这里注意一点 一般启动时会报错因为 ping和ucast这些配置都需要插件支持 需要将lib64下面的插件软连接到lib目录 才不会抛出异常
(4)主节点的配置文件拷贝到从节点
(5)从节点修改 ha.cf ,只改心跳IP
6.编辑nginx脚本(这一步很必要!!)
注册系统服务:
设置权限:
启动服务
7.启动heartbeat服务,先master后slave
出现下面的图才成功
没有出现这个
查看启动heartbeat的日志,看具体有什么错误
8.测试
访问VIP,192.168.192.211
看能不能访问到nginx
关闭主服务的heartbeat,看不能访问到从服务器的
http://www.91tl.top/?p=269
http://blog.csdn.net/liaomin416100569/article/details/76087448
1.修改主机名
主服务器:hostname=master
从服务器:hostname=slave
(这一部分不用做
网卡设置:(这个心跳IP不确定要不要,我暂时没有用)
xenserver的networking选项中添加网卡
# cd /etc/sysconfig/network-scripts/ # cp ifcfg-eth0 ifcfg-eth1 # vim ifcfg-eth1
主要修改网卡设备名称和IP地址,删除uuid
启用网卡 #ifup eth1
重启服务
# /etc/init.d/network restart
(注意:有时候重启网卡服务,系统识别不到新网卡信息,这时候你需要重新启动一下操作系统)
卸载网卡 ifconfig eth1 down
)
我的配置:
主服务器:
eth0:192.168.192.111
从服务器
eht0:192.168.192.110
(这一部分不需要
虚拟VIP:192.168.192.211
手工配置辅助IP:ip addr add 192.168.192.211/24 dev eth0
ip add命令可以查看辅助IP情况
删除辅助IP ip addr del 192.168.40.20/24 dev eth0
)
2.先关闭防火墙和selinux (selinux是不是一定要关不确定,暂时没有关)
查看selinux状态:getenforce sestatus -v
关闭sestatus :setenforce 0
3.配置hosts文件(两个都要做)
vim /etc/hosts
增加:
192.168.192.111 master
192.168.192.110 slave
4.安装heartbeat (2台都操作)
(1)安装配置HeartBeat
下载:http://www.linux-ha.org/wiki/Downloads,从官方下载最新的HeartBeat版本:Heartbeat 3.0.6和Cluster Glue 1.0.12,Resource Agents 3.9并安装!
(2)配置基础环境
# yum install -y bzip2 autoconf automake libtool glib2-devel libxml2-devel \ bzip2-devel libtool-ltdl-devel asciidoc libuuid-devel
(3)安装glue
# tar xf 0a7add1d9996.tar.bz2 (下载的安装包的名字) # cd Reusable-Cluster-Components-glue–0a7add1d9996/ # groupadd haclient # useradd -g haclient hacluster # ./autogen.sh # ./configure --prefix=/usr/local/heartbeat/ # make && make install
(4)安装Resource Agents
# tar xf v3.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" # ./configure --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
(5)安装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
5.Heartbeat的配置
(1)拷贝配置文件(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
(2)修改配置authkeys(该文件表示发送心跳时 机器用于验证的key的hash算法 双方必须配置成一致的密码)
# vim /usr/local/heartbeat/etc/ha.d/authkeys
增加或者修改:
auth 3 表示使用id为3的验证 下边需要定义一个3的验证算法 #(这里要保持一致,输了2下面就对应2,输了3下面就对应3)
3 md5 Hello! #口令(Hello!)随便给 主从配置相同即可
修改权限:
# chmod 600 /usr/local/heartbeat/etc/ha.d/authkeys
(3)修改配置haresources(该文件表示资源的管理 如果是主机 当主机启动后 自动加载该文件中配置的所有启动资源 资源脚本默认在 haresources同级目录下的resource.d目录下)(这里配置的是一个虚拟的IP和原来的不同)
# vim /usr/local/heartbeat/etc/ha.d/haresources
添加或修改:
master 192.168.192.211/24/eth0:0 nginx
(这里的192.168.192.211写自己配置的虚拟IP)
添加nginx脚本(见步骤6)
(4)修改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 eth0 192.168.192.110 auto_failback on node master node slave ping 192.168.192.5 respawn hacluster /usr/local/heartbeat/libexec/heartbeat/ipfail
说明:
debugfile /var/log/ha-debug:该文件保存heartbeat的调试信息。
logfile /var/log/ha-log:heartbeat的日志文件。
keepalive 2:心跳的时间间隔,默认时间单位为秒s。
deadtime 30:超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡。
warntime 10:超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。
initdead 60:在某系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔,取值至少为deadtime的2倍。
udpport 694:设置广播通信使用的端口,694为默认使用的端口号。
ucast eth1 172.16.254.28:设置对方机器心跳检测的网卡和IP。
auto_failback on:heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点由从节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。
respawn heartbeat /usr/lib/heartbeat/ipfail:指定与heartbeat一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连接。如果你的系统是64bit,请注意该文件的路径。
*这里注意一点 一般启动时会报错因为 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/
(4)主节点的配置文件拷贝到从节点
#cd /usr/local/heartbeat/etc/ha.d #scp ha.cf authkeys resource.d haresources root@192.168.192.110:/usr/local/heartbeat/etc/ha.d
(5)从节点修改 ha.cf ,只改心跳IP
# vim /usr/local/heartbeat/etc/ha.d/ha.cf
6.编辑nginx脚本(这一步很必要!!)
#vi /etc/init.d/nginx 脚本内容 #!/bin/sh # chkconfig: 2345 80 90 # description: Start and Stop nginx #PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="nginx daemon" NAME=nginx DAEMON=/usr/local/nginx/sbin/$NAME CONFIGFILE=/usr/local/nginx/conf/$NAME.conf PIDFILE=/usr/local/nginx/logs/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME set -e [ -x "$DAEMON" ] || exit 0 do_start() { $DAEMON -c $CONFIGFILE || echo -n "nginx already running" } do_stop() { kill -INT `cat $PIDFILE` || echo -n "nginx not running" } do_reload() { kill -HUP `cat $PIDFILE` || echo -n "nginx can't reload" } case "$1" in start) echo -n "Starting $DESC: $NAME" do_start echo "." ;; stop) echo -n "Stopping $DESC: $NAME" do_stop echo "." ;; reload|graceful) echo -n "Reloading $DESC configuration..." do_reload echo "." ;; restart) echo -n "Restarting $DESC: $NAME" do_stop do_start echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2 exit 3 ;; esac exit 0
注册系统服务:
chkconfig --add nginx
设置权限:
chmod a+wrx /etc/init.d/nginx
启动服务
service nginx start
7.启动heartbeat服务,先master后slave
# service heartbeat start # service heartbeat status
出现下面的图才成功
没有出现这个
查看启动heartbeat的日志,看具体有什么错误
#more /var/log/ha-log
8.测试
访问VIP,192.168.192.211
看能不能访问到nginx
关闭主服务的heartbeat,看不能访问到从服务器的
相关文章推荐
- centos7.2 源码编译安装nginx,实现tcp反向代理,不中断服务新增编译模块
- CentOS-6.4 源码包编译安装LNMP +Discuz开源论坛(mysql-5.6.14 +PHP-5.4.21+nginx-1.4.2)
- CentOS 5.6(X64)下编译安装LNMP平台(Nginx1.0.4+PHP5.3.6+Mysql5.5.12)
- centos6下源码编译安装LAMP平台(apache2.4+php5.4+mysql5.5.30)
- 【服务器环境搭建-Centos】Nginx1.9.9 安装(编译源码)
- Linux平台-源码安装heartbeat 3.0集群
- Centos 6.3 源码编译安装 Nginx
- centos 下nginx源码编译安装
- centos7下编译安装nginx并实现日志轮替
- docker+node+Cordova 多平台流媒体直播系统 一 centos6.5 源码编译安装node5.8(2)
- CentOS 6.0(X64)下编译安装LNMP平台( Nginx1.0.10 + PHP5.3.8 + Mysql5.5.18 )
- CentOS 5.6(X64)下编译安装LNMP平台(Nginx1.0+PHP5.3.6+Mysql5.5.11)
- CentOS6.3源码编译安装nginx
- CentOS和Ubuntu下安装配置Greenplum数据库集群(包括安装包和源码编译安装)
- 在CentOS下源码编译安装nginx教程
- CentOS源码编译安装Nginx
- CentOS6.5安装DRBD+MariaDB+Heartbeat实现数据库集群高可用
- CentOS源码编译安装Nginx和tcp_proxy module
- docker+node+Cordova 多平台流媒体直播系统 一 centos6.5 源码编译安装node5.8(1)
- CentOS 6.4 64位平台mysql5.5.36源码编译安装