CN112306700A - 一种异常rpc请求的诊断方法和装置 - Google Patents

一种异常rpc请求的诊断方法和装置 Download PDF

Info

Publication number
CN112306700A
CN112306700A CN201910666131.6A CN201910666131A CN112306700A CN 112306700 A CN112306700 A CN 112306700A CN 201910666131 A CN201910666131 A CN 201910666131A CN 112306700 A CN112306700 A CN 112306700A
Authority
CN
China
Prior art keywords
abnormal
index
rpc request
log data
field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910666131.6A
Other languages
English (en)
Inventor
江鹤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201910666131.6A priority Critical patent/CN112306700A/zh
Publication of CN112306700A publication Critical patent/CN112306700A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种异常RPC请求的诊断方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:采集分布式系统的日志数据,从日志数据中提取影响异常RPC请求诊断的字段作为关键指标字段;在设定的窗口时间内,统计目标指标字段在日志数据中出现的次数,得到指标聚合结果;其中,目标指标字段包括从关键指标字段中选取的至少一个指标字段;将指标聚合结果与设定的异常规则进行匹配,若指标聚合结果满足异常规则的触发条件,则指标聚合结果对应的RPC请求为异常RPC请求。该方法通过在设定窗口时间内,对日志数据中的关键指标字段进行指标聚合统计,并将指标聚合结果与异常规则进行匹配,能够快速准确的定位异常RPC请求。

Description

一种异常RPC请求的诊断方法和装置
技术领域
本发明涉及计算机领域,尤其涉及一种异常RPC请求的诊断方法和装置。
背景技术
HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)是Hadoop项目的核心子项目,是一个高度容错性的系统,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。各业务线的用户可以通过RPC(Remote Procedure Call Protocol,远程过程调用协议)请求去访问HDFS上存储的数据。
由于HDFS自身对于RPC请求有访问次数限制,而用户访问HDFS上的数据具有很大的随意性,在某些情况下用户的访问行为,比如用户频繁读取一张超大表的历史数据时,会导致HDFS服务处于繁忙状态而无法提供稳定服务。
现有技术中,在HDFS服务处于繁忙状态的情况下,研发人员通常会通过查找异常任务提交或手工统计审计日志的方式去定位RPC请求访问过高的问题,进而解决相应问题以恢复HDFS正常服务。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
(1)通过查找异常任务提交的方式定位RPC请求访问过高的问题,需要研发人员具有相关异常任务的辨识能力;且使用该方式定位问题,准确性低;
(2)通过手工统计审计日志的方式,对于用户所操作路径的表信息等其他关键指标无法实时关联出结果;且使用该方式定位问题,时效性差。
发明内容
有鉴于此,本发明实施例提供一种异常RPC请求的诊断方法和装置,通过在设定窗口时间内,对日志数据中的关键指标字段进行指标聚合统计,并将指标聚合结果与异常规则进行匹配,能够快速准确的定位异常RPC请求。
为实现上述目的,根据本发明实施例的一个方面,提供了一种异常RPC请求的诊断方法。
本发明实施例的一种异常RPC请求的诊断方法,包括:采集分布式系统的日志数据,从所述日志数据中提取影响异常RPC请求诊断的字段作为关键指标字段;在设定的窗口时间内,统计目标指标字段在所述日志数据中出现的次数,得到指标聚合结果;其中,所述目标指标字段包括从所述关键指标字段中选取的至少一个指标字段;将所述指标聚合结果与设定的异常规则进行匹配,若所述指标聚合结果满足所述异常规则的触发条件,则所述指标聚合结果对应的RPC请求为异常RPC请求。
可选地,所述方法还包括:从所述关键指标字段中选取关联指标字段名称,通过所述关联指标字段名称将所述日志数据与外部维表数据相关联;从所述维表数据中获取所述日志数据中不存在,且影响异常RPC请求诊断的扩展指标字段,确定所述扩展指标字段对应的关联指标字段集;所述统计目标指标字段在所述日志数据中出现的次数,包括:统计目标指标字段在包含所述关联指标字段集的日志数据中出现的次数。
可选地,所述目标指标字段包括访问路径字段、用户组字段和集群名称字段,所述统计目标指标字段在所述日志数据中出现的次数,包括:统计所述日志数据中归属于同一集群、同一用户组、同一访问路径的日志记录的条数。
可选地,所述异常规则在异常规则库中定义,所述异常规则库包括下列任意一项或者多项异常规则:若写入/读取当前路径的次数大于等于设定第一阈值,则对应的操作请求为异常RPC请求;若当前操作耗时大于等于设定第二阈值,则对应的操作请求为异常RPC请求;若当前操作命令对应的访问路径为受保护路径,则对应的操作请求为异常RPC请求;若写入/读取的目标路径为不允许操作的路径,则对应的操作请求为异常RPC请求;若当前访问请求来自于不存在权限的用户标识,则所述当前访问请求为异常RPC请求。
可选地,所述从所述日志数据中提取影响异常RPC请求诊断的字段作为关键指标字段,包括:将所述日志数据中影响异常RPC请求诊断的字段进行格式转换,并过滤异常的日志记录,得到关键指标字段。
为实现上述目的,根据本发明实施例的另一方面,提供了一种异常RPC请求的诊断装置。
本发明实施例的一种异常RPC请求的诊断装置,包括:提取模块,用于采集分布式系统的日志数据,从所述日志数据中提取影响异常RPC请求诊断的字段作为关键指标字段;统计模块,用于在设定的窗口时间内,统计目标指标字段在所述日志数据中出现的次数,得到指标聚合结果;其中,所述目标指标字段包括从所述关键指标字段中选取的至少一个指标字段;匹配模块,用于将所述指标聚合结果与设定的异常规则进行匹配,若所述指标聚合结果满足所述异常规则的触发条件,则所述指标聚合结果对应的RPC请求为异常RPC请求。
可选地,所述装置还包括:关联添加模块,用于从所述关键指标字段中选取关联指标字段名称,通过所述关联指标字段名称将所述日志数据与外部维表数据相关联;以及从所述维表数据中获取所述日志数据中不存在,且影响异常RPC请求诊断的扩展指标字段,确定所述扩展指标字段对应的关联指标字段集;所述统计模块,还用于:统计目标指标字段在包含所述关联指标字段集的日志数据中出现的次数。
可选地,所述目标指标字段包括访问路径字段、用户组字段和集群名称字段,所述统计模块,还用于:统计所述日志数据中归属于同一集群、同一用户组、同一访问路径的日志记录的条数。
可选地,所述异常规则在异常规则库中定义,所述异常规则库包括下列任意一项或者多项异常规则:若写入/读取当前路径的次数大于等于设定第一阈值,则对应的操作请求为异常RPC请求;若当前操作耗时大于等于设定第二阈值,则对应的操作请求为异常RPC请求;若当前操作命令对应的访问路径为受保护路径,则对应的操作请求为异常RPC请求;若写入/读取的目标路径为不允许操作的路径,则对应的操作请求为异常RPC请求;若当前访问请求来自于不存在权限的用户标识,则所述当前访问请求为异常RPC请求。
可选地,所述提取模块,还用于:将所述日志数据中影响异常RPC请求诊断的字段进行格式转换,并过滤异常的日志记录,得到关键指标字段。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种异常RPC请求的诊断方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种异常RPC请求的诊断方法。
上述发明中的一个实施例具有如下优点或有益效果:通过在设定窗口时间内,对日志数据中的关键指标字段进行指标聚合统计,并将指标聚合结果与异常规则进行匹配,能够快速准确的定位异常RPC请求,无需人工查找异常任务;将日志数据与相应维表数据相关联,确定影响异常RPC请求诊断的扩展指标字段,进而完善实时计算数据,能够更针对性的优化集群服务能力、提高集群稳定性;分布式系统的稳定性受用户访问次数的限制,通过记录日志数据中用户访问某一路径的日志记录的条数,即可确定用户访问该路径的次数,方便后续进行规则匹配。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的异常RPC请求的诊断方法的主要步骤的示意图;
图2是根据本发明实施例的异常RPC请求的诊断方法的系统架构示意图;
图3是根据本发明实施例的异常RPC请求的诊断方法的主要流程示意图;
图4是根据本发明实施例的异常RPC请求的诊断装置的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适用于来实现本发明实施例的电子设备的计算机装置的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的异常RPC请求的诊断方法的主要步骤的示意图。如图1所示,本发明实施例的异常RPC请求的诊断方法,主要包括如下步骤:
步骤S101:采集分布式系统的日志数据,从所述日志数据中提取影响异常RPC请求诊断的字段作为关键指标字段。实时采集分布式系统中存储的日志数据,将日志数据中影响异常RPC请求诊断的字段进行格式转换,并过滤异常的日志记录,得到关键指标字段。实施例中,日志数据为审计日志数据,关键指标字段可以包括日志时间、业务线、用户标识、任务Id、操作命令、源文件的保存路径、耗时、集群等。
步骤S102:在设定的窗口时间内,统计目标指标字段在所述日志数据中出现的次数,得到指标聚合结果;其中,所述目标指标字段包括从所述关键指标字段中选取的至少一个指标字段。根据实际需求从关键指标字段中选取目标指标字段,按照目标指标字段的取值将日志数据进行聚合,以统计取值相同的日志记录的条数,该条数即为目标指标字段在日志数据中出现的次数。另外,由于日志数据不一定在产生后就能被读取到,故设定一个窗口时间,在窗口时间范围内到达的日志数据均会被聚合统计,确保统计结果与实际情况相符。
步骤S103:将所述指标聚合结果与设定的异常规则进行匹配,若所述指标聚合结果满足所述异常规则的触发条件,则所述指标聚合结果对应的RPC请求为异常RPC请求。将指标聚合结果中的每条记录分别与异常规则库中设定的异常规则进行匹配,若当前条记录满足某个异常规则的触发条件,则该条记录对应的RPC请求即为异常RPC请求。实施例中,首先根据现有经验归纳总结出异常规则,比如耗时超过10s,读写次数超过N次等,并将异常规则保存到异常规则库。随着后续新问题的出现以及分析解决,可以补充制定新的异常规则,并加入异常规则库。
图2是根据本发明实施例的异常RPC请求的诊断方法的系统架构示意图。如图2所示,本发明实施例的异常RPC请求的诊断方法可以由多个日志服务器、日志采集模块、数据存储模块、实时处理模块、实时存储引擎、监控告警模块和页面展示模块实现。
日志服务器中存储有HDFS的审计日志。数据采集模块用于采集审计日志,并进行缓存。数据存储模块用于存储维表数据和异常规则库;维表数据是指影响异常RPC请求诊断的,且无法直接从审计日志中获取的数据。
实时处理模块用于从缓存中获取审计日志,并提取关键指标字段;同时关联维表数据和异常规则库,从维表数据中获取扩展指标字段;之后根据需求从关键指标字段中确定出目标指标字段,并在设定的窗口时间内进行指标聚合和规则匹配,保存处理结果到实时存储引擎。
监控告警模块用于在诊断出异常RPC请求时,进行告警。页面展示模块用于实时展示RPC请求的诊断结果。其中,各指标字段均包括字段名称和字段值。
图3是根据本发明实施例的异常RPC请求的诊断方法的主要流程示意图。如图3所示,本发明实施例的异常RPC请求的诊断方法,主要包括如下步骤:
步骤S301:从日志服务器中实时采集HDFS的审计日志,存储审计日志。HDFS的审计日志中记录了用户对于HDFS的所有操作,包括日志时间、用户组、用户标识(erp)、任务Id、客户端IP地址、端口号、传输协议、操作命令、源文件、目标文件、耗时、集群等。对于用户的每一个操作,HDFS的NameNode(主节点)都会将这些信息以key-value(键值对)的形式组织成固定格式的一条日志,然后记录到audit.log(审计日志)文件中。一条日志记录对应一个RPC请求。
通过审计日志,我们可以实时查看HDFS的各种操作状况、可以追踪各种误操作、可以做一些指标监控等。实施例中,可以在每台记录有HDFS审计日志的日志服务器中部署日志采集代理程序,实时监听审计日志的输出,同时实时发送至数据缓存系统进行存储,后续即可以基于上述审计日志定位RPC请求过高的问题。
步骤S302:读取存储的审计日志,从审计日志中提取与异常RPC请求相关联的字段作为关键指标字段。审计日志中包含很多字段,需要从其中取出与异常RPC请求相关联的字段来进行统计分析。实施例中,将其中与异常RPC请求相关联的字段进行数据处理后,作为关键指标字段保留,将其他与异常RPC请求不相关的字段去除。其中,关键指标字段可以包括:日志时间(格式化为分钟级)、业务线、用户标识、任务Id、操作命令、源文件的四级目录、耗时、集群。
实施例中,由于将审计日志存储到了数据缓存系统,故可以通过在大数据集群,比如在Hadoop集群中部署实时计算程序,并接入该数据缓存系统,以流的形式实时读取该数据缓存系统的审计日志,方便后续进行实时分析处理。由于读取得到的审计日志是原始未经处理的数据,为了符合后续数据处理需求,还需要对审计日志进行数据转换、数据过滤等处理,以得到上述关键指标字段。下面进行详细说明。
为了符合后续聚合的要求,需要根据实际需求,将审计日志中与异常RPC请求相关联的字段进行数据转换,且会依据不同的字段来分别处理。比如,原始的日志时间是毫秒级,将其转换成分钟级;将用户组转换成所属业务线;将用户标识、任务Id、操作命令和集群字段进行切分,取字段值;将源文件字段切分出四级目录;将耗时字段中1s以内的耗时置为0,1s以上的耗时取整数。经过上述转换后能保证审计日志中存在相同的日志记录,后续对关键指标字段进行聚合操作时才能够达到请求次数的统计需求。
在另一优选的实施例中,为了给后续统计分析提供有效数据,还可以将审计日志中对Hadoop集群无影响的日志记录,以及本身不符合规范的数据进行数据过滤,比如过滤掉字段不全、格式不对的数据。
步骤S303:获取与异常RPC请求相关联的扩展指标字段,以及自定义的异常规则库。在实时统计分析审计日志的过程中,有些数据是诊断异常RPC请求所需要的,但是无法直接从审计日志中获取,比如用户所在集市、用户所操作路径的表信息等,这些信息都需要实时计算程序通过读取外部的数据源来获取。实施例中将这些无法直接从审计日志中获取的信息称为扩展指标字段。
实际应用中,有些变化不大的数据在数据仓库中会以维表的形式存在。故实施例中,可以预先将扩展指标字段所在维表的数据(后续称为维表数据)写入高性能存储系统。后续通过关联维表的方式实时获取扩展指标字段。其中,关联维表是指从关键指标字段名称中选取关联指标字段名称,通过关联指标字段名称将日志数据与维表数据相关联。另外,扩展指标字段的信息是可能变化的,且一般是T+1模型生成的,故需要每天更新所关联的维表数据。其中,T+1模型是指,今天的数据(T)在明天(T+1)才能生成。
进一步地,还需要预先为影响HDFS服务的各目标指标字段设定相应的异常规则,该规则用于判断某条日志记录对应的RPC请求是否为异常RPC请求。将异常规则汇总形成异常规则库,并存入高性能存储系统。需要注意的是,异常规则是动态维护的,后续可以再向异常规则库新增异常规则。
由于异常规则库属于外部数据源,且可以随时新增异常规则,故需要定期读取,并更新到程序缓存中。实施例中,异常规则库可以简化成key-value的形式,即目标指标字段为key,异常规则的触发条件为value,实时计算程序需要匹配哪些日志数据符合异常规则,然后验证是不是满足触发条件即可。比如设置某个业务线写操作的次数阈值2w/分钟,则在统计该业务线每分钟写操作的次数过程中,如果符合触发条件,即每分钟写操作的次数超过2w,则输出告警信息。
下面对异常规则进行举例说明:比如,定义写入或者读取某个目录的操作请求为异常RPC请求。再比如,定义某个用户标识有访问为异常RPC请求。再比如,删除操作验证目录是否为保护目录,如果是保护目录,则删除操作请求为异常RPC请求。再比如,单步操作耗时是否超过阈值,如果超过阈值,则该操作请求为异常RPC请求。异常规则可以在异常规则库中定义,实时计算程序会进行判断和告警。
实施例中,在对审计日志进行实时处理时,从关键指标字段中选取关联指标字段名称,通过关联指标字段名称将日志数据与维表数据相关联。后续即可获取扩展指标字段,保证后续统计数据完整可追溯。需要注意的是,实施例中并不限定该步骤的执行顺序,其在步骤S304之前执行即可。
步骤S304:在设定的窗口时间内,统计目标指标字段在审计日志中出现的次数,得到指标聚合结果。其中,目标指标字段包括至少一个关键指标字段。统计目标指标字段在审计日志中出现的次数的实现可以为:确定扩展指标字段对应的关联指标字段集,统计目标指标字段在包含关联指标字段集的日志数据中出现的次数。其中,关联指标字段集包括至少一个关联指标字段。该实现方式能够从原始审计日志中过滤不包含关联指标字段集的日志数据,保留包含关联指标字段集的日志数据。后续统计目标指标字段在审计日志中出现的次数时,仅统计目标指标字段过滤后得到的日志数据中出现的次数。
需要注意的是,审计日志在产生后会被存储到缓存系统,不会在一产生时就被读取到。为了避免晚到的数据没有及时被统计,需要预先设定窗口时间,在这个窗口时间内到达的审计日志都会被统计。比如设定窗口时间为5分钟,则会对晚到5分钟内的数据实时统计,确保统计结果与实际情况相符。
HDFS的RPC请求从宽泛概念上来讲可以分为读操作请求和写操作请求,比如delete(删除)操作请求,也可以理解成写操作请求,它的操作路径是怎样的,是不是可以delete,这是分析的主体;其次,这个操作请求是在什么时间操作的,操作人是谁等等,是接着需要考虑的。故实施例中可以按照上述分析过程确定聚合使用的目标指标字段。
另外,关键指标字段经过步骤S302的数据转换、数据过滤、提取之后,对窗口时间内的审计日志,统计预设时间段内(比如每分钟)操作某个四级目录的次数,该次数即为指标聚合结果。
步骤S305:将指标聚合结果与异常规则库中的异常规则进行匹配,标记审计日志中满足异常规则中触发条件的日志记录。将指标聚合结果与异常规则库进行比对,判断其是否满足当前异常规则的触发条件,如果满足,则将该日志记录打上标记,之后存储指标聚合结果、规则匹配结果到实时数据存储系统。实施例中,实时计算程序部署在Hadoop集群中进行分布式计算,可以在几秒内完成上亿级数据量的操作。
步骤S306:在日志记录对应的RPC请求为异常RPC请求时输出告警信息,并展示RPC请求的诊断结果。实施例中,将监控告警平台和前端页面分别接入实时数据存储系统。前端页面中可以展示当前RPC请求情况以及相应TopN数据,比如,哪些用户访问量大,操作的是哪些HDFS命令,访问路径以及操作的表情况等。
若监控告警平台检测到满足异常规则的触发条件的日志记录,则该日志记录对应的RPC请求为异常RPC请求,监控告警平台输出告警信息。比如,监控告警平台查看实时数据存储系统的标记结果,将被标记的日志记录的目标指标字段通过告警信息输出,表明该目标指标字段触发了告警。再比如,在监控告警平台设置报警规则,如果日志记录满足报警规则,则输出告警信息。报警规则比如为:若Hadoop集群的某个主节点连续5分钟的读写次数超过了100w次,则监控告警平台读取到上述指标聚合结果后,输出告警信息。
实施例中,监控告警平台可以从异常规则库中获取告警措施,按照获取的告警措施通知相关数据负责人。其中,告警措施比如通过哪种方式(电话、短信等)、通知哪些人等。
下面结合实施例对本发明的异常RPC请求的诊断方法进行进一步说明。
实施例中选用某公司生产环境下Hadoop集群中一段时间内的HDFS审计日志,进行处理。审计日志中包括多条日志记录,每条日志记录对应一个RPC请求,其中的一条日志记录,具体如下:
{"@version":"1","host":"xxx.xxx.xxx.xxx","path":"/data1/hadoop-audit-logs/hdfs-audit.log","@timestamp":"2019-05-23T09:46:27.693Z","mes sage":"[2019-05-23T17:46:27.691+08:00][INFO][IPC Server handler 78on 8020]:allowed=true\tugi=mart_eco(auth:SIMPLE)\terp=\"mart_eco\"\tjobId=\"job_1558520681449_184114\"\tip=/xx.xx.xx.xx\tcmd=rename\tsrc=/user/mart_eco/app.db/app_eco_united_activity_summary_time/tp=day/.distcp.tmp.attempt_1558520681449_184114_m_000000_0\tdst=/user/mart_eco/app.db/app_eco_united_activity_summary_time/tp=day/dt=2019-04-17/part-00333-ea945fbd-6833-425c-8959-12e0e5405190.c000.lzo\tperm=null\tproto=rpc\tcallerContext=mr_attempt_1558520681449_184114_m_000000_0\tappID=application_1558520681449_184114\tcost=111673","type":"hdfs-authlog-hope-ns1000"}
步骤S303中需要从外部获取维表数据,实施例的维表数据如表1所示:
表1为本发明实施例的维表数据
Figure BDA0002140182800000111
上表中仅截取了部分字段,在实际应用中,以user为关联字段名称,将维表数据和审计日志相关联,后续即可获取需要的字段信息(即扩展指标字段),比如该用户(user)所在集市(mart_name)。
步骤S304的指标聚合结果如下表所示:
表2为本发明实施例的指标聚合结果
Figure BDA0002140182800000121
实际使用中指标聚合结果中会包括文件的直属目录,即表2的src2,也会包含src1(即文件所在的四级目录)。如果目录层级不超过4层,则src1=src2。比如:src1=src2=/user/dd_edw/dim.db/dim_chat_entrance_name/,再比如:src2=/user/dd_edw/gdm.db/gdm_m03_item_sku_da/dt=2019-05-22/,src1=/user/dd_edw/gdm.db/gdm_m03_item_sku_da/。
表2中“nn”代表“cluster_name”列对应集群的子集群。由表2可知,用户mart_scr在集群cluster1的子集群ns1下访问目录“/user/dd_edw/dim.db/dim_chat_entrance_name/”的次数为16826,假设异常规则库中存在一条异常规则:每小时访问子集群ns1的目录“/user/dd_edw/dim.db/dim_chat_entrance_name/”的次数阈值为10000,则在将表2中的指标聚合结果与异常规则库的异常规则进行匹配后,表2的第一条结果对应的RPC请求会被诊断为异常RPC请求,输出告警信息。
通过本发明实施例的异常RPC请求的诊断方法可以看出,通过在设定窗口时间内,对日志数据中的关键指标字段进行指标聚合统计,并将指标聚合结果与异常规则进行匹配,能够快速准确的定位异常RPC请求,无需人工查找异常任务;将日志数据与相应维表数据相关联,确定影响异常RPC请求诊断的扩展指标字段,进而完善实时计算数据,能够更针对性的优化集群服务能力、提高集群稳定性;分布式系统的稳定性受用户访问次数的限制,通过记录日志数据中用户访问某一路径的日志记录的条数,即可确定用户访问该路径的次数,方便后续进行规则匹配。
图4是根据本发明实施例的异常RPC请求的诊断装置的主要模块的示意图。如图4所示,本发明实施例的异常RPC请求的诊断装置400,主要包括:
提取模块401,用于采集分布式系统的日志数据,从所述日志数据中提取影响异常RPC请求诊断的字段作为关键指标字段。实时采集分布式系统中存储的日志数据,将日志数据中影响异常RPC请求诊断的字段进行格式转换,并过滤异常的日志记录,得到关键指标字段。实施例中,日志数据为审计日志数据,关键指标字段可以包括日志时间、业务线、用户标识、任务Id、操作命令、源文件的保存路径、耗时、集群等。
统计模块402,用于在设定的窗口时间内,统计目标指标字段在所述日志数据中出现的次数,得到指标聚合结果;其中,所述目标指标字段包括从所述关键指标字段中选取的至少一个指标字段。根据实际需求从关键指标字段中选取目标指标字段,按照目标指标字段的取值将日志数据进行聚合,以统计取值相同的日志记录的条数,该条数即为目标指标字段在日志数据中出现的次数。另外,由于日志数据不一定在产生后就能被读取到,故设定一个窗口时间,在窗口时间范围内到达的日志数据均会被聚合统计,确保统计结果与实际情况相符。
匹配模块403,用于将所述指标聚合结果与设定的异常规则进行匹配,若所述指标聚合结果满足所述异常规则的触发条件,则所述指标聚合结果对应的RPC请求为异常RPC请求。将指标聚合结果中的每条记录分别与异常规则库中设定的异常规则进行匹配,若当前条记录满足某个异常规则的触发条件,则该条记录对应的RPC请求即为异常RPC请求。实施例中,首先根据现有经验归纳总结出异常规则,比如耗时超过10s,读写次数超过N次等,并将异常规则保存到异常规则库。随着后续新问题的出现以及分析解决,可以补充制定新的异常规则,并加入异常规则库。
另外,本发明实施例的异常RPC请求的诊断装置400还可以包括:关联添加模块(图4中未示出),该模块用于从所述关键指标字段中选取关联指标字段名称,通过所述关联指标字段名称将所述日志数据与外部维表数据相关联;以及从所述维表数据中获取所述日志数据中不存在,且影响异常RPC请求诊断的扩展指标字段,确定所述扩展指标字段对应的关联指标字段集。
从以上描述可以看出,通过在设定窗口时间内,对日志数据中的关键指标字段进行指标聚合统计,并将指标聚合结果与异常规则进行匹配,能够快速准确的定位异常RPC请求,无需人工查找异常任务;将日志数据与相应维表数据相关联,确定影响异常RPC请求诊断的扩展指标字段,进而完善实时计算数据,能够更针对性的优化集群服务能力、提高集群稳定性;分布式系统的稳定性受用户访问次数的限制,通过记录日志数据中用户访问某一路径的日志记录的条数,即可确定用户访问该路径的次数,方便后续进行规则匹配。
图5示出了可以应用本发明实施例的异常RPC请求的诊断方法或异常RPC请求的诊断装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503浏览网站所产生的日志数据进行分析的后台管理服务器。后台管理服务器可以对接收到的日志数据进行关键指标字段提取、指标聚合、规则匹配等处理,并将处理结果(例如RPC请求诊断结果)反馈给终端设备。
需要说明的是,本申请实施例所提供的异常RPC请求的诊断方法一般由服务器505执行,相应地,异常RPC请求的诊断装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种异常RPC请求的诊断方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种异常RPC请求的诊断方法。
下面参考图6,其示出了适用于来实现本发明实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有计算机系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括提取模块、统计模块和匹配模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,提取模块还可以被描述为“采集分布式系统的日志数据,从所述日志数据中提取影响异常RPC请求诊断的字段作为关键指标字段的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:采集分布式系统的日志数据,从所述日志数据中提取影响异常RPC请求诊断的字段作为关键指标字段;在设定的窗口时间内,统计目标指标字段在所述日志数据中出现的次数,得到指标聚合结果;其中,所述目标指标字段包括从所述关键指标字段中选取的至少一个指标字段;将所述指标聚合结果与设定的异常规则进行匹配,若所述指标聚合结果满足所述异常规则的触发条件,则所述指标聚合结果对应的RPC请求为异常RPC请求。
从以上描述可以看出,通过在设定窗口时间内,对日志数据中的关键指标字段进行指标聚合统计,并将指标聚合结果与异常规则进行匹配,能够快速准确的定位异常RPC请求,无需人工查找异常任务。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (12)

1.一种异常RPC请求的诊断方法,其特征在于,包括:
采集分布式系统的日志数据,从所述日志数据中提取影响异常RPC请求诊断的字段作为关键指标字段;
在设定的窗口时间内,统计目标指标字段在所述日志数据中出现的次数,得到指标聚合结果;其中,所述目标指标字段包括从所述关键指标字段中选取的至少一个指标字段;
将所述指标聚合结果与设定的异常规则进行匹配,若所述指标聚合结果满足所述异常规则的触发条件,则所述指标聚合结果对应的RPC请求为异常RPC请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从所述关键指标字段中选取关联指标字段名称,通过所述关联指标字段名称将所述日志数据与外部维表数据相关联;
从所述维表数据中获取所述日志数据中不存在,且影响异常RPC请求诊断的扩展指标字段,确定所述扩展指标字段对应的关联指标字段集;
所述统计目标指标字段在所述日志数据中出现的次数,包括:
统计目标指标字段在包含所述关联指标字段集的日志数据中出现的次数。
3.根据权利要求1或2所述的方法,其特征在于,所述目标指标字段包括访问路径字段、用户组字段和集群名称字段,所述统计目标指标字段在所述日志数据中出现的次数,包括:
统计所述日志数据中归属于同一集群、同一用户组、同一访问路径的日志记录的条数。
4.根据权利要求1所述的方法,其特征在于,所述异常规则在异常规则库中定义,所述异常规则库包括下列任意一项或者多项异常规则:
若写入/读取当前路径的次数大于等于设定第一阈值,则对应的操作请求为异常RPC请求;若当前操作耗时大于等于设定第二阈值,则对应的操作请求为异常RPC请求;若当前操作命令对应的访问路径为受保护路径,则对应的操作请求为异常RPC请求;若写入/读取的目标路径为不允许操作的路径,则对应的操作请求为异常RPC请求;若当前访问请求来自于不存在权限的用户标识,则所述当前访问请求为异常RPC请求。
5.根据权利要求1所述的方法,其特征在于,所述从所述日志数据中提取影响异常RPC请求诊断的字段作为关键指标字段,包括:
将所述日志数据中影响异常RPC请求诊断的字段进行格式转换,并过滤异常的日志记录,得到关键指标字段。
6.一种异常RPC请求的诊断装置,其特征在于,包括:
提取模块,用于采集分布式系统的日志数据,从所述日志数据中提取影响异常RPC请求诊断的字段作为关键指标字段;
统计模块,用于在设定的窗口时间内,统计目标指标字段在所述日志数据中出现的次数,得到指标聚合结果;其中,所述目标指标字段包括从所述关键指标字段中选取的至少一个指标字段;
匹配模块,用于将所述指标聚合结果与设定的异常规则进行匹配,若所述指标聚合结果满足所述异常规则的触发条件,则所述指标聚合结果对应的RPC请求为异常RPC请求。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:关联添加模块,用于
从所述关键指标字段中选取关联指标字段名称,通过所述关联指标字段名称将所述日志数据与外部维表数据相关联;以及
从所述维表数据中获取所述日志数据中不存在,且影响异常RPC请求诊断的扩展指标字段,确定所述扩展指标字段对应的关联指标字段集;
所述统计模块,还用于:统计目标指标字段在包含所述关联指标字段集的日志数据中出现的次数。
8.根据权利要求6或7所述的装置,其特征在于,所述目标指标字段包括访问路径字段、用户组字段和集群名称字段,所述统计模块,还用于:
统计所述日志数据中归属于同一集群、同一用户组、同一访问路径的日志记录的条数。
9.根据权利要求6所述的装置,其特征在于,所述异常规则在异常规则库中定义,所述异常规则库包括下列任意一项或者多项异常规则:
若写入/读取当前路径的次数大于等于设定第一阈值,则对应的操作请求为异常RPC请求;若当前操作耗时大于等于设定第二阈值,则对应的操作请求为异常RPC请求;若当前操作命令对应的访问路径为受保护路径,则对应的操作请求为异常RPC请求;若写入/读取的目标路径为不允许操作的路径,则对应的操作请求为异常RPC请求;若当前访问请求来自于不存在权限的用户标识,则所述当前访问请求为异常RPC请求。
10.根据权利要求6所述的装置,其特征在于,所述提取模块,还用于:
将所述日志数据中影响异常RPC请求诊断的字段进行格式转换,并过滤异常的日志记录,得到关键指标字段。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
CN201910666131.6A 2019-07-23 2019-07-23 一种异常rpc请求的诊断方法和装置 Pending CN112306700A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910666131.6A CN112306700A (zh) 2019-07-23 2019-07-23 一种异常rpc请求的诊断方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910666131.6A CN112306700A (zh) 2019-07-23 2019-07-23 一种异常rpc请求的诊断方法和装置

Publications (1)

Publication Number Publication Date
CN112306700A true CN112306700A (zh) 2021-02-02

Family

ID=74329598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910666131.6A Pending CN112306700A (zh) 2019-07-23 2019-07-23 一种异常rpc请求的诊断方法和装置

Country Status (1)

Country Link
CN (1) CN112306700A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860517A (zh) * 2021-02-10 2021-05-28 中国工商银行股份有限公司 一种基于分布式应用的性能诊断方法、装置及设备
CN115357470A (zh) * 2022-10-21 2022-11-18 北京国电通网络技术有限公司 信息生成方法、装置、电子设备和计算机可读介质
CN116126872A (zh) * 2023-04-18 2023-05-16 紫金诚征信有限公司 一种针对实时维表的关联方法、装置及计算机可读介质
CN117156012A (zh) * 2023-10-26 2023-12-01 北京国电通网络技术有限公司 异常请求数据处理方法、装置、设备和计算机可读介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860517A (zh) * 2021-02-10 2021-05-28 中国工商银行股份有限公司 一种基于分布式应用的性能诊断方法、装置及设备
CN115357470A (zh) * 2022-10-21 2022-11-18 北京国电通网络技术有限公司 信息生成方法、装置、电子设备和计算机可读介质
CN116126872A (zh) * 2023-04-18 2023-05-16 紫金诚征信有限公司 一种针对实时维表的关联方法、装置及计算机可读介质
CN116126872B (zh) * 2023-04-18 2023-06-23 紫金诚征信有限公司 一种针对实时维表的关联方法、装置及计算机可读介质
CN117156012A (zh) * 2023-10-26 2023-12-01 北京国电通网络技术有限公司 异常请求数据处理方法、装置、设备和计算机可读介质
CN117156012B (zh) * 2023-10-26 2024-02-02 北京国电通网络技术有限公司 异常请求数据处理方法、装置、设备和计算机可读介质

Similar Documents

Publication Publication Date Title
US11093518B1 (en) Information technology networked entity monitoring with dynamic metric and threshold selection
US11196756B2 (en) Identifying notable events based on execution of correlation searches
CN107506451B (zh) 用于数据交互的异常信息监控方法及装置
CN112306700A (zh) 一种异常rpc请求的诊断方法和装置
US20190095478A1 (en) Information technology networked entity monitoring with automatic reliability scoring
CN102340415B (zh) 一种服务器集群系统的监控方法和一种服务器集群系统
EP4099170B1 (en) Method and apparatus of auditing log, electronic device, and medium
CN109634818A (zh) 日志分析方法、系统、终端及计算机可读存储介质
US11093349B2 (en) System and method for reactive log spooling
CN111190888A (zh) 一种管理图数据库集群的方法和装置
CN111881011A (zh) 日志管理方法、平台、服务器及存储介质
CN112351024B (zh) 一种公网通信安全监测系统及方法
JP6633642B2 (ja) 分散データベースにおけるデータブロックを処理する方法およびデバイス
CN111162950A (zh) 故障事件处理方法、装置及系统
CN111740868A (zh) 告警数据的处理方法和装置及存储介质
CN111046022A (zh) 一种基于大数据技术的数据库审计方法
CN114091704B (zh) 一种告警压制方法和装置
US11714980B1 (en) Techniques for using tag placement to determine 3D object orientation
CN114461792A (zh) 告警事件关联方法、装置、电子设备、介质及程序产品
CN113010494A (zh) 一种数据库审计方法、装置及数据库代理服务器
CN110309206B (zh) 订单信息采集方法及系统
CN114706893A (zh) 故障检测方法、装置、设备及存储介质
CN110677271B (zh) 基于elk的大数据告警方法、装置、设备及存储介质
CN111368039B (zh) 一种数据管理系统
CN114462030A (zh) 隐私政策的处理、取证方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination