一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种实时异常日志分析方法及系统与流程

2022-02-20 05:29:18 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,尤其涉及一种实时异常日志分析方法及系统。


背景技术:

2.随着互联网技术的快速发展,服务器、系统应用越来越多,各行各业都需要维护自己的it系统,而如何保障系统的平稳运行,发现并解决it系统在运行过程中产生的问题一直是一件很头疼的事情。
3.对于运维工程师来说,成百上千的服务器系统需要去监控,一旦出现问题,需要登录每一台服务器去查看系统日志信息,进行排查定位;对于软件开发人员来说,每一次的程序运行报错,都需要花费大量的时间去服务器上查看应用或者中间件的报错日志,从而返回自己的项目中查看代码逻辑问题;而对于运营工作者来说,没有很直观的统计分析数据,数据分析的门槛高、难度大。
4.上述现象产生的根本在于三点:1)日志过于分散,缺乏统一采集日志数据的能力;2)缺少实时的异常日志分析系统,缺乏实时处理大量日志数据的能力;3)对于获取存储的日志数据的数据分析门槛较高,扩展性较差。
5.因此,如何将日志进行汇集、实时地进行异常日志的处理,提高运维工程师、软件开发人员与运营工作者的工作效率,降低数据分析的门槛,是迫在眉睫需要解决的技术问题。


技术实现要素:

6.本发明的目的在于提供了一种实时异常日志分析方法及系统,以解决上述技术背景中提出的问题。
7.为实现上述目的,本发明采用以下技术方案:
8.本技术第一个方面提供了一种实时异常日志分析方法,包括:
9.日志采集:从系统日志、应用日志和中间件日志中实时采集日志数据,并传送至消息中间件kafka不同的topic中;
10.日志清洗:利用spark streaming获取来自kafka的实时输入数据,按照预设的日志清洗规则进行清洗,筛选出异常日志数据;
11.日志转换:将清洗后的异常日志数据按照异常类型写入kafka指定的topic中,指定的topic包括第一类型topic和第二类型topic,其中,第一类型topic用于存放常规性的异常信息,第二类型topic用于存放除常规性以外、需要立即告警通知的异常信息;
12.日志分析:对第一类型topic中的异常日志数据基于预设的模板库进行相似度聚类;
13.日志存储:将聚类后的异常日志数据分别存储到日志模板表、日志明细表与日志统计表中;
14.日志查询:解析日志查询请求,并根据解析结果读取各自对应的日志存储数据,以
获取各自对应的日志查询结果;其中,日志查询请求包括日志量指标分析请求、异常日志明细查询请求、故障问题定位请求、应用健康分析日报请求中的一种或几种。
15.优选地,所述日志采集,还包括如下步骤:
16.系统日志开启所有服务器的syslog,将syslog日志远程发送至日志服务器,再由日志服务器统一发送到消息中间件kafka中;
17.应用日志和中间件日志,通过第三方开源系统filebeat进行日志采集,并发送至消息中间件kafka中。
18.优选地,所述预设的日志清洗规则包括、但不限于以下的一种或几种:
19.依据日志路径进行清洗,清洗路径不合法的日志;
20.依据日志级别清洗,例如只返回“warn”级别日志;
21.依据时间格式清洗,清洗掉无效时间格式与时间范围之外的日志;
22.依据stacktrace(堆栈跟踪)进行清洗,清洗掉无stacktrace的日志;
23.依据具体异常标志清洗,清洗掉“exception:”“outofmemoryerror”等常见异常标志之外的日志。
24.优选地,所述对第一类型topic中的异常日志数据基于预设的模板集进行相似度聚类,包括如下步骤:
25.s1,根据至少一个关键字段在redis缓存中查找预设的模板集,若模板集存在,执行步骤s2,否则执行步骤s3;
26.s2,分别计算新加入第一类型topic中的异常日志数据与模板集中已有模板的相似度值,若相似度值大于或等于预设相似度阈值,则将该条异常日志数据存入日志明细表中,若相似度值小于预设相似度阈值,则默认为该条异常日志数据没有找到模板,执行步骤s3;
27.s3,根据新加入第一类型topic中的异常日志数据生成新模板,并写入redis缓存中,写完后将新模板的数据存入日志模板表和日志明细表中。
28.优选地,所述方法还包括:
29.可视化展示和预警:读取所述日志查询的结果;展示所述日志查询的结果,和/或发出告警通知。
30.优选地,所述方法还包括:对所述第二类型topic中存储的日志数据直接进行告警通知。
31.优选地,所述方法还包括:
32.在所述日志模板表中分别记录模板id、应用名称、异常类型、日志描述与创建时间(数据入库时间),数据直接来源于聚类后的异常日志数据,并且永久保存;
33.在所述日志明细表中分别记录模板id、节点ip、日志产生时间和创建时间(数据入库时间),其中模板id与日志模板表中的模板id相关联,按天分区,数据保留一个月,一个月前的数据过期自动清除。
34.优选地,所述方法还包括:
35.所述日志统计表按照分钟级统计和小时级统计分为两张表,即第一日志统计表和第二日志统计表,两张表的字段完全一致,记录模板id、节点ip、日志产生时间、统计次数(日志发生次数)和创建时间(数据入库时间);其中,
36.第一日志统计表的数据来源于日切的定时任务数据,定时调度周期小于一分钟,第一日志统计表的数据用于完成日志量指标分析、异常日志明细查询与故障定位;
37.第二日志统计表的数据来源于第一日志统计表,定时调度周期为每日预设的一个整点时间,然后将数据按小时进行聚合,第二日志统计表的数据用于产生应用健康分析日报。
38.更优选地,所述第一日志统计表的定时调度周期为30秒。
39.更优选地,所述第二日志统计表的定时调度周期为每日零点。
40.本技术第二个方面提供了一种实时异常日志分析系统,包括:
41.日志采集模块:用于从系统日志、应用日志和中间件日志中实时采集日志数据,并传送至消息中间件kafka不同的topic中;
42.日志清洗模块:用于利用spark streaming获取来自kafka的实时输入数据,按照预设的日志清洗规则进行清洗,筛选出异常日志数据;
43.日志转换模块:用于将清洗后的异常日志数据按照异常类型写入kafka指定的topic中,指定的topic包括第一类型topic和第二类型topic,其中,第一类型topic用于存放常规性的异常信息,第二类型topic用于存放除常规性以外、需要立即告警通知的异常信息;
44.日志分析模块:用于对第一类型topic中的异常日志数据基于预设的模板库进行相似度聚类;
45.日志存储模块:用于将聚类后的异常日志数据分别存储到日志模板表、日志明细表与日志统计表中;
46.日志查询模块:用于解析日志查询请求,并根据解析结果读取各自对应的日志存储数据,以获取各自对应的日志查询结果;其中,日志查询请求包括日志量指标分析请求、异常日志明细查询请求、故障问题定位请求、应用健康分析日报请求中的一种或几种。
47.优选地,所述预设的日志清洗规则包括、但不限于以下的一种或几种:
48.依据日志路径进行清洗,清洗路径不合法的日志;
49.依据日志级别清洗,例如只返回“warn”级别日志;
50.依据时间格式清洗,清洗掉无效时间格式与时间范围之外的日志;
51.依据stacktrace(堆栈跟踪)进行清洗,清洗掉无stacktrace的日志;
52.依据具体异常标志清洗,清洗掉“exception:”“outofmemoryerror”等常见异常标志之外的日志。
53.优选地,所述日志分析模块,包括:
54.日志获取单元,用于获取第一类型topic中的异常日志数据;
55.相似度确定单元,用于确定新加入第一类型topic中的异常日志数据与模板集中已有模板的相似度值;
56.第一处理单元,用于在所述相似度值大于或等于预设的相似度阈值时,将该条异常日志数据存入日志明细表中;
57.第二处理单元,用于在所述相似度值小于预设相似度阈值时,根据新加入第一类型topic中的异常日志数据生成新模板;
58.数据发送单元,用于将所述第二处理单元生成的新模板写入redis缓存中,并将新
模板的数据存入日志模板表和日志明细表。
59.优选地,所述日志分析系统,还包括:
60.可视化展示和预警模块:用于读取所述日志查询的结果,展示所述日志查询的结果和/或发出告警通知。
61.优选地,所述日志分析系统,还包括:告警模块,用于对日志转换模块中第二类型topic存储的异常日志数据进行直接告警。
62.优选地,所述日志模板表中记录的字段包括模板id、应用名称、异常类型、日志描述和创建时间(数据入库时间);所述日志明细表中记录的字段包括模板id、节点ip、日志产生时间和创建时间(数据入库时间);其中,日志明细表的模板id与日志模板表中的模板id相关联,按天分区,数据保留一个月,一个月前的数据过期自动清除。
63.优选地,所述日志统计表按照分钟级统计和小时级统计分为两张表,即第一日志统计表和第二日志统计表,两张表的字段完全一致,记录的字段包括模板id、节点ip、日志产生时间、统计次数(日志发生次数)和创建时间(数据入库时间);其中,
64.第一日志统计表的数据来源于日切的定时任务数据,定时调度周期小于一分钟,第一日志统计表的数据用于完成日志量指标分析、异常日志明细查询与故障定位;
65.第二日志统计表的数据来源于第一日志统计表,定时调度周期为每日预设的一个整点时间,然后将数据按小时进行聚合,第二日志统计表的数据用于产生应用健康分析日报。
66.与现有技术相比,本发明的技术方案具有以下有益效果:
67.1)日志的采集比较全面,包含了公司日常运维所涉及的所有内容(系统、应用、中间件);
68.2)大数据spark streaming实时处理引擎技术的引入,依据动态的配置清洗与转换的规则,做到了实时清洗和转换大量的日志数据;
69.3)对于特殊类型的异常日志,支持直接进行告警的通知机制;
70.4)模板化聚类方式的设计,在节省数据存储空间的基础上,又不妨碍后续功能的扩展;
71.5)依据处理后的异常日志数据,即可扩展包括日志量指标分析、异常日志明细查询、故障问题定位与应用健康分析日报等功能;
72.6)本技术保障了公司线上系统、应用与中间件的平稳运行,降低了数据分析的门槛、提升了运维工程师的运维效率,同时也能帮助软件开发工程师更快速地定位故障,解决应用中存在的故障问题。
附图说明
73.构成本技术的一部分附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
74.图1是本发明一种实时异常日志分析方法的流程示意图;
75.图2是本发明日志采集的原理示意图;
76.图3是本发明实时异常日志数据处理的原理示意图;
77.图4是本发明日志分析存储设计示意图;
78.图5是本发明实时异常日志数据处理的流程图;
79.图6是本发明一种实时异常日志分析系统的结构示意图。
具体实施方式
80.为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
81.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,应该理解这样使用的数据在适当情况下可以互换。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
82.本发明技术方案可以被广泛地应用于系统软件的智能运维工作,实现系统或应用的实时监控。
83.图1为本技术的一种实时异常日志分析方法的流程图。
84.如图1所示,一种实时异常日志分析方法,包括日志采集、日志清洗、日志转换、日志分析、日志存储和日志查询。本技术按这样一个实时异常日志的处理流程,完成对运行中软件的智能运维工作。具体步骤如下:
85.步骤一,日志采集:从系统日志、应用日志和中间件日志中实时采集日志数据,并传送至消息中间件kafka不同的topic中。
86.参阅图2所示,本技术中,日志主要来源于系统日志、应用日志与中间件日志三个方面,日志采集的数据比较全面,基本包含了公司日常运维涉及的所有内容。
87.其中,系统日志通过开启所有服务器的syslog远程发送到日志服务器,再由日志服务器统一发送到消息中间件kafka中;而应用日志与中间件日志将通过第三方开源系统filebeat进行采集并输送到消息中间件kafka中。通过这样的方式,可以完成对系统、应用与中间件的日志采集工作。
88.需要说明的是,采集的日志数据包括正常日志数据和异常日志数据。所有正常日志数据和异常日志数据被被采集到消息中间件kafka不同的topic中,等待后续进一步的处理。
89.以下步骤二至步骤五为本发明的实时异常日志处理流程,具体参阅图3所示。
90.步骤二,日志清洗:利用spark streaming获取来自kafka的实时输入数据,按照预设的日志清洗规则进行清洗,筛选出异常日志数据。
91.由于实际生产环境中的日志数据量往往十分庞大,因此对于海量的日志数据,本技术利用大数据spark streaming处理引擎技术去实时地获取kafka中的数据,利用spark sql,groovy脚本与自定义jar的方式来逻辑处理这些日志数据。处理这些日志数据按照预设的日志清洗规则进行清洗,例如:根据exceptionerror关键字过滤出异常日志、用手动配置的关键字过滤出指定的日志等方式。
92.步骤三,日志转换:将清洗后的异常日志数据按照异常类型写入kafka指定的
topic中。
93.这里,指定的topic分为两种,第一种为常规的异常日志topic(即第一类型topic),主要用来存放一般性的异常信息;第二种为特殊类型的用于直接告警通知的事件接收topic(即第二类型topic)。将特殊类型的异常日志单独存放,是因为对于一些特殊类型的异常日志,比如:数据库宕机抛出的异常类型的日志等,一旦捕获,就需要立刻进行告警,通知公司运维工程师进行查看处理。
94.步骤四,日志分析:对第一类型topic中的异常日志数据基于预设的模板库进行相似度聚类。
95.对于常规的异常日志topic中的日志数据进行模板化分析聚类,主要采用的是文本相似度的聚类方法去实时处理统计不同类型的异常日志数据。将同类型的日志数值化,便可以对量化的数据进行统计分析。
96.步骤五,日志存储:将聚类后的异常日志数据进行存储。
97.聚类后的异常日志数据分别存储到日志模板表、日志明细表与日志统计表中。详细的日志分析存储设计明细请参阅图4。
98.其中,日志模板表分别记录模板id、应用名称、异常类型、日志描述与创建时间(数据入库时间),数据直接来源于聚类分析后的结果,并且永久保存。
99.日志明细表分别记录模板id、节点ip、日志产生时间和创建时间(数据入库时间),其中,模板id与日志模板表模板id相关联,设计按天分区,保留一个月,一个月前的数据过期自动清除。
100.日志统计表分为两种,分钟级与小时级,两张表的字段完全一致,记录模板id、节点ip、日志产生时间、统计次数(日志发生次数)和创建时间(数据入库时间)。分钟级的日志统计表的数据来源于日切的定时任务数据,定时周期为每30秒调度一次,分钟级的日志统计表即可完成日志量指标分析、异常日志明细查询与故障定位等功能;而小时级的日志统计表的数据直接来源于分钟级日志统计表,为每日零点调度一次,该表的数据就能直接产生应用健康分析日报的功能。
101.参阅图5所示,日志模板表与日志明细表中产生数据的详细逻辑过程如下:
102.第一步:从kafka中获取经由大数据spark streaming清洗转换后的异常日志数据,依据应用名称加上异常类型作为key查找redis集合数据(异常模板表的数据会提前放入redis缓存中,目的是提升后续的查询性能,减少数据库的压力);
103.第二步:如果发现数据存在,经过simhash文本相似度方法计算相似度,当计算出的相似度高于或等于预设的相似度阈值时,即可往日志明细表中存入一条数据。而如果经过simhash文本相似度计算出的相似度低于预设的相似度阈值,就默认为该条异常日志数据没有找到模板,需要生成新的模板。
104.第三步:如果发现数据不存在(第一步中查询的数据),即直接生成新的模板,生成模板后需要更新redis缓存中的数据,即需要把新数据也写进redis缓存,写完之后再把新生成的模板数据存入到日志模板表中。最后,同样需要把这条数据存入日志明细表中。
105.步骤六,日志查询:根据日志查询请求,实现对所有应用日志的运维管理。
106.日志查询步骤包括:解析日志查询请求,并根据解析结果读取各自对应的日志存储数据,以获取各自对应的日志查询结果;其中,日志查询请求可以包括日志量指标分析请
求、异常日志明细查询请求、故障问题定位请求和应用健康分析日报请求。
107.日志查询后,还可以对日志查询的结果进行展示,例如,呈现日志监控信息、统计日志结果、日志报警故障结果等。
108.另一方面,本技术还公开了一种实时异常日志分析系统,包括:
109.日志采集模块:用于从系统日志、应用日志和中间件日志中实时采集日志数据,并传送至消息中间件kafka不同的topic中;
110.日志清洗模块:用于利用spark streaming获取来自kafka的实时输入数据,按照预设的日志清洗规则进行清洗,筛选出异常日志数据;其中,预设的日志清洗规则例如:根据exception error关键字过滤出异常日志,用手动配置的关键字过滤出指定的日志等;
111.日志转换模块:用于将清洗后的异常日志数据按照异常类型写入kafka指定的topic中,指定的topic包括第一类型topic和第二类型topic,其中,第一类型topic用于存放常规性的异常信息,第二类型topic用于存放除常规性以外、需要立即告警通知的异常信息;
112.日志分析模块:用于对第一类型topic中的异常日志数据基于预设的模板库进行相似度聚类;
113.日志存储模块:用于将聚类后的异常日志数据分别存储到日志模板表、日志明细表与日志统计表中;
114.日志查询模块:用于解析日志查询请求,并根据解析结果读取各自对应的日志存储数据,以获取各自对应的日志查询结果;其中,日志查询请求包括日志量指标分析请求、异常日志明细查询请求、故障问题定位请求、应用健康分析日报请求中的一种或几种。
115.其中,所述日志分析模块,包括:
116.日志获取单元,用于获取第一类型topic中的异常日志数据;
117.相似度确定单元,用于确定新加入第一类型topic中的异常日志数据与模板集中已有模板的相似度值;
118.第一处理单元,用于在所述相似度值大于或等于预设的相似度阈值时,将该条异常日志数据存入日志明细表中;
119.第二处理单元,用于在所述相似度值小于预设相似度阈值时,根据新加入第一类型topic中的异常日志数据生成新模板;
120.数据发送单元,用于将所述第二处理单元生成的新模板写入redis缓存中,并将新模板的数据存入日志模板表和日志明细表。
121.在一种优选实施例中,所述日志分析系统,还包括:告警模块,用于对日志转换模块中第二类型topic存储的异常日志数据进行直接告警。
122.在一种优选实施例中,所述日志分析系统,还包括:可视化展示和预警模块:用于读取所述日志查询的结果,展示所述日志查询的结果和/或发出告警通知。
123.综上所述,本技术提供了一套通用的异常日志分析解决方案,利用大数据技术的能力加上模板化聚类的设计,以日志信息为媒介,极少的服务器资源占用,可以做到实时地监控线上系统、应用与中间件的运行状态。本技术技术方案具有以下特点:
124.1)日志的采集比较全面,包含了公司日常运维所涉及的所有内容(系统、应用、中间件);
125.2)大数据spark streaming实时处理引擎技术的引入,依据动态的配置清洗与转换的规则,做到了实时清洗和转换大量的日志数据;
126.3)对于特殊类型的异常日志,支持直接进行告警的通知机制;
127.4)模板化聚类方式的设计,在节省数据存储空间的基础上,又不妨碍后续功能的扩展;
128.5)依据处理后的异常日志数据,即可扩展包括日志量指标分析、异常日志明细查询、故障问题定位与应用健康分析日报等功能;
129.本技术技术方案保障了公司线上系统、应用与中间件的平稳运行,降低了数据分析的门槛、提升了运维工程师的运维效率,同时也能帮助软件开发工程师更快速地定位故障,解决应用中存在的故障问题。
130.以上对本发明的具体实施例进行了详细描述,但其只是作为范例,本发明并不限制于以上描述的具体实施例。对于本领域技术人员而言,任何对本发明进行的等同修改和替代也都在本发明的范畴之中。因此,在不脱离本发明的精神和范围下所作的均等变换和修改,都应涵盖在本发明的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献