封神-运维大脑 | 日志检测工具

简介: 封神-运维大脑 | 日志检测工具

 

0.png

 

1. 背景目标

阿里云应用业务有问题,云平台监控可以发现问题,但并不能定位到问题根本原因,运维大脑监控底层日志,可快速定位问题原因,帮助现场运维同学解决问题。
运维大脑融合SRE方法,专注于深度运维的技术服务领域,帮助客户与现场,增强租户视角运维监控能力、提升平台视角问题定位效率、加强双维度容量性能运营能力。浓缩TAM现场运维经验,多样化地、标准化地、智能化地向客户输出运维能力与技术服务。

2. 开发设计

 

1-1.png
图1:流程图

 

2.1 日志配置

如图2所示,可通过运维大脑前端页面配置需要监控的日志,可单独新增也可批量导入。配置信息包括产品、服务、服务角色、日志类型(DOCKER 物理机 VM)、日志路径、监控周期、算法(ML-TOP ML-CP ML-KEY)、状态(开启\关闭)。

 

2.jpg
图2:日志配置

 

2.2 日志训练

前端配置日志信息存储到后台数据库,后台程序通过产品、服务、服务角色等条件查询相应的主机名。

 

3.jpg
图3:数据库

 

定时任务启动,根据获取到的主机名通过PSSH命令下发训练脚本到各个机器上。下发前判断各台机器是否已存在训练脚本,如果脚本已存在,则停止下发命令。

 

4.jpg
图4:pssh

 

训练脚本开始工作:首先读取日志,通过正则进行英文分词(英文文本可通过NLTK库分词,中文文本可通过JIEBA分词进行切分,在这里选择最简单的PYTHON自带的RE模块根据特殊符号进行切分),统计总词数,并计算每个单词的词频。按词频排序将单词以二进制形式写入TOP模型文件,词频写入CP模型文件,如图5所示。
警告:文件命名最好以服务角色+文件路径的方式命令,否则在后续读取的时候可能会冲突。

 

5.jpg
图5:文件命名

 

2.3 日志分析

定时任务启动,同训练过程初始化一样,首先判断各台机器是否存在分析脚本,如若不存在,进行下发命令。
分析脚本开始工作:首先读取日志,区别于日志训练,分析脚本会根据前端配置的监控周期进行选取(比如监控周期为30分钟,则分析脚本会选取当前时间至30分钟之前的日志进行分析)。同训练脚本一样,读取日志后,进行文本分词,计算词数,统计词频。读取模型文件,根据不同的算法(算法这块在文章第三部分会单独进行讲述),计算算法权重值。对算法权重值进行阈值判断,超过阈值,会判断日志异常信息并从日志文件获取。分析结束,最后把产品、服务、服务角色、日志文件、日志级别(ERROR\INFO)、算法值、日志错误详情、监控时间等监控数据进行入库,并在前端页面进行展示,如图6所示。

 

6.jpg
图6:日志分析

 

2.4 模型优化

训练模型初始化的弊端在于无法手动去打标签(正常\异常),所以对于初始化后的模型文件肯定不能是一个完全正常的模型,需要后续不断的去优化。
定时任务启动:还是一样的流程,完成读取文件、分词等工作后,生成的模型文件与源模型文件对比,对比方法与算法相同,阈值比分析阈值更低,低于阈值后,单词词频字典进行合并,按次序排序后分别写入源模型文件。至此,整个日志过程完成闭环操作。

2.5 日志巡检

日志巡检是对自身系统运行状况的监控,环绕整个闭环操作。日志训练、分析、模型优化通过定时任务去驱动,日志巡检对每一步操作过程进行成功判断,并对异常的操作进行原因分析,相关数据存储入库,并在前端进行展示,如图7所示。

 

7.jpg
图7:日志巡检

 

3. 算法逻辑

运维大脑所开发的算法借鉴了贝叶斯和文本相似度两大算法,以传统的自然语言处理方式对文本进行分析。

3.1 分词方式两种常用方式:结巴分词 和 nltk库分词

结巴分词适用于中文分词,分词原理为:
①基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)。
②采用动态规划查找最大概率路径, 找出基于词频的最大切分组合。
③对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法
nltk库只能用于英文分词,除此以外还可用于词性标注和文本分析。
个人认为英文分词以空格或部分特殊符号进行切分即可:re.split()。

3.2 TF-IDF

TF-IDF是Term Frequency-Inverse Document Frequency的缩写,即词频-逆文档频率,用来刻画一个词语在某篇文档中重要程度,也就是说是否可以用该词语来代表某篇文档的主要内容。

  • TF表示词频。给定几个关键词,在某篇文档中出现的次数最高者,则说明该文档与出现次数最高的词语关系最密切。用词语出现的次数除以文档的总词汇数,就是TF,当然此处在统计文档总词汇时,把类似于“了”、“的”、“地”、“即”等词语排除在外不予考虑。引入词频后,则某个词的词频越高,该文档与其关系也就越大。

    TF计算公式为: TF = 词语在文档中出现的次数 / 文档词语次数

  • IDF表示逆文档频率。如果一个词语在某篇文档中出现的TF高,但是在语料库的其它文档中出现的次数少,则说明该词语对于文档分类具有重要作用,因此引入IDF来刻画此项数据,其值越大,说明该词语对于语料库来说具有越好的区分能力。如果某个词语在每篇文档里均出现,且出现的次数很接近,则该词语用来区分文档时效果便不好。

    IDF计算公式为: IDF = log(语料库文档总数/包含某词语的文档数+1)

  • TF-IDF 值越大说明某个词语用类识别文档的区分度便越大。
  • TF-IDF计算公式为: TF * IDF

3.3 文本相似度

Latent Semantic Indexing(LSI)从文本潜在的主题进行分析。LSI是概率主题模型的一种,另一种常见的是LDA,核心思想是:每篇文本中有多个概率分布不同的主题;每个主题中都包含所有已知词,但是这些词在不同主题中的概率分布不同。LSI通过奇异值分解的方法计算出文本中各个主题的概率分布,严格的数学证明需要看相关论文。假设有5个主题,那么通过LSI模型,文本向量就可以降到5维,每个分量表示对应主题的权重。
可参考文后资料[1]了解详情。

总结下文本相似度和贝叶斯算法的处理过程:

  1. ML-LSI
    ①使用nltk库分词将日志文本切割。
    ②建立词袋模型。
    ③建立TF-IDF模型。
    ④构建一个query文本,确认主题,利用词袋模型的字典将其映射到向量空间。
    ⑤构建LSI模型,设置主题数为2(ERROR、INFO)。
    ⑥计算文本相似度。
  2. ML-BAYES
    ①使用nltk库分词将日志文本切割。
    ②对处理之后的文本开始用TF-IDF算法进行单词权值的计算。
    ③去掉停用词。
    ④贝叶斯预测种类。

运维大脑日志分析算法包括:

  1. ML-TOP
    weight = x * w
    x : 验证集top10新出现个数
    w : 单个词权重值 0.1
  2. ML-CP
    weight = x / w
    x : 词频变化超过0.02数
    w : 词频变化总数
  3. ML-KEY
    weight = x / w
    x:关键词日志行数
    w:日志总行数
  4. ML-NUM
    weight = x * w
    x:异常日志行数
    w:0.1
    开发思路:
    ①获取日志k:v 求v平均值 报错num模型。
    ②对比新日志v值。

4. 总结

本期给大家介绍了封神系统运维大脑模块的相关知识,分享了机器学习中两个常用的文本分析算法。目前运维大脑所能达到的效果是可以把日志中报错进行识别并展示,但是我们的最终目标是可以识别出故障,虽然普通的报错可能对平台并没有太大的影响,但是频繁的报警并不利于运维工作的开展。
关于运维大脑暂时就介绍这么多,当前也确实存在一定问题,待后续完善后会再跟大家介绍,然后如果同学有更好的算法或者思路,欢迎讨论!
接下来的文章会陆续给大家介绍封神的其他模块,包括实时告警、运维大盘、报表分析、数据网关、妲己纣王、时序数据库等相关知识,敬请期待!

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hive sql练习_经典的SparkSQL/Hive-SQL/MySQL面试-练习题

经典的SparkSQL/Hive-SQL/MySQL面试-练习题​mp.weixin.qq.com第一题需求:已知一个表order,有如下字段:date_time,order_id,user_id,amount。 数据样例:2020-10-10,1003003981,00000001,1000,请用sql进行统…

世纪联华的 Serverless 之路

简介: 2019 年 双11 过后,世纪联华快速上云,将线上核心业务改造为全 Serverless 架构的中台模式,采用“函数计算API 网关OTS”作为计算网络存储核心,弹性支撑日常和大促峰谷所需资源,轻松支撑 618 / 双11 /…

“5G+AI”到底有啥用?这篇漫画告诉你答案…

作者|小枣君来源|鲜枣课堂根据工信部最新的数据,截至8月份,我国5G基站数量已超过百万,达到103.7万个。面对这张全球规模最大的5G网络,我们不禁会思考——它究竟会发挥怎样的作用?它的价值到底体现在哪?它会…

Kubernetes 稳定性保障手册 -- 可观测性专题

简介: 伴随大家对稳定性重视程度的不断提升、社区可观测性项目的火热,可观测性成为了一个很热门的话题,站在不同的角度会产生不同的理解。 我们从软件开发的生命周期出发,尝试形成对可观测性的一个宏观理解,并从 SRE 和…

读懂 Redis 源码,我总结了这7点心得

作者|Magic Kaito来源|水滴与银弹阅读本文大约需要 8 分钟。你好,我是 Kaito。用了这么久的 Redis,也翻了很多次源码,经常有人问我到底怎么读 Redis 源码。一提到读源码,很多人都会比较畏惧,认为读源码是高手才会做的事…

linux c url下载文件,OpenCV教程之使用cmake生成MakeFile时下载文件

在编译OpenCV以及其附加模块时,有时会需要一些第三方的库,如果本地没有,会自动下载,下载地址一般为GitHub,结果当然就是卡死在那里,根本无法下载,下面教大家如何解决这种问题。问题重现比如我在…

OpenTelemetry 简析

简介: OpenTelemetry 是 CNCF 的一个可观测性项目,旨在提供可观测性领域的标准化方案,解决观测数据的数据模型、采集、处理、导出等的标准化问题,提供与三方 vendor 无关的服务。 2021.02.10,OpenTelemetry 的 tracing…

涨姿势 | 一文读懂备受大厂青睐的ClickHouse高性能列存核心原理

简介: 本文尝试解读ClickHouse存储层的设计与实现,剖析它的性能奥妙 作者:和君 引言 ClickHouse是近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域。目前国内各个大厂纷纷跟进大规模使用&…

xp正版验证补丁_实操web漏洞验证——IIS HTTP.sys 整数溢出漏洞

一、漏洞描述Http.sys 是一个位于 Windows 操作系统核心组件,能够让任何应用程序通过它提供的接口,以 Http 协议进行信息通讯。微软在 Windows 2003 Server 里引进了新的 HTTP API 和内核模式驱动 Http.sys,目的是使基于 Http 服务的程序更有…

普通公司编程水平与BAT大厂相比,差距到底有多大?

前言BAT的牛人多,普通人也多,虽然他们不是每个人都能达到令人仰望的技术水平,但毕竟平台高,所以眼光会变得宽阔;代码要求更为严格,所以普通的程序员也会被逼变得更优秀;身边的牛人多&#xff0c…

mindi linux 使用教程,Linux使用入门教程之tuned

tuned是RHEL6推出的调优工具,可以简单、动态的调整系统。默认的tuned软件包包含9个调优配置文件,对laptop、desktop、server系统的省电策略、磁盘调度算法、缓存、内存脏页回写等等的调节。tuned包安装后有两个服务,tuned和ktune,…

货运物流移动端解决方案:为货运物流行业打造高性能、高粘性的“双端”触点

简介: 在业务碎片化的情景下,怎么通过平台做整合,建立你的专业化运维池? 从 2020 年发展网络货运以来,在互联网和大数据的协作下,传统的物流企业逐渐转向信息化模式,在政策的不断推动下&#xf…

互联网泛娱乐直播安全的解决之道

简介: 阿里云的CDN和视频云产品在直播安全场景下有广泛的应用,阿里巴巴集团的淘宝、优酷等业务的直播正是基于这些产品底层能力,构建了强大的直播安全体系。这个基于阿里巴巴集团自身业务实践打磨出来的架构设计,也被众多上云客户…

wps office2019PC版和Mac版_学用系列WPS教育版的“十八般武艺”

相信不少朋友都在使用wps进行办公学习,但相信不少教师学生肯定不知道其实WPS还很用心提供教育版,里面有不少实用且好用的学习工具可以让我们的学习如虎添翼。今天胖胖老师就为大家介绍一下新版本WPS教育版的“十八般武艺”,欢迎大家一起来尝鲜…

只因“薪水过高”!被欠薪三个月后遭解雇,程序员删库反击

译者 | 弯月 责编 | 王晓曼出品 | 程序人生 (ID:coder _life)非技术出身的公司创始人往往并不了解开发人员的价值。如果他们的产品是科技产品,那么开发人员就是公司的燃料。我从一位同事那里听到了这个故事。故事的主人公叫做小…

linux模拟内存数据落盘,Linux:保证数据安全落盘

背景在很多IO场景中,我们经常需要确保数据已经安全的写到磁盘上,以便在系统宕机重启之后还能读到这些数据。但是我们都知道,linux系统的IO路径还是很复杂的,分为很多层,每一层都可能会有buffer来加速IO读写。同时&…

阿里云高级技术专家周哲:阿里云边缘云原生应用实践

简介: 为什么需要边缘云原生?边缘云原生的技术特性和优势是什么?它可以为行业提供哪些关键能力?又有哪些场景适合边缘云原生呢?在MEC全球应用开发者大会的“MEC开放论坛”上,阿里云高级技术专家周哲进行了《…

dataframe 如何选中某列的一行_PySpark和SparkSQL基础:如何利用Python编程执行Spark(附代码)

作者:Pinar Ersoy翻译:孙韬淳校对:陈振东本文约2500字,建议阅读10分钟本文通过介绍Apache Spark在Python中的应用来讲解如何利用PySpark包执行常用函数来进行数据处理工作。Apache Spark是一个对开发者提供完备的库和API的集群计算…

重磅官宣:Nacos2.0 发布,性能提升 10 倍

简介: 继 Nacos 1.0 发布以来,Nacos 迅速被成千上万家企业采用,并构建起强大的生态。但是随着用户深入使用,逐渐暴露一些性能问题,因此我们启动了 Nacos 2.0 的隔代产品设计,时隔半年我们终于将其全部实现&…

deepin linux 2014 硬盘安装教程,Linux Deepin的硬盘安装

于是装了,问题来了,即使执行了sudo umount -l /cdrom,也不能直接把原来的个人文件分区挂成/home,因为liveCD的内容还放在这个上面(想不通,我只是挂载,又不格式化,怎么就行了?新氧好像…