基于分布式集群的日志级别动态调整方法技术

技术编号:24102923 阅读:27 留言:0更新日期:2020-05-09 13:58
本发明专利技术公开了一种基于分布式集群的日志级别动态调整方法,包括步骤客户端启动,扫描本地的日志记录器信息;分布式集群内的每一个应用程序均向日志级别调整服务端同步实例日志级别信息;参数合法性的校验后发送广播主题消息到消息中间件;消息中间件发送日志级别调整消息到客户端;判断消息中的应用程序名称是否与本地配置应用程序名称符合、本地实例IP是否在消息体中的列表中、消息中的令牌是否与本地的令牌相符,对分布式集群内的全部应用程序进行日志级别调整;如果消息中的日志记录器名称合法且日志级别调整成功,将实例最新的日志级别信息同步到日志级别调整服务端。本发明专利技术通过分布式集群统一管理日志级别。

Dynamic adjustment method of log level based on Distributed Cluster

【技术实现步骤摘要】
基于分布式集群的日志级别动态调整方法
本专利技术涉及计算机
,更具体地,涉及一种基于分布式集群的日志级别动态调整方法。
技术介绍
随着网络系统管理平台领域的快速发展,业务复杂度不断增加,线上系统环境有任何细小波动,对整个外卖业务都可能产生巨大的影响,甚至形成灾难性的雪崩效应,造成巨大的经济损失。如何提高排查问题的效率呢?最有效的方式是通过分析系统日志。如果系统日志全面,会为我们排查解决线上问题带来绝大的帮助,但是要想保证系统日志全面,就必须打印出所有的系统或业务日志。这样就会带来另一个问题,那就是日志量的暴涨,过多的日志除了能够帮助解决问题外,同时会直接造成系统性能下降,极端情况下,甚至导致系统宕机。在这种背景下,为了兼顾性能和快速响应线上问题,需要实时调整线上日志输出级别。现有技术中网络系统管理平台领域上的日志级别动态调整技术采用的都是:集群中的每个实例都提供http/https协议的日志级别调整接口,通过调取接口来调整日志级别,专利技术人发现现有技术中至少存在如下问题:1、安全风险系数高:暴露http/https协议的日志级别调整接口,存在系统日志级别调整接口被恶意调用的风险,同时需暴露集群服务器的真实IP,存在安全隐患;2、集群场景下操作重复繁琐,操作极其不友好:没有统一的界面用来实时观察应用集群下各个实例的日志级别状态;集群中包含多个实例,如果需要更改应用的日志级别,则需要拿到每台实例的IP,依次调用集群中每个实例的日志级别调整API,实现更改集群下应用日志级别的效果,实例越多,重复度越高;不可复用:企业项目众多,每个项目都需单独开发提供日志级别调整接口,重复工作繁琐,效率低。
技术实现思路
有鉴于此,本专利技术提供了一种基于分布式集群的日志级别动态调整方法,应用于客户端和日志级别调整服务端,包括步骤:客户端启动,扫描本地的日志记录器信息;分布式集群内的每一个应用程序均向日志级别调整服务端同步实例日志级别信息;所述日志级别调整服务端对其中一个实例日志级别信息进行验证参数合法性;所述日志级别调整服务端进行参数合法性的校验后,发送广播主题消息到消息中间件,消息中包括目标应用程序名称,目标应用程序下的实例IP列表,目标日志记录器和更新的目标日志级别;消息中间件发送日志级别调整消息到所述客户端;所述客户端收到消息中间件发送的日志级别调整消息后,判断消息中的应用程序名称是否与本地配置应用程序名称符合,当判断消息中的应用程序名称与本地配置应用程序名称符合时,继续判断本地实例IP是否在消息体中的IP列表中,当判断本地实例IP在消息体中的IP列表中时,判断消息中的令牌是否与本地的令牌相符,当判断消息中的令牌与本地的令牌相符时,则根据消息中的日志记录器名称和日志记录器级别对分布式集群内的全部应用程序进行日志级别调整;如果消息中的日志记录器名称合法且日志级别调整成功,将实例最新的日志级别信息同步到所述日志级别调整服务端。可选的,扫描本地的日志记录器信息的同时,将所述日志记录器信息维护到名为LoggerMap的HashMap中,所述HashMap采用数组和链表的数据结构,存储的内容包括键值对key和value的映射,HashMap的key值为日志名称、value值为日志级别信息。可选的,所述分布式集群内的每一个应用程序均向日志级别调整服务端同步实例日志级别信息,包括通过RPC接口或HTTP接口同步实例的日志级别信息到日志级别调整服务端,其中接口参数包括应用程序名称、实例IP、承载本实例日志级别信息的LoggerMap。可选的,所述日志级别调整服务端对其中一个实例日志级别信息进行验证参数合法性包括:验证参数应用程序名称是否注册过,当应用程序名称已经注册过,则在一个事务中更新日志级别调整服务端日志级别消息标的数据,以应用程序名称和实例IP为条件删除所有日志记录器记录,然后将LoggerMap中的日志信息插入到表中。可选的,其特征在于,还包括步骤验证参数应用程序名称是否注册过,当应用程序名称未注册过时,同步响应提示信息,进行应用程序注册。可选的,其特征在于,所述消息中间件接收到广播主题消息后,将会保证该消息被每个监听该主题的客户端至少消费该消息一次。可选的,其特征在于,当判断消息中的应用程序名称是否与本地配置APP名称符合、判断本地实例IP是否在消息体中的IP列表中、判断消息中的令牌是否与本地的令牌相符时,至少其中之一判断结果为不相符,客户端不消费该消息。可选的,其特征在于,还包括:当本地实例中不存在日志记录器名称时,不更新日志级别,将实例最新的日志级别信息同步到日志级别调整服务端。可选的,所述日志记录器根据行为包括的日志级别从高到低从分为:ERROR、WARN、INFO、DEBUG。可选的,所述消息中间件采用发布/订阅模式进行异步数据传输。与现有技术相比,本专利技术提供的基于分布式集群的日志级别动态调整方法,至少实现了如下的有益效果:本专利技术通过分布式集群统一管理日志级别:集群下每个实例向日志管理后台注册日志级别信息,统一界面实时观察应用集群下各个实例的日志级别状态,用户一次操作可以修改指定APP的指定Logger下部分(一个或多个)实例(集群下的主机)的日志级别;本专利技术无需重复开发,简单配置:使用此功能仅需引入工具jar包,监听日志级别管理平台的MQ主题,无额外开发工作,侵入性低;本专利技术安全性隐秘性好:日志级别调整功能只允许由内网触发,同时保证每个系统都有单独的令牌,保证系统无法被他人更改日志级别。当然,实施本专利技术的任一产品必不特定需要同时达到以上所述的所有技术效果。通过以下参照附图对本专利技术的示例性实施例的详细描述,本专利技术的其它特征及其优点将会变得清楚。附图说明被结合在说明书中并构成说明书的一部分的附图示出了本专利技术的实施例,并且连同其说明一起用于解释本专利技术的原理。图1是实施例1中基于分布式集群的日志级别动态调整方法流程图;图2是实施例2中基于分布式集群的日志级别动态调整方法执行图;图3是实施例2中日志级别调整服务端和App系统的交互图;图4是实施例2中App实例启动时将日志级别信息注册到日志级别调整服务端的示意图。具体实施方式现在将参照附图来详细描述本专利技术的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本专利技术的范围。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本专利技术及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。应注意到本文档来自技高网
...

【技术保护点】
1.一种基于分布式集群的日志级别动态调整方法,其特征在于,应用于客户端和日志级别调整服务端,包括步骤:/n客户端启动,扫描本地的日志记录器信息;/n分布式集群内的每一个应用程序均向日志级别调整服务端同步实例日志级别信息;/n所述日志级别调整服务端对其中一个实例日志级别信息进行验证参数合法性;/n所述日志级别调整服务端进行参数合法性的校验后,发送广播主题消息到消息中间件,消息中包括目标应用程序名称,目标应用程序下的实例IP列表,目标日志记录器名称和更新的目标日志级别;/n消息中间件发送日志级别调整消息到所述客户端;/n所述客户端收到消息中间件发送的日志级别调整消息后,判断消息中的应用程序名称是否与本地配置应用程序名称符合,当判断消息中的应用程序名称与本地配置应用程序名称符合时,继续判断本地实例IP是否在消息体中的IP列表中,当判断本地实例IP在消息体中的IP列表中时,判断消息中的令牌是否与本地的令牌相符,当判断消息中的令牌与本地的令牌相符时,则根据消息中的日志记录器名称和日志记录器级别对分布式集群内的全部应用程序进行日志级别调整;/n如果消息中的日志记录器名称合法且日志级别调整成功,将实例最新的日志级别信息同步到所述日志级别调整服务端。/n...

【技术特征摘要】
1.一种基于分布式集群的日志级别动态调整方法,其特征在于,应用于客户端和日志级别调整服务端,包括步骤:
客户端启动,扫描本地的日志记录器信息;
分布式集群内的每一个应用程序均向日志级别调整服务端同步实例日志级别信息;
所述日志级别调整服务端对其中一个实例日志级别信息进行验证参数合法性;
所述日志级别调整服务端进行参数合法性的校验后,发送广播主题消息到消息中间件,消息中包括目标应用程序名称,目标应用程序下的实例IP列表,目标日志记录器名称和更新的目标日志级别;
消息中间件发送日志级别调整消息到所述客户端;
所述客户端收到消息中间件发送的日志级别调整消息后,判断消息中的应用程序名称是否与本地配置应用程序名称符合,当判断消息中的应用程序名称与本地配置应用程序名称符合时,继续判断本地实例IP是否在消息体中的IP列表中,当判断本地实例IP在消息体中的IP列表中时,判断消息中的令牌是否与本地的令牌相符,当判断消息中的令牌与本地的令牌相符时,则根据消息中的日志记录器名称和日志记录器级别对分布式集群内的全部应用程序进行日志级别调整;
如果消息中的日志记录器名称合法且日志级别调整成功,将实例最新的日志级别信息同步到所述日志级别调整服务端。


2.根据权利要求1所述的基于分布式集群的日志级别动态调整方法,其特征在于,扫描本地的日志记录器信息的同时,将所述日志记录器信息维护到名为LoggerMap的HashMap中,所述HashMap采用数组和链表的数据结构,存储的内容包括键值对key和value的映射,HashMap的key值为日志名称、value值为日志级别信息。


3.根据权利要求2所述的基于分布式集群的日志级别动态调整方法,其特征在于,所述分布式集群内的每一个应用程序均向日志级别调整服务端同步实例日志级别信息,包括通过RPC接口或HTTP接口同步实例的日志级别信息到日志级别调整服务端,其中接口参数...

【专利技术属性】
技术研发人员:滕飞李昭陈浩高靖崔岩卢述奇陈呈张宵
申请(专利权)人:青梧桐有限责任公司
类型:发明
国别省市:上海;31

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

1