基于token认证的日志级别动态调整方法技术

技术编号:24215999 阅读:83 留言:0更新日期:2020-05-20 19:10
本发明专利技术公开了一种基于token认证的日志级别动态调整方法,涉及计算机技术领域。该方法的一具体实施方式包括:客户端启动在本地配置文件中自定义配置令牌,令牌为静态令牌或者为动态令牌;分布式集群内的每一个应用程序均向日志级别调整服务端同步实例日志级别信息;日志级别调整服务端对其中一个实例日志级别信息进行验证参数合法性;发送广播主题消息到消息中间件;判断消息中的应用程序名称是否与本地配置应用程序名称符合、本地实例IP是否在消息体的IP列表中、令牌是否与本地令牌相符,对分布式集群内的全部应用程序进行日志级别调整;将实例最新的日志级别信息同步到日志级别调整服务端。本发明专利技术提高了日志级别动态调整的安全性。

Dynamic adjustment of log level based on token authentication

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

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

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


2.根据权利要求1所述的基于token认证的日志级别动态调整方法,其特征在于,当所述令牌为静态令牌时,所述静态令牌为通用唯一识别码。


3.根据权利要求1所述的基于token认证的日志级别动态调整方法,其特征在于,所述分布式集群内的每一个应用程序均向日志级别调整服务端同步实例日志级别信息,包括通过远程过...

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

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

1