版权所有©德塔精要,转载请注明出处
利用机器帮助运维人员实现日志分析,发现问题,提出解决方案是我比较感兴趣的一个方面,下面的系列文章,我准备从这个方向入手,尝试构建智能日志分析系统,并把系统构建中的点滴记录下来分享给每一位兄弟姐妹。在系统的构建过程中,也希望得到大家的指导、帮助。
日志数据作为IT系统重要的一种数据源,一直是分析问题、解决问题最直接的手段。
在日常运维中,大量的机器日志使得处理问题、追踪日志变得困难重重,因为产生了大量处理日志的工具,ELK(ElasticSearch,LogStash,Kibana)就是一款开源日志分析软件,ELK非常强大且有效,他可以实现日志数据的收集、过滤、可视化等。
但在使用ELK的过程中有一个非常重要的问题,那就是ELK非常依赖使用者的知识体系,我们必须告诉ELK我们想要什么、数据在哪里,ELK才能按照我们的要求查询并可视化数据,对那些我们不了解的就无能为力了。
近些年来机器学习算法已经被证明在解决某些复杂问题上是确实可行的。从手写体识别到汽车自动驾驶、从垃圾邮件过滤到医学诊断,机器学习已经在众多需要行业专家的领域提供了解决方案。
监督型机器学习
在众多的机器学习算法中,监督型机器学习是数据科学中最强有力的工具之一。
监督型机器学习的基本原理是“利用样本数据进行学习”,算法依赖于问题领域相关的数据以及数据的标签(元数据)。
例如:图像识别中,照片(本质上是一组像素)就是领域数据,同时我们还提供一个标签用于表示照片的含义,照片是一只猫、一辆车等。
在监督学习中为数据加标签(标记数据)是一个很重要的部分,他直接影响到输出结果的质量。
通过这种方式机器学习算法能够筛选大量数据,建立必要的相关性,从而推断出数据之间的相互依赖管理。
在日志处理过程中,我们可以利用分类器标记出我们“感兴趣的数据”。
基于上述理论,日志分析其实可以划分为分类问题,从而拆分为:
1、创建数据标签库
2、训练分类器
1
如何创建标签库?
日志关联性问题是一个重要的问题,某个日志条目可能对某个用户或事件非常有用,但对另外一些用户或事件则毫无意义。而且,在数据标记过程中“感兴趣的数据”有可能无法被正确标记,或者数据就被丢弃掉了。
关注用户行为
我们可以收集用户使用我们软件的交互行为。关注哪些告警、查看了哪些日志、创建了哪些数据的图表等等。这些交互行为都可以表明什么是用户关心、哪些是对用户重要的。另外,不同行业、不同领域的客户对我们获取用户行为是有非常重要帮助的。
获取网络公共资源,例如公共问答网站
例如:Stack Overflow, GitHub,甚至WiKi,百度知道等站点都包含大量的知识,这些知识可以用来评估日志是否重要甚至是日志根因的解决方法。
利用这些资源我们可以构建出非常丰富的标记日志数据集,以及有关日志相关性,频度的元数据,甚至可以给出解决问题的方案。
2
如何训练分类器?
当我们有了充足的日志数据以及相应的标签,我们就可以构建日志分类器了。
分类器可以有很多方式Linear Support Vector Machines(SVM),SVM简单易证明。
关于SVM可参考:
http://www.cs.cornell.edu/people/tj/publications/joachims_98a.pdf
https://zh.wikipedia.org/wiki/%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA
另一种可行的分类器是随机森林,随机森林特别适用于特征分类(非数值)的情况。
关于随机森林:
https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm
从局部看分类器简单,但是如果将TB级别的数据,以及所有用户的交互行为组合到一起就可以形成庞大的关联信息,从而训练出强力的机器学习代码,从而实现智能日志分析。
《浅谈大数据第一期》
德塔 | 专家团队
干货 | 共41篇
版权所有©️德塔大数据研究院
转载请注明出处
DaaS慧报(有温度的大数据报告)
大数据落地方案
大数据思想
主编:林帅兵|德塔大数据研究院院长
责任编辑:孙一欣
责任美编:彭 琦
德塔大数据研究院专家团队
师文轩|德塔大学名誉校长
李智博/董旭/李宝环/王凤君/孙一欣/林帅兵 ……
欢迎在下方留言,“塔塔”会在第一时间回复您!
领取专属 10元无门槛券
私享最新 技术干货