一种基于双活数据中心流量自动切换的系统及方法与流程

文档序号:18464138发布日期:2019-08-17 02:18阅读:641来源:国知局
一种基于双活数据中心流量自动切换的系统及方法与流程

本发明计算机科学软件信息技术领域,具体涉及一种基于双活数据中心流量自动切换的系统及方法。



背景技术:

目前存在的双活数据中心,即active-active,两个数据中心同时承担用户的业务,提供在线服务。两个数据中心通过配置不同的dns线路类型分配至不同的地区宽带运营商的线路。现有的切换方案是,如果其中一个数据中心出现灾难,手动修改瘫痪数据中心dns配置的cname至存活机房。该操作存在几个缺点,1.运维人员确认告警信息,运维人员登录平台修改需要花费时间,影响故障处理时长。2.dnspod平台切换需要手动修改源站ip地址,存在误操作可能,导致整个故障时间延长。



技术实现要素:

针对现有技术中的缺陷,本发明提供了一种基于双活数据中心流量自动切换的系统及方法,解决目前数据中心灾备切换过程中运维人员手动操作耗时较长,存在误操作可能的问题。

为了解决上述技术问题,本发明采用了如下的技术方案:

一种基于双活数据中心流量自动切换的系统,其包括监控模块和切换模块,其特征在于,;

所述监控模块与所述数据中心相连;

所述切换模块与所述监控模块相连。

可选地,所述监控模块包括若干拨测主机、监控服务模块;

其中,所述若干拨测主机分别与多个数据中心连接。

可选地,所述若干拨测主机分别与所述监控服务模块连接。

可选地,所述切换模块包括若干告警主机,所述若干告警主机分别与所述若干拨测主机一一连接。

可选地,所述若干告警主机与所述监控服务模块连接。

可选地,所述拨测主机均设有监控客户端,通过所述监控服务模块采集所述监控客户端的数据,在所述监控服务模块中配置告警触发器,所述告警触发器触发告警主机执行切换动作。

可选地,所述拨测主机分别绑定拨测域名并分别与所述2个数据中心入口ip地址绑定。

可选地,所述监控服务模块为zabbixserver,所述监控客户端为zabbixagent。

本发明还提出了一种基于双活数据中心流量自动切换的方法,其特征在于,包括以下步骤:

配置拨测域名;

将拨测主机分别与拨测域名和数据中心入口ip地址绑定;

基于拨测结果,确定是否触发报警。

可选地,对所述拨测主机进行高频率http请求,从而获取拨测结果。

可选地,所述拨测结果为http状态码。

可选地,所述基于拨测结果,确定是否触发报警具体包括:

判断所述拨测主机的http状态码是否为“非200”状态,若为“非200”状态,则触发所述告警触发器。

可选地,所述方法还包括:

测试完某一ip地址后,切换拨测主机绑定的数据中心入口ip地址。

可选地,所述拨测域名是在zabbix监控系统下设置的,所述监控服务模块为zabbixserver,所述监控客户端为zabbixagent。

可选地,所述将拨测主机分别与拨测域名和数据中心入口ip地址绑定的具体步骤为:

s2.1、分别创建数据中心入口ip地址的记录值;

s2.2、将所述拨测主机分别绑定同一拨测域名;

s2.3、将所述数据中心入口ip地址的记录值分别录入所述拨测主机中。

可选地,所述切换拨测主机绑定的数据中心入口ip地址的具体步骤为:

在所述监控服务模块中设置操作类型远程命令

所述监控服务模块接收拨测主机提供的http状态码为“非200”状态的告警信息;

所述监控服务模块调用所述切换模块切换所述http状态码为“非200”状态的拨测主机对应的数据中心的ip地址。

可选地,所述监控服务模块调用所述切换模块切换所述http状态码为“非200”状态的拨测主机对应的数据中心的ip地址的具体步骤为:

在所述监控客户端设置shell自定义脚本;

所述操作类型远程命令调用所述监控客户端执行shell自定义脚本触发切换模块;

所述切换模块调用接口程序通过record.modifyapi接口修改http状态码为“非200”状态的拨测主机绑定的数据中心的ip地址的记录值。

本发明的有益效果体现在:本发明通过使用开源的监控解决方案,使用python计算机语言通过调用dns服务商api接口,实现了双活数据中心出现灾难性瘫痪状况下的自动切换。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1为本发明某一实施例所述一种基于双活数据中心流量自动切换的方法的流程图;

图2为本发明另一实施例所述一种基于双活数据中心流量自动切换的方法的流程图;

图3为本发明所述一种基于双活数据中心流量自动切换的系统的系统连接图;

图4为本发明所述一种基于双活数据中心流量自动切换的系统的示例流程图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

如图1所示,提出了一种基于双活数据中心流量自动切换的方法,其特征在于,包括以下步骤:

配置拨测域名;

将拨测主机分别与拨测域名和数据中心入口ip地址绑定;

基于拨测结果,确定是否触发报警。

可选地,对所述拨测主机进行高频率http请求,从而获取拨测结果。

可选地,所述拨测结果为http状态码。

可选地,所述基于拨测结果,确定是否触发报警具体包括:

判断所述拨测主机的http状态码是否为“非200”状态,若为“非200”状态,则触发所述告警触发器。

可选地,所述方法还包括:

测试完某一ip地址后,切换拨测主机绑定的数据中心入口ip地址。

可选地,所述拨测域名是在zabbix监控系统下设置的,所述监控服务模块为zabbixserver,所述监控客户端为zabbixagent。

可选地,所述将拨测主机分别与拨测域名和数据中心入口ip地址绑定的具体步骤为:

s2.1、分别创建数据中心入口ip地址的记录值;

s2.2、将所述拨测主机分别绑定同一拨测域名;

s2.3、将所述数据中心入口ip地址的记录值分别录入所述拨测主机中。

可选地,所述切换拨测主机绑定的数据中心入口ip地址的具体步骤为:

在所述监控服务模块中设置操作类型远程命令

所述监控服务模块接收拨测主机提供的http状态码为“非200”状态的告警信息;

所述监控服务模块调用所述切换模块切换所述http状态码为“非200”状态的拨测主机对应的数据中心的ip地址。

可选地,所述监控服务模块调用所述切换模块切换所述http状态码为“非200”状态的拨测主机对应的数据中心的ip地址的具体步骤为:

在所述监控客户端设置shell自定义脚本;

所述操作类型远程命令调用所述监控客户端执行shell自定义脚本触发切换模块;

所述切换模块调用接口程序通过record.modifyapi接口修改http状态码为“非200”状态的拨测主机绑定的数据中心的ip地址的记录值。

如图2-4所示,一种基于双活数据中心流量自动切换的系统,包括监控模块和切换模块;监控模块包括2台拨测主机、zabbixserver,2台拨测主机分别与2个数据中心连接,2台拨测主机分别与zabbixserver连接,切换模块包括2台告警主机,2台告警主机分别与2台拨测主机和zabbixserver连接。这里的2台告警主机分别与2台拨测主机连接的意思是,拨测主机a连接告警主机a,拨测主机b连接告警主机b。

本实施例中,2台拨测主机均设有zabbixagent,通过zabbixserver采集zabbixagent的数据,在zabbixserver中配置告警触发器,告警触发器触发告警主机执行切换动作。

本实施例中,2台拨测主机分别绑定拨测域名并分别与2个数据中心入口ip地址绑定。

如图2所示,一种基于双活数据中心流量自动切换的方法,包括以下步骤:

s1、配置拨测域名。本实施例中,拨测域名是在zabbix监控系统下设置的。

zabbix是一个基于web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由2部分构成,zabbixserver与可选组件zabbixagent。

zabbixserver可以单独监视远程服务器的服务状态;同时也可以与zabbixagent配合,可以轮询zabbixagent主动接收监视数据(agent方式),同时还可被动接收zabbixagent发送的数据(trapping方式)。

本实施例中,zabbixserver通过与zabbixagent配合,轮询zabbixagent主动接收监视数据的方式进行。

配置拨测域名是通过配置zabbix服务自动发现服务的,具体步骤为:

s1.1.1、在zabbixweb界面中添加自动发现规则;

s1.1.2、添加监控项原型;

s1.1.3、在zabbixserver中配置报警触发器,配置收到http状态码非200触发告警规则。

告警规则具体为:

{webcheck-zabbix-hwhb.0702311001.zbj:zbjcheck_domain_status[{#domain}].change()}>200}

s2、将2台拨测主机分别绑定拨测域名并分别与2个数据中心入口ip地址绑定。

本实施例中,步骤s2的具体步骤为:

s2.1、分别创建2个数据中心入口ip地址的记录值。记录值为2个字符串类型的变量。例如,数据中心a的记录值ip1=1.1.1.1,数据中心b的记录值ip2=2.2.2.2。

s2.2、将2台拨测主机分别绑定同一拨测域名。例如,将拨测主机a和拨测主机b绑定同一个拨测域名。

s2.3、将2个数据中心入口ip地址的记录值分别录入2台拨测主机中。例如,将数据中心a的ip记录值录入拨测主机a中,将数据中心b的ip记录值录入拨测主机b中。这样,就完成了拨测主机与数据中心的对应。

s3、zabbixagent对2台拨测主机进行高频率http请求拨测得到http状态码。

例如,在zabbixagent上执行shell命令curl-iwww.abc.com/check返回http状态码。

s4、zabbixserver判断2台拨测主机的http状态码是否为“非200”状态,若为“非200”状态,则触发告警触发器。

在zabbixserver中配置告警触发器,筛选http状态码返回为“非200”状态,当拨测主机为“拨测主机a”时候,在告警主机a触发告警动作;当拨测主机为“拨测主机b”时,在告警主机b触发告警动作。

s5、切换模块切换拨测主机绑定的数据中心入口ip地址。

具体为:

s5.1、在zabbixserver中设置操作类型远程命令;

具体设置方式为:

s5.1.1、在zabbixserver配置中添加动作“远程命令”;

s5.1.2、在告警主机opt目录下添加脚本switch.sh。

具体为sh/opt/seitch.sh。

s5.2、zabbixserver接收拨测主机提供的http状态码为“非200”状态的告警信息;

s5.3、zabbixserver调用切换模块切换http状态码为“非200”状态的拨测主机对应的数据中心的ip地址。切换模块由dnspod提供给告警主机。

dnspod是中国第一大dns解析服务提供商、第一大域名托管商。它除了实时生效、不限制用户添加的域名和记录数量、提供url转发、搜索引擎优化、域名共享管理、域名锁定、ipv6的支持、动态域名解析、api接口、批量修改管理等先进功能外,还拥有:云dns、dnspoddnsprotector(dnspod自主研发的dns防护软件)、宕机监控、安全中心、7*24小时专业技术支持。并且所有功能都是免费向所有用户提供。

步骤s5.3具体为:

s5.3.1、在zabbixagnet设置shell自定义脚本;

s5.3.2、操作类型远程命令调用zabbixagnet执行shell自定义脚本触发切换模块;

s5.3.3、切换模块调用接口程序通过record.modifyapi接口修改http状态码为“非200”状态的拨测主机绑定的数据中心的ip地址的记录值。

本实施例中,接口程序为python接口程序,版本号为2.7。python接口通过名称为flask的python微框架编写。

例如对接口地址为:https://dnsapi.cn/record.modify,record.modifyapi接口修改方式具体为:

curl-xposthttps://dnsapi.cn/record.modify-d'login_token=login_token&format=json&domain_id=2317346&record_id=16894439&sub_domain=www&value=3.2.2.2&record_type=a&record_line_id=10%3d0'。

当触发告警主机a执行切换时,将dnspod数据中心a的记录值ip1=1.1.1.1,切换为数据中心b的记录值ip2=2.2.2.2;当触发告警主机b执行切换时,将dnspod数据中心b的记录值ip2=2.2.2.2修改为数据中心a的记录值ip1=1.1.1.1。完成切换。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1