一种分布式业务的监控告警方法及装置制造方法及图纸

技术编号:20520004 阅读:25 留言:0更新日期:2019-03-06 03:46
本发明专利技术实施例的目的在于提供了一种分布式业务的监控告警方法,包括在应用程序的预定义代码片段部署业务监控节点,以监控代码运行;当代码运行发生异常时捕获异常消息;根据捕获的异常消息产生相应告警。在实际业务代码段进行监控,不仅能了解业务进程的存活情况,也能体现内部逻辑的运行情况,能达到完善的监控目的。并且,开发人员可以根据预设规则合理的布置监控节点,提高了监控的准确性和灵活性。另外,本发明专利技术也不需要单独编写监控接口,大大降低了监控的部署及开发成本。本发明专利技术还公开了一种分布式业务的监控告警装置。

【技术实现步骤摘要】
一种分布式业务的监控告警方法及装置
本专利技术属于计算机
,尤其涉及一种分布式业务的监控告警方法及装置。
技术介绍
随着大数据技术的发展,单一的计算能力已经无法满足日渐增加的数据需求,分布式计算能力显得尤为重要,如何保障分布式计算能力的正常、可靠运行,以及非正常运行后的告警恢复机制,是目前监控系统
关注的重点。现有的分布式业务的监控告警技术包括:(1)在每台业务终端机器部署监控脚本,仅对业务进程是否存活进行监控,当发现监控的业务进程没有存活,会向监控中心上报此次失败信息,监控中心接受到此消息后,会读取预定义的告警配置并发送告警。(2)在每台业务终端机器提供单独的监控接口,监控中心需单独编写代码来调用各个业务终端机所提供的监控接口,以检查业务的可用性,如果调用接口过程中发现返回预先定义的失败状态协议,则读取告警配置并发送告警。上述方案的缺陷在于:(1)仅对业务进程进行存活监控,不能体现内部逻辑是否正常运行,不能达到完善的监控目的;而在各个机器部署监控脚本,可能会被中断,且部署耗时,不方便于集中调度管理。(2)对每台业务终端机器,开发人员都需要单独编写监控接口,增加了开发量;并且监控的完善性完全依赖于监控接口,不能体现实际业务是否运行正常,难以达到实际的监控目的。
技术实现思路
本专利技术实施例的目的在于提供了一种分布式业务的监控告警方法及系统,能够深入到业务内部,完善监控业务运行情况,且不需要在每台业务终端机部署监控脚本,也不需要单独编写监控接口,减轻了部署成本和开发成本。本专利技术公开了一种分布式业务的监控告警方法,包括以下步骤:S01,在应用程序的预定义代码片段部署业务监控节点,以监控代码运行;S02,当代码运行发生异常时捕获异常消息;S03,根据捕获的异常消息产生相应告警。进一步的,所述预定义代码片段包括:网络通信、数据库访问、第三方接口调用、文件读写、缓存服务访问、消息队列服务访问或各种服务中间件调用中的至少一种。进一步的,所述代码运行发生异常为导致应用程序不能正常运行的状态,代码运行发生异常包括:网络请求断开、数据库不能访问、第三方接口调用超时、文件读写失败、连接缓存系统失败、消息队列或各种中间件服务通信失败。进一步的,异常消息至少包括业务标识。进一步的,捕获的异常消息以消息队列形式传递。本专利技术还公开了一种分布式业务的监控告警装置,包括业务监控节点部署模块、异常消息捕获模块、告警模块,其中:业务监控节点部署模块,用于在应用程序的预定义代码片段部署业务监控节点,以监控代码运行;异常消息捕获模块,用于当代码运行发生异常时捕获异常消息;告警模块,用于根据捕获的异常消息产生相应告警。进一步的,所述预定义代码片段包括:网络通信、数据库访问、第三方接口调用、文件读写、缓存服务访问、消息队列服务访问或各种服务中间件调用中的至少一种。进一步的,所述代码运行发生异常为导致应用程序不能正常运行的状态,代码运行发生异常包括:网络请求断开、数据库不能访问、第三方接口调用超时、文件读写失败、连接缓存系统失败、消息队列或各种中间件服务通信失败。进一步的,异常消息至少包括业务标识。进一步的,所述监控告警装置还包括消息队列模块,用于接收异常消息捕获模块捕获的异常消息,并将其发送给告警模块。本专利技术相比于现有技术的有益效果在于,本专利技术在应用程序的预定义代码片段部署业务监控节点以监控代码运行,当代码运行发生异常时捕获异常消息,并产生告警。在实际业务代码段进行监控,不仅能了解业务进程的存活情况,也能体现内部逻辑的运行情况,能达到完善的监控目的。并且,开发人员可以根据预设规则合理的布置监控节点,提高了监控的准确性和灵活性。另外,本专利技术也不需要单独编写监控接口,大大降低了监控的部署及开发成本。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术一示例性实施例示出的一种分布式业务的监控告警方法的流程图。图2为本专利技术一示例性实施例示出的一种分布式业务的监控告警装置的结构示意图。图3为本专利技术另一示例性实施例示出的一种分布式业务的监控告警装置的结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优节点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,一种分布式业务的监控告警方法,包括以下步骤:S101,在应用程序的预定义代码片段部署业务监控节点,以监控代码运行。在应用程序中,主动的对可能发生异常且有监控意义的代码片段里代码片段部署业务监控节点,监控代码运行。如在网络通信、数据库访问、第三方接口调用、文件读写、缓存服务访问、消息队列服务访问、各种服务中间件调用等代码片段处部署业务监控节点。比如在一个学生信息系统里,有一个业务是从数据库读取某个学生的用户信息,则在数据库访问这一代码片段进行监控。可以理解的,数据库访问这段代码片段用于操作数据库这种服务组件,而如果数据库不能正常服务或访问数据库时不能正常通信,必然会造成相应代码片段异常,导致业务进程奔溃,因此需要在此处部署监控节点。又比如,对于一些需要获取授权用户信息的业务,如微博、微信等,是调用第三方接口通过网络来获取信息。而如果网络或第三方服务的不可用,必然会造成相应代码片段异常,导致业务进程奔溃,因此需要在此处部署监控节点。S102,当代码运行发生异常时捕获异常消息。代码运行发生异常主要指导致应用程序不能正常运行的状态。比如网络请求断开、数据库不能访问、第三方接口调用超时、文件读写失败、连接缓存系统失败、消息队列或各种中间件服务通信失败等等。以学生信息系统为例说明,当发现数据库访问这一代码片段发生异常,即数据不能访问,则捕获异常消息。捕获的异常消息至少包括业务名称,当然,还可以包括异常时间、事件标识、异常堆栈等。业务名称,为具有一定意义的能够描述此业务场景的标识,用于标识被告警人;异常时间可以为当前系统时间;事件标识,可以为用于区分一个业务中的多个监控点的标识;堆栈信息可以为发生异常的堆栈上下文调用信息,用于排查异常原因。基本的各种编程语言都有自己的捕获异常实现方式,比如在python语言中,捕获异常的方式为try,except;在php,java语言中捕获异常的方式为try,catch。为了方便对异常消息进行处理,优选将异常消息组成消息体,比如拼装成json消息体,形式如:{“业务名称”:“读取学生信息”,“异常时间:“xxxx-xx-xxxx:xx:xx”,“事件标识”:“数据库读取”,”异常堆栈”:”xx“}S103,根据捕获的异常消息产生相应告警。比如对S102过来的消息体进行decode操作,然后根据业务名称和预定义在配置文件中的业务名称和告警人信息的对应关系来读取配置中的告警人信息,产生相应告警。比如业务名称:{被告警人名称,被告警人通知方式,告警人地址},告警人名称为被告警人真实名称;被告警人通知方式可以为短信或邮件;被告警人地址可以为被告警人的邮件地址或电话号本文档来自技高网...

【技术保护点】
1.一种分布式业务的监控告警方法,其特征在于,包括以下步骤:在应用程序的预定义代码片段部署业务监控节点,以监控代码运行;当代码运行发生异常时捕获异常消息;根据捕获的异常消息产生相应告警。

【技术特征摘要】
1.一种分布式业务的监控告警方法,其特征在于,包括以下步骤:在应用程序的预定义代码片段部署业务监控节点,以监控代码运行;当代码运行发生异常时捕获异常消息;根据捕获的异常消息产生相应告警。2.如权利要求1所述的监控告警方法,其特征在于,所述预定义代码片段包括:网络通信、数据库访问、第三方接口调用、文件读写、缓存服务访问、消息队列服务访问或各种服务中间件调用中的至少一种。3.如权利要求1所述的监控告警方法,其特征在于,所述代码运行发生异常为导致应用程序不能正常运行的状态,代码运行发生异常包括:网络请求断开、数据库不能访问、第三方接口调用超时、文件读写失败、连接缓存系统失败、消息队列或各种中间件服务通信失败。4.如权利要求1所述的监控告警方法,其特征在于,所述异常消息至少包括业务标识。5.如权利要求1所述的监控告警方法,其特征在于,所述捕获的异常消息以消息队列形式传递。6.一种分布式业务的监控告警装置,其特征在于,包括业务监控节点部署模块、异常消息捕获模块...

【专利技术属性】
技术研发人员:沈鹏刘家鑫马志远
申请(专利权)人:武汉安天信息技术有限责任公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1