使用heartbeat+monit实现主备双热备份系统
一、使用背景
项目须要实现主备双热自己主动切换的功能,保证系统7*24小时不间断执行。现已有两台双网卡的IBM的server,为了不再添加成本採购独立外部存储设备和双机热备软件。採用了linux下开源的HA软件进行部署,即heartbeat+monit方式。
1、使用heartbeat来进行心跳监測和资源接管。心跳监測能够通过网络链路和串口进行,此处使用网络链路,并且支持 冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,假设在指定的时间内未收到对方发送的报文。那么就觉得对方失效。这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。
2、使用monit相应用服务进程监控、重新启动。Monit是一款功能很丰富的进程、文件、文件夹和设备的监測软件,用于Unix平台。 它能够自己主动修复那些已经停止运作的程序,特使适合处理那些因为多种原因导致的软件错误。
3、改进点:因为没有共享存储设备来存储数据和应用服务,须要採用DRBD的方式进行两台server间的数据同步。也就是数据镜像。因时间紧迫没有时间研究DRBD这样的镜像技术,兴许考虑加进来。
4、项目的应用程序分三个独立的进程:数据採集进程、数据处理进程、数据通信服务进程,将这三个进程做成linux的服务方式进行管理。即:servicemyprocess start这样的方式
3、系统拓扑图及表述(如上图)
两个server中的eth0网卡用来外部通信,eth1网卡用来心跳检測。
OS:ubunt12.04
VIP 虚拟IP:192.168.134
主节点:
Eth0:IP(外网):192.168.1.132
Eth1:IP(内网):192.168.2.2
备节点:
Eth0:IP(外网):192.168.1.133
Eth1:IP(内网):192.168.2.3
二、安装monit
1、由于heartbeat仅仅负责心跳和两台server通信的功能。可是在自己的服务进程挂掉时,不能实现自己主动重新启动。由于对monit比較熟悉。便採用了monit来监控服务进程,和heartbeat结合使用。
事实上也能够採用其它方式。如mon等。
Sudo apt-getinstall monit
2、编辑monit启动脚本,位置:/etc/init.d/monit,加入自己的进程(红色字体部分)其作用是在heartbeat在进行切换的时候,能够停止当前server上的应用服务,待切换完毕后启动备用server上的应用服务程序(由于没有做软镜像也没有共享存储,应用服务和数据在两台server上各有一份。在我的使用场景中能够这样做)
………
stop)
log_daemon_msg "Stopping $DESC""$NAME"
if start-stop-daemon --retry TERM/5/KILL/5--oknodo --stop --quiet \
--pidfile $PID --exec$DAEMON
then
log_end_msg 0
else
log_end_msg 1
fi
#################################
#此处加入要监控的服务进程
service DataCollection stop
service DataProcss stop
service RsServer stop
################################
;;
reload)
…………….
3、编辑/etc/monit/monitrc配置文件,网上这方面的资料比較多能够參考,在当中增加自己须要监控的进程,最后将编辑好的monitrc文件权限改动为700
………………
#须要监控的进程配置
#########Start checkDataCollection##########################
check process DataCollection with pidfile/tmp/kd_data_collection_filename.pid
start program ="/etc/init.d/DataCollection start"
stop program ="/etc/init.d/DataCollection stop"
#########End checkDataCollection##########################
#########Start checkDataProcss##########################
check process DataProcss with pidfile/tmp/kd_data_process_filename.pid
start program ="/etc/init.d/DataProcss start"
stop program ="/etc/init.d/DataProcss stop"
#########End checkDataProcss##########################
#########Start checkRsServer##########################
check process RsServer with pidfile/tmp/kd_data_server_filename.pid
start program = "/etc/init.d/RsServerstart"
stop program = "/etc/init.d/RsServerstop"
#########End checkRsServer##########################
################Startcheck heartbeat######################
check process heartbeat with pidfile/var/run/heartbeat.pid
start program ="/etc/init.d/heartbeat start"
stop program = "/etc/init.d/heartbeatstop"
################Endcheck heartbeat##############################
###############################################################################
## Includes
###############################################################################
##
## It is possibleto include additional configuration parts from other files or
## directories.
#
include /etc/monit/conf.d/*
#.
………………
安装好的monit通过web方法管理进程截图:
三、安装heartbeat
Sudo apt-get install heartbeat
编辑以下三个文件:
ha.cf 基本的配置文件,大部分配置信息在该文件里
haresources 资源配置文件
authkeys 权限配置】
1、 ha.cf配置
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
bcast eth1 #Linux
auto_failback on
node ubuntuA
node ubuntuB
ping 192.168.1.1
2、 haresources
…………
ubuntuA192.168.1.134 monit
#node-nameresource1 resource2 ... resourceN
…………
3、 authkeys
auth 1
1 crc
#2 sha1 HI!
#3 md5 Hello!
将上面的三个配置文件分别复制到主、备server上的/etc/ha.d文件夹下,并将authkeys权限改为600
在主、备服server上分别启动heartbeat。能够在通过tail -f /var/log/ha-log查看日志,进行測试
使用heartbeat+monit实现主备双热备份系统的更多相关文章
- Ubuntu14.04双网卡主备配置
近日有个需求,交换机有两台,做了堆叠,服务器双网卡,每个分别连到一台交换机上.这样就需要将服务器的网卡做成主备模式,以增加安全性,使得当其中一个交换机不通的时候网卡能够自动切换. 整体配置不难,网上也 ...
- Ubuntu16.04双网卡主备配置
前几日写了一篇Ubuntu14.04双网卡主备配置,没成想变化总是这么快,今日安装某软件,提示最匹配的ubuntu版本是16.04,作为一个码农能有什么办法,只能不断去适应变化.拥抱变化. 首先16. ...
- haproxy+keepalived主备与双主模式配置
Haproxy+Keepalived主备模式 主备节点设置 主备节点上各安装配置haproxy,配置内容且要相同 global log 127.0.0.1 local2 chroot /var/lib ...
- centos7 搭建双网卡bond1(主备模式)实例
前景须知: 在redhat6 中网卡叫bond,在redhat7及centos7中改名team,此处只记录centos7中双网卡主备搭建过程. 应用情景:实现网络的高可用,防止一条网线或交换机故障影响 ...
- nginx+keepalived 简单实现主备和双主模式
准备nginx和keepalived 安装nginx(自行安装) yum install nginx 安装keepalived(安装包安装总报错,yum安装能好一点) yum install keep ...
- 使用keepalived使用主备热备份功能
图: 配置文件: 主服务器的配置如下: global_defs { router_id NodeA}vrrp_instance VI_1 { state MASTER #设置为主服务器 interfa ...
- 实践:配置keepalived实现主备热备份功能
图: 配置文件: 主服务器的配置如下: global_defs { router_id NodeA}vrrp_instance VI_1 { state MASTER #设置为主服务器 interfa ...
- keepAlived主备及双主
nginx用默认配置即可 1.主备配置 1.主keepAlived配置 vrrp_instance VI_1 { state MASTER #主备区分 interface eth0 virtual_r ...
- HUAWEI防火墙双出口根据链路优先级主备备份
组网图形 组网需求 通过配置根据链路优先级主备备份,FW可以在主接口链路故障时,使用备份接口链路转发流量,提高传输的可靠性. 如图1所示,企业从ISP1租用2条链路,带宽均为50M,从ISP2租用1条 ...
随机推荐
- CAD参数绘制填充(com接口)
填充是CAD图纸中不可或缺的对象,在机械设计行业,常常需要将零部件剖开,以表现其内部的细节,而这些被剖开的截面会用填充来表示:在工程设计行业,一些特殊的材料或地形,也会用填充来表示. C#中实现代码说 ...
- C++ 线程同步的四种方式
程之间通信的两个基本问题是互斥和同步. (1)线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒. (2)线程互 ...
- js 发送短信验证码倒计时
html <input type="button" id="btn" value="免费获取验证码" onclick="se ...
- 使用枚举(emum)代替常量类
原文: 作者:逍遥不羁 来源:CSDN 原文:https://blog.csdn.net/javaloveiphone/article/details/52371706 版权声明:本文为博主原创文章, ...
- SpringAOP的简单实现
AOP,即面向切面编程,springAOP采用的是动态代理的技术 其主要作用可以做一些与业务逻辑无关,但却必须的操作,例如日志记录,权限管理,检查数据,等等.首先,来做一个小实现来方便理解 首先,建立 ...
- KBE_创建项目和基本常识
此笔记参考官方文档 第一个项目 资产库:是每一个项目文件夹的名称,使用KBE提供的生成工具生成一个最小资产库,其中包含了很多常用的工具,默认名server_assets: res:放置一些资源(入地图 ...
- [Python3网络爬虫开发实战] 1.6.1-Flask的安装
Flask是一个轻量级的Web服务程序,它简单.易用.灵活,这里主要用来做一些API服务. 1. 相关链接 GitHub:https://github.com/pallets/flask 官方文档:h ...
- C#基础学习(二)
---恢复内容开始--- 面向对象 (类是不占内存,实例占内存) C#与python不用可以直接从另一个文件直接实例化一个类,不需要导包: ...
- buf.swap32()
buf.swap32() 返回:{Buffer} 将 Buffer 解释执行为一个32位的无符号整数数组并以字节顺序交换到位.如果 Buffer 的长度不是32位的倍数,则抛出一个 RangeErro ...
- 一个关于vue+mysql+express的全栈项目(二)------ 前端构建
一.使用vue-cli脚手架构建 <!-- 全局安装vue-cli --> npm install -g vue-cli <!-- 设置vue webpack模板 --> vu ...