生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

对智能化运维中日志聚类分析的一些思考

12月12日 听风行投稿
  日志聚类分析可以理解为AIOps智能化运维的一个子内容,对于日志本身也分为了操作系统日志,数据库和中间件日志,业务系统本身自定义错误日志等。
  今天只分析对业务系统错误日志聚类分析。日志聚类分析背景
  我们实施ESB服务总线项目,因此拿ESB总线或SOA集成平台来举例。
  在SOA集成平台实施过程中,由于注册和接入了大量的业务系统和接口服务,因此每天都产生大量的接口调用错误日志信息,峰值期间一天的错误日志量也达到好几万条。
  那么面对这么多的错误日志,如何快速的定位究竟是中间件本身错误还是业务类异常,如果是业务类异常本身又主要是由哪些接口,哪些服务消费方引起的就成为一个关键内容。
  比如我们对最近1个小时的错误日志快速聚类分析,可以发80错误都来源于CRM系统调用预算系统接口服务的时候出现预算校验不通过引起的。
  是否能够直接GroupBy?
  对于错误日志信息,一般来讲很难直接Groupby进行分类汇总,因为业务系统在产生错误日志的时候往往会依赖于错误日志模板,模板中参数变量信息,导致最终输出的日志并不同。
  比如前面预算校验,实际模板可能是:
  BIZ001:(Param1):预算校验不通过。申请(Param2),实际剩余(Param3)
  因此实际上你无法简单的做汇总处理。
  问题转化
  经过基本分析,你会发现日志聚类本质还是文本相似度比较,基于文本串的相似度进行聚类。文本传的相似度可以两两比较,只要相似的即可聚类到一起。
  比如下面的错误日志信息:1。BIZ0465:要释放的单据信息不存在,单据编号:54004541单据类型:BZWHTBZ2。BIZ0465:要释放的单据信息不存在,单据编号:54027476单据类型:BZYHTBZ3。BIZ0465:要释放的单据信息不存在,单据编号:54164614单据类型:BZWHTBZ4。BIZ0270:按照维度组合查找相关成本费用预算的可用资金(88909。83元)小于本次金额(280000元)5。BIZ0270:按照维度组合查找相关成本费用预算的可用资金(897。92元)小于本次金额(8668元)6。BIZ0270:按照维度组合查找相关成本费用预算的可用资金(9。27元)小于本次金额(18。3元)
  经过肉眼观察,我们也很容易发现实际应该聚为两类错误信息。13是一类,46是一类。如果从上面的信息我们也很容易抽象出后端对应的错误日志模板。BIZ0465:要释放的单据信息不存在,单据编号:param1单据类型:param1BIZ0270:按照维度组合查找相关成本费用预算的可用资金(param1)小于本次金额(param2)
  把以上思考清楚后,可以看到日志聚类不能简单的照搬当前已有的文本聚类方法,而是应该在当前文本相似度比较,分词技术上进行优化,给出最佳的一种日志聚类算法。
  在这里还是从文本预处理,分词,相似度计算几个方面来进行总结。文本预处理
  对于文本预处理,经常谈到的是去除停用词,比如常见的,你,我,他,的,啊等词语,这些词出现频繁,实际上本身没有太大的作用。
  我们可以构建一个停用词的词库,对出现的停用词进行预处理。
  其次,当我们观察大量的日志输出后,可以看到文本预处理的另外一个重点是对标点符号的处理,对基于模板填写内容的识别。
  标点符号处理
  对于经常出现的冒号,逗号,等于号等都是日志里面最常见的。这些标点符号本身就应该是后续分词的分割点。比如:单据编号:54004541单据类型:BZWHTBZ
  这个直接基于空格和标点符号分词,应该拆分为:
  单据编号
  54004541hr单据类型
  BZWHTBZ
  模板参数内容分析
  经过对日志分析,你会发现类似(),类似〔〕或【】等都是最容器在里面填写参数化内容的。对于这种情况我们完全可以进行识别。
  当发现这些特殊标点符号后,可以考虑直接对里面的内容进行去除处理,即将日志中分析可能是参数化的差异内容去除掉。
  比如前面谈到的:BIZ0270:按照维度组合查找相关成本费用预算的可用资金(88909。83元)小于本次金额(280000元)BIZ0270:按照维度组合查找相关成本费用预算的可用资金(897。92元)小于本次金额(8668元)BIZ0270:按照维度组合查找相关成本费用预算的可用资金(9。27元)小于本次金额(18。3元)服务业务处理不通过〔158605363〕服务业务处理不通过〔158605364〕服务业务处理不通过〔158605365〕
  这个在去除掉括号内容后,本身就变成了完全相同的文本。
  进行SQLGroupBy处理
  在前面做完预处理后,实际完全可以先进行一次GroupBy操作,基于文本进行汇总,这个时候往往已经可以汇总出一下日志完全相同的异常日志。
  比如我们可以取一个Top10数据,将这Top10的日志数据直接移出日志列表。后续的文本相似度分析完全没有必要再对这些数据进行分析。一个10万条的错误日志数据列表,经过上述处理后最终待分析剩余日志往往不会超过50。分词
  对于分词,当前主要有两种算法,一种是基于已有的词典库,一种是基于统计的机器学习。
  基于词典的分词算法分为以下几种:正向最大匹配法、逆向最大匹配法和双向匹配分词法等。基于词典的分词算法是应用最广泛、分词速度最快的。基于统计的机器学习算法法是HMM、CRF、SVM、深度学习等算法,比如stanford、Hanlp分词工具是基于CRF算法。
  常见的分词器都是使用机器学习算法和词典相结合,一方面能够提高分词准确率,另一方面能够改善领域适应性。
  日志内容的分词
  在前面我给出了前提,即重点对业务系统定义的业务错误日志,系统日志分析。这些日志大部分都是基于参数化模板来产生。我们还是举前面的例子来说明:
  在基于标点符号和空格进行分词拆分后,得到:要释放的单据信息不存在单据编号
  这个信息实际上再进行分词拆分本身对于日志聚类分析并没有太大的意义。上面的这个提示本身就已经是一个整体,没有必要再进行拆分。
  其次,对于业务系统的词典库本身也是一个细分的领域,如果用当前主流的词典库来对日志文本进行分词,往往并不会得到很好的结果。
  即使要进行分词,最好的方法也是需要对大量日志进行机器学习训练,加上人工修正,最好得到一个适用于日志分析的分词库。日志文本相似度分析
  在进行完日志预处理后,我们对剩余的日志列表进行分词处理。在进行完分词后,得到一个完整的分词列表。
  词频向量构建
  对完整的日志列表进行分词后,可以看到最终形成的分词列表接近上万,那么显然不可能都用做词频向量的构建。因此在分词完成后,我们需要对分词的词频进行分析,仅仅对词频达到某一个基准值的才用于后续构建词频向量使用。
  比如前面分词会得到:
  单据编号54004541单据类型54004541
  但是实际基于词频分析,最终用于构建词频向量的仅仅只有单据编号和单据类型。
  在经过上面分析后,我们会得到一个完整的用于构建词频向量的集合,类似如下:〔预算,单据编号,单据类型,异常,不通过,BIZ0270,金额,。。。。。。。〕
  注意这个词频向量是一个全集。
  构建词频向量子集
  在前面工作完成后,可以开始对日志数据进行遍历,基于发现的日志文本,我们可以构建一个词频向量的子集。
  该日志文本也进行分词处理,这个时候处理后的分词如下:〔预算,订单编号,0001,订单类型,X03675,金额,22131〕
  基于和高频分词列表库进行对比,找到一个子集如下:〔预算,单据,订单编号,订单类型,金额〕
  接着对日志列表数据进行文本相似度对比分析,采用上面的词频列表来构建词频向量。
  TFIDF算法
  TFIDF(TermFrequencyinverseDocumentFrequency)是一种针对关键词的统计分析方法,用于评估一个词对一个文件集或者一个语料库的重要程度。一个词的重要程度跟它在文章中出现的次数成正比,跟它在语料库出现的次数成反比。这种计算方式能有效避免常用词对关键词的影响,提高了关键词与文章之间的相关性。
  其中TF指的是某词在文章中出现的总次数,该指标通常会被归一化定义为TF(某词在文档中出现的次数文档的总词量),这样可以防止结果偏向过长的文档(同一个词语在长文档里通常会具有比短文档更高的词频)。
  IDF逆向文档频率,包含某词语的文档越少,IDF值越大,说明该词语具有很强的区分能力,IDFloge(语料库中文档总数包含该词的文档数1),1的原因是避免分母为0。TFIDFTFxIDF,TFIDF值越大表示该特征词对这个文本的重要性越大。
  实际上对于日志文本的相似度分析,采用TF词频基本就已经满足需求,并没有必要再去计算IDF值。比如对于两条日志信息,经过计算后为:日志文本1:〔1,0,1,1,1〕日志文本2:〔1,1,1,1,1〕
  在得到词向量后,我们直接进行余弦相似度比较即可。
  余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫余弦相似性。这个时候将余弦相似度大于某个百分比的日志文本归于一类。
  基于余弦相似度进行聚类
  当然,在计算完余弦相似度后可以基于常用的kmeans聚类算法进行聚类分析。
  Kmeans算法是非常经典的聚类算法。是一种简单实用的聚类算法,k均值算法(kmeans),由StuartLloyd于1957年提出。该算法虽然无法保证一定能够得到最优聚类结果,但实践效果非常好。
  其算法思路如下:
  先选K个初始聚类点作为初始中心点,然后计算其他所有点到K个聚类点的距离做聚类,将点分到最近的聚类,聚完类后中心点发生变化了,于是更新中心点。然后再计算其他所有点到这K个中心点的距离重新聚类,中心点又会发生变化,如此迭代下去。
  聚类精度
  经过近5万条数据的聚类分析,KMeans的聚类精度基本可以达到80以上,基本可以满足当前日志聚类分析的需求。简单总结
  基于前面分析可以看到整个日志聚类分析可以分为如下几个关键步骤:1。进行日志文本预处理
  2。进行分词
  3。词频统计,文本转向量
  4。计算余弦相似度
  5。基于聚类算法进行聚类
  在聚类结果如果无法满足需求的情况下,还需要提供人工修正的功能,其中人工修正包括了高频词的定义,停用词定义,词权重的定义等。
投诉 评论 转载

成龙和施瓦辛格尽出烂片,不是年龄问题,是态度问题在70后、80后的青春记忆中,香港电影带来的美妙感觉是无与伦比的,灿若星河的好演员陪伴我们度过生命中最美好的十几年,成龙大哥更是其中的佼佼者。《尖峰时刻》他奉献出的……于月仙为何一生无子,听到原因真是太心酸了说起于月仙大家可能也是最近才听到这个名字的。很多时候听到的都是大脚婶、谢大脚等等。也许你才知道大脚婶叫于月仙的时候,她却离我们远去了。事情是因为大脚婶所乘SUV撞上骆驼,车祸导……电影北极没有对白,用无声的语言深刻剖析人心冰天雪地的极地,一架坠毁的飞机、一副巨大的SOS,一个胡子拉碴的中年男人,每天的工作就是捕鱼、发射信号、还有躲避北极熊的攻击,他是失事飞机的幸存者,每天期望得到营救,但每天都是……超级跑车壁纸高清壁纸,超级跑车布加迪兰博基尼超级跑车(Supercar)即人们常说的超跑。一般是指拥有高强动力输出、出众外形的跑车,价格一般高达数百万至千万,最高时速可达300kmh……为什么美剧那么喜欢黑俄军呢?都是当年苏联军队留下的阴影如果你喜欢看一些美剧的话,你就会发现一件事情,就是在很多的美剧里面,对于俄罗斯的描述都是各种黑,在电影《末日孤舰》里面,第一季主角们碰到的俄军巡洋舰,还遭到了他们的核弹洗地,这……瘦大了太虚?车晓7月天穿毛衣上课好憔悴,成人口罩大到戴不住7月19日,车晓晒出了一组上课后的照片,一身牛仔裤装造型,的确很有现代大学生的清爽状态,减龄造型也充分显出她38岁的好状态,镜头前车晓身姿挺拔,课后悠哉分享日常穿搭,俨然变成了……流浪汉自称住别墅开玛莎?流浪汉身份已确认,系马来西亚籍华人18日,荆州市社会救助中心在1个月前救助一名流浪男子,对方不记得个人身份等信息,但是会说粤语和英语,且自称住别墅开玛莎拉蒂。当天,救助中心在多家网站发布寻人信息。工……对智能化运维中日志聚类分析的一些思考日志聚类分析可以理解为AIOps智能化运维的一个子内容,对于日志本身也分为了操作系统日志,数据库和中间件日志,业务系统本身自定义错误日志等。今天只分析对业务系统错误日志聚……潘粤明版昆仑神宫定档,看到李晨的名字后,网友表示不想追了相信大家都看到了,在最近几年的时间当中,鬼吹灯系列的电视剧,在网上引起了太多人的关注,尤其是潘粤明搭档张雨绮,在这部系列剧当中给大家奉献了太多的经典演出,至今仍然让人记忆犹新,……理想与现实的博弈限电困局如何破?最近一段时间,多个省份拉闸限电的影响越来越大。前不久沿海南方省份的工业限电主要冲击的是外贸制造业。到今天,东北的不通知拉闸限电已经影响到了部分人正常生活。北风一直没……哈利波特赫敏与哈利罗恩的吻戏,才是三位演员最难演的戏《哈利波特》系列电影一拍就是10年,片中的三位主角也从互不相识,成长为彼此人生中最重要的伙伴。然而,和自己最好的朋友在镜头前kiss,而且还是当着那么多熟悉的面孔,这感觉……消失69天的李子柒,惹大麻烦了李子柒究竟摊上什么大事了?最近两个月,经常看到李子柒上热搜。在李子柒消失的这六十多天,她也没闲着。又是报警,又是在社交平台内涵资本,看来像是被什么人盯上了。……
只当造句用只当造句大全年开发区安全生产工作汇报科举舞弊什么罪科举考试作弊会受到什么惩罚商用洗碗机十大品牌越剧梁祝观后感字曹爽的结局是什么呢曹爽是怎么死的野玫瑰花的功效与作用张本造句用张本造句大全新手开店必知开直通车为什么没流量收藏和保养紫砂茶具扫黑决战院网双丰收,爱奇艺意在擦亮电影原创新招牌上身造句用上身造句大全

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找