一种监控系统中的被监控主机、监控系统以及监控方法与流程

文档序号:12067857阅读:259来源:国知局
一种监控系统中的被监控主机、监控系统以及监控方法与流程

本申请涉及网络技术领域,特别涉及一种监控系统中的被监控主机、监控系统以及监控方法。



背景技术:

Zabbix是一个开源分布式监控系统,可以对网络设备进行数据监控。如图1所示,Zabbix监控系统中包括服务主机和若干个被监控主机,图1中仅显示一个被监控主机。服务主机中包括Zabbix网络(即web)图形用户界面(Graphical User Interface,GUI),Zabbix数据库和Zabbix服务端。Zabbix实现的一种设备监控方案中,在被监控主机中安装Zabbix客户端和监控脚本。用户通过Zabbix网络GUI在Zabbix服务端中添加监控项等一些配置信息,在监控客户端的配置文件中配置监控项的key和对应的监控脚本。Zabbix客户端会从Zabbix服务端中同步监控项等一些配置信息,根据这些配置信息调度对应的监控脚本采集监控数据,并把采集到的监控数据上报给Zabbix服务端。Zabbix服务端将收到的监控数据存入到Zabbix数据库,用户通过Zabbix网络GUI可以查看监控数据的结果。

被监控主机上运行有服务进程,用户通过服务进程与主机外面的业务系统交互,所述业务系统可以为通信系统、数据库系统或者web服务系统等等。由于Zabbix系统只对被监控主机自身进行监控,当被监控主机与业务系统之间的链路发生故障或者业务系统发生故障时,Zabbix系统无法及时发现该故障。例如,被监控主机可以与通信系统相连,被监控主机可以连接到运营商的短消息网关,使用所述被监控主机的用户通过短消息网关发送短消息。但是被监控主机与短消息网关之间的通信链路发生故障或者短消息网关本身发生故障,用户无法通过被监控主机发送短消息,从而造成用户的短消息业务失败,由于被监控主机自身没有发生故障,Zabbix系统无法及时获知用户的短消息业务故障,从而无法及时向管理员或用户上报短消息故障信息。



技术实现要素:

本申请实施例提供一种监控系统中的被监控主机、监控系统以及监控方法,用以解决被监控主机与业务系统之间的链路发生故障或者业务系统发生故障时,监控系统无法及时发现该故障的问题。

本申请实施例提供的具体技术方案如下:第一方面,提供一种监控系统中的被监控主机,该被监控主机包括监控客户端、代理工具模块以及业务模块,所述代理工具模块向所述业务模块提供服务接口,所述业务模块记录每种业务失败类别关联的一个key,以及与key一一对应的故障描述参数集;代理工具模块记录key与模板文件的对应关系,所述模板文件中包括所述key对应的故障描述参数集;当业务模块与主机外部的业务系统交互失败时,所述业务模块通过所述服务接口向代理工具模块发送业务失败对应的key以及本次失败对应的故障描述参数的取值;代理工具模块将所述各个故障描述参数的取值写入所述key对应的模板文件,生成并向监控服务端上报监控信息。本发明实施例通过在被监控主机中新增代理工具模块,由代理工具模块向业务模块提供服务接口,定义了业务模块在业务失败后的故障上报流程,实现了监控系统对非被监控主机故障引起的业务失败的监控。业务模块无需与监控系统耦合,业务模块只需要根据自身的业务异常场景定义出key和该异常场景所需要的JSON格式的所有故障描述参数即可。

在一种可能的设计中,所述代理工具模块在将所述各个故障描述参数的取值写入模板文件之后,生成value,所述value为所述各个故障描述参数的取值对应的字符串;相应地,所述监控信息包括本次业务失败的类别对应的key以及所述value。

在另一种可能的设计中,所述代理工具模块可以通过调用所述监控客户端的命令行工具,将所述监控信息上报给所述监控服务端;或者,所述代理工具模块将所述监控信息发送给所述监控客户端,以使得所述监控客户端将所述监控信息发送给所述监控服务端。

在另一种可能的设计中,所述代理工具模块通过所述服务接口向所述业务模块提供本地环回地址,接收所述业务模块通过HTTP方式传递的所述业务故障信息。

所述故障描述参数可以采用JSON对象。

在一种可能的场景中,本发明实施例通过对模板文件和JSON对象的组合变化,可以根据需要自定义监控信息的内容和格式,向监控服务端上报自定义的监控信息,方便系统管理员查看详细的业务异常情况。再一方面,由于业务模块与代理工具模块之间采用无状态的HTTP通信,即使监控系统的进程发生故障,也不会影响到业务模块,从而不会对用户的业务产生影响,保障了业务的安全。

所述代理工具模块,还可以执行流控策略,限定同一类别的业务失败的上报频率。所述流控策略包括限定同一key值对应的监控信息的上报频率不大于预设值。

所述代理工具模块与所述监控客户端合设。

第二方面,提供一种监控系统,包括:监控客户端、代理工具模块以及监控服务端,所述监控客户端以及所述代理工具模块运行在被监控主机上,所述代理工具模块向业务模块提供服务接口;其中,所述所述代理工具模块具有实现上述第一方面中所述的所述代理工具模块的功能。

第三方面,提供一种监控方法,与前述第一方面相对应,业务模块、代理工具模块以及监控服务端执行第一方面中的对应模块的功能。

第四方面,提供了另一种监控系统中的被监控主机,该监控系统中的被监控主机具有实现上述第一方面和任一种可能的设计中被监控主机行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,该监控系统中的被监控主机包括收发器和处理器,其中,处理器用于调用一组程序代码,以执行如第二方面和任一种可能的设计中所述的方法。

第五方面,提供了一种计算机存储介质,用于储存为上述方面所述的被监控主机所用的计算机软件指令,其包含用于执行上述方面所设计的程序。

附图说明

图1为现有技术中Zabbix监控系统架构图;

图2为本申请实施例中监控系统架构图;

图3为本申请实施例中监控方法的流程示意图;

图4为本申请实施例中监控系统中的被监控主机硬件结构示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步描述。

如图2所示,为本发明实施例提供的一种监控系统结构示意图,该监控系统包括被监控主机11和监控服务端12,监控系统通过网络13与业务系统14相连,具体的,被监控主机包括监控客户端111、代理工具模块112以及业务模块113。其中,所述代理工具模块112向所述业务模块113提供服务接口,所述业务模块113通过所述服务接口与所述代理工具模块112交互,所述业务模块113通过调用业务系统14的接口与业务系统交互。

在一种可能的场景中,用户登录所述被监控主机11,运行主机11上的应用,该应用通过所述业务模块113接入到外部业务系统14,访问业务系统14提供的业务。例如,业务系统14可以为短消息系统,业务模块113通过网络13连接到业务系统14的短消息中心,通过短消息中心对外发送短消息。

当主机11本身运行正常,主机与业务系统14之间的链路故障或者业务系统14故障,导致用户无法正常使用短消息业务时,监控服务端需要及时获知该故障的发生,为了实现上述目的,在本发明实施例中,在主机11上新增代理工具模块112,代理工具模块112提供服务接口给业务模块113,在业务模块113检测到业务失败时,通过所述服务接口向代理工具模块112上报业务失败信息,从而通过代理工具模块112实现将业务失败的监控信息上报给监控服务端。

在一种可能的场景中,主机11可以为物理服务器集群中的任一物理服务器,该物理服务器集群可以为云计算物理服务器集群,对用户提供云服务;在另一种可能的场景中,主机11可以为独立的物理服务器。监控服务端12可以运行在独立的物理服务器上。

在一种可能的设计中,所述业务模块113可以为服务进程,用于处理业务。示例性的,该业务模块113可以为与短消息中心通信的NS(notification service)进程。

所述业务模块113连接外部业务系统14,访问业务系统14提供的业务。当业务访问失败时,所述业务模块113确定业务失败的类别,以及业务失败的故障描述参数集。

需要说明的是,业务失败的类别表示引起业务失败的因素。示例性的,业务失败的类别可以包括链路故障、账号不合法或业务系统故障等等,故障描述参数集可以包括进程标识、业务系统地址以及故障指示等等可以准确描述业务失败原因的参数的集合。不同的业务失败类别可以对应不同的故障描述参数集。本领域技术人员可以理解的是,业务失败的类别和故障描述参数集可以根据不同的场景进行灵活的定义,本发明实施例并不将所述业务失败的类别限定为上述举例。

进一步的,监控系统可以使用key-value的格式描述监控信息。此时,在监控系统开始运行前,所述业务模块113可以记录每种业务失败类别关联的一个key,以及与key一一对应的故障描述参数集,所述业务模块113将各个业务失败类别对应的key以及与key一一对应的故障描述参数集发送给代理工具模块112。在一种可能的设计中,针对每种业务失败类别分配一个key,所述key可以唯一标识该业务失败类别。例如,业务失败类别为连接超时、链路无响应、链路端口故障等等,对应的key可以自由设定,也可以依据任务的定义规则设定。

所述代理工具模块112记录key与模板文件的对应关系,所述模板文件中包括所述key对应的故障描述参数集。

在一种可能的设计中,所述代理工具模块112对业务模块113提供RESTful接口,接口的请求内容可以是任意的JSON(JavaScript Object Notation)格式数据。所述代理工具模块112生成模板文件,故障描述参数集中的各个故障描述参数为模板文件中的元数据。一个业务失败类型可以对应一个模板文件。其中,JSON对象为一种轻量级的数据交换的语法格式,关于JSON的具体说明请参阅https://www.w3.org/TR/json-ld/。

所述业务模块113通过网络13与业务系统14交互,当业务失败时,通过所述服务接口向所述代理工具模块112发送业务故障信息,所述业务故障信息包括本次业务失败的类别对应的key以及故障描述参数集中各个故障描述参数的取值,其中,各个故障描述参数的取值可以准确表示本次业务失败的信息,包括业务名称以及失败原因等等,具体的,可以通过进程标识来表示业务名称。

所述代理工具模块112通过所述服务接口接收所述业务模块113发送的业务故障信息,根据所述对应关系查找所述key对应的模板文件,将所述各个故障描述参数的取值写入模板文件,生成监控信息。

在一种可能的设计中,所述代理工具模块112读取业务模块113(服务进程)调用RESTful接口提供的JSON格式的数据,各个故障描述参数的取值写入到模板文件中,并生成最终的监控信息。具体的,所述代理工具模块112根据写入后的模板文件生成value,所述value为所述各个故障描述参数的取值对应的字符串,相应地,所述监控信息包括本次业务失败的类别对应的key以及所述value。

所述代理工具模块112通过所述监控客户端111将生成的监控信息上报给监控服务端12。

所述代理工具模块112可以通过同步或异步的方式调用所述监控客户端111的命令行工具,将所述监控信息上报给所述监控服务端12;或者,所述代理工具模块112将所述监控信息发送给所述监控客户端111,以使得所述监控客户端111将所述监控信息发送给所述监控服务端12。

为提供监控系统的监控效率,避免同一故障重复、高频率的上报,所述代理工具模块112还可以具备流控功能,限制同一种监控信息重复发送的次数。例如,所述代理工具模块112执行流控策略,所述流控策略包括限定同一key值对应的监控信息的上报频率不大于预设值。本领域技术人员理解的是,上述预设值可以根据需求由系统管理员灵活设定,优选的,上报频率可以根据业务重要性进行设定。

在一种可能的设计中,所述代理工具模块112可以单独部署,也可以与监控客户端111合并部署。

所述代理工具模块112通过RESTful服务接口向所述业务模块113提供本地环回地址(如:127.0.0.1),接收所述业务模块113通过超文本传输协议(HTTP,HyperText Transfer Protocol)方式传递的业务故障信息。具体的,关于具象状态传输(Representational state transfer,REST)架构和RESTful接口的说明可以参阅https://zh.wikipedia.org/wiki/REST以及https://en.wikipedia.org/wiki/RESTful。

本申请实施例提供一种监控系统中的被监控主机11,在该主机11中新增了代理工具模块112(AgentTool),通过上述方案,解决了解决业务模块113在业务失败后的故障上报问题。一方面,业务模块113无需与监控系统耦合,业务模块113只需要根据自身的业务异常场景定义出key和该异常场景所需要的JSON格式的所有故障描述参数即可。另一方面,通过对模板文件和JSON对象的组合变化,可以根据需要自定义监控信息的内容和格式,向监控服务端上报自定义的监控信息,方便系统管理员查看详细的业务异常情况。再一方面,由于业务模块113与代理工具模块112之间采用无状态的HTTP通信,即使监控系统的进程发生故障,也不会影响到业务模块,从而不会对用户的业务产生影响,保障了业务的安全。

在本发明实施例中,所述监控系统可以为Zabbix系统,前述的命令行工具可以为Zabbix Sender,可以传递Key/Value参数。

基于图2所示的监控系统的架构,下面将对本申请实施例提供的监控方法进行说明。

参阅图3所示,为本申请实施例提供的一种监控方法。

步骤301:业务模块通过网络接入业务系统,根据业务可能存在的异常情况,确定业务失败类别对应的key以及业务失败的故障描述参数集。

业务失败的类别表示引起业务失败的因素。示例性的,业务失败的类别可以包括链路故障、账号不合法或业务系统故障等等,故障描述参数集可以包括进程标识、业务系统地址以及故障指示等等可以准确描述业务失败原因的参数的集合。不同的业务失败类别可以对应不同的故障描述参数集。故障描述参数集中的各个故障描述参数可以采用JSON格式。

示例如下:

Key:smn-001-001

JSON体:故障描述参数集

{

"Subject":"Channel Checking",

"ServiceName":"SMN-NS"

"ServiceAddress":"127.0.0.1"

"Error":"Error"

}

步骤302:业务模块将将各个业务失败类别对应的key以及与key一一对应的故障描述参数集发送给代理工具模块。

在一种可能的设计中,所述代理工具模块对业务模块提供RESTful接口。

步骤303:代理工具模块接收业务模块发送的key以及与key一一对应的故障描述参数集,记录key与模板文件的对应关系,所述模板文件中包括所述key对应的故障描述参数集。

所述代理工具模块生成模板文件,故障描述参数集中的各个故障描述参数为模板文件中的动态变量,用于表示元数据。一个业务失败类型可以对应一个模板文件。

模板文件示例:

步骤304:系统管理员通过监控系统的图形用户界面登录监控服务端,创建key以及监控指标。

在一种可能的设计中,代理工具模块可以将key以及故障描述参数集发送给监控服务端,监控服务端创建key以及监控指标,所述监控指标可以为文本格式,用于呈现接收到的监控信息。

步骤305:业务模块通过网络访问业务系统,当发现业务失败时,调用代理工具模块提供的服务接口,向代理工具模块发送业务故障信息,所述业务故障信息包括本次业务失败的类别对应的key以及故障描述参数集中各个故障描述参数的取值,其中,各个故障描述参数的取值可以准确表示本次业务失败的信息,包括业务名称以及失败原因等等。

步骤306:代理工具模块通过所述服务接口接收所述业务模块发送的业务故障信息,根据所述对应关系查找所述key对应的模板文件,将所述各个故障描述参数的取值写入模板文件,生成监控信息。

步骤307:代理工具模块将监控信息发送给监控服务端。

具体的,代理工具模块读取故障描述参数集中JSON格式的数据,将各个故障描述参数的取值写入到模板文件中生成value,所述value为所述各个故障描述参数的取值对应的字符串。代理工具模块将业务失败类型对应的key以及生成的所述value作为命令行工具的入参,调用监控客户端的命令行工具将监控信息(即所述key以及生成的所述value)发送给监控服务端。

具体的,代理工具模块可以通过同步或异步的方式调用所述监控客户端的命令行工具,将所述监控信息上报给所述监控服务端;或者,所述代理工具模块将所述监控信息发送给所述监控客户端,以使得所述监控客户端将所述监控信息发送给所述监控服务端。

所述代理工具模块与所述监控服务端之间可以采用基于JSON的远程调用协议(JSON-remote protocol call,JSON-RPC)。

监控信息示例如下:

key:smn-001-001

value:

Senior Alert:Channel Checking

Components SMN-NS 127.0.0.1

Error:Can not connect channel

步骤308:监控服务端接收监控信息,确定业务失败时,触发告警,通知系统管理员。

本发明实施例通过在被监控主机中新增代理工具模块,由代理工具模块向业务模块提供服务接口,定义了业务模块113在业务失败后的故障上报流程,实现了监控系统对非被监控主机故障引起的业务失败的监控。一方面,业务模块无需与监控系统耦合,业务模块只需要根据自身的业务异常场景定义出key和该异常场景所需要的JSON格式的所有故障描述参数即可。另一方面,通过对模板文件和JSON对象的组合变化,可以根据需要自定义监控信息的内容和格式,向监控服务端上报自定义的监控信息,方便系统管理员查看详细的业务异常情况。再一方面,由于业务模块与代理工具模块之间采用无状态的HTTP通信,即使监控系统的进程发生故障,也不会影响到业务模块,从而不会对用户的业务产生影响,保障了业务的安全。

与前述监控系统和监控方法相对应,本发明实施例提供了一种被监控主机,包括前述的监控客户端、代理工具模块以及业务模块。被监控主机中的各模块执行前述监控系统以及监控方法中的功能,本发明实施例再次不再赘述。

与前述监控系统和监控方法相对应,本发明实施例提供了另一种被监控主机,包括前述的监控客户端以及代理工具模块。被监控主机中的各模块执行前述监控系统以及监控方法中的功能,本发明实施例再次不再赘述。此时业务模块可以位于与被监控主机存在网络连接关系的另一主机上。

基于同一发明构思,参阅图4所示,本申请实施例还提供了另一种监控系统中的被监控主机400,包括收发器401、处理器402、存储器403,收发器401、存储器403均与处理器402连接,需要说明的是图4所示的各部分之间的连接方式仅为一种可能的示例,也可以是,收发器401与存储器403均与处理器402连接,且收发器401与存储器403之间没有连接,或者,也可以是其他可能的连接方式。

其中,存储器403中存储一组程序,处理器402用于调用存储器403中存储的程序,以执行前述图2以及图3所示的监控系统和监控方法中被监控主机的各模块的功能。

在图4中,处理器402可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。

处理器402还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic array logic,缩写:GAL)或其任意组合。

存储器401可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器401也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器401还可以包括上述种类的存储器的组合。

监控服务端所在的物理服务器也可以采用如图4所示的硬件结构。本发明实施例不再赘述。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

这些计算机程序代码可以存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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