܄

互利科技CEO林坦:大数据在日志分析的应用与实践

【数据猿导读】 最近,一场“大数据商业应用与创新峰会”在北京举行,来自全国各地的大数据领域人员欢聚一堂,就大数据的商业应用和价值实践进行深度探讨和分享。互利科技CEO林坦在会上发表了演讲,重点给大家分享了大数据在日志分析中的应用和实践

互利科技CEO林坦:大数据在日志分析的应用与实践

7月6日下午,由36大数据联合搜狐科技、物联中国、至顶网、人民网、泡泡网等多家媒体共同举办的“大数据商业应用与创新峰会”在北京火爆召开。这场行业盛会吸引了来自IBM、亚信数据、聚合数据、诸葛io、互利科技、神策数据、海云数据、万象等众多公司的业界精英参与。来自全国各地的大数据领域人员欢聚一堂,围绕着大数据行业热点和和发展趋势进行了巅峰对话和交流,就大数据的商业应用和价值实践进行深度探讨和分享。

互利科技CEO林坦在现场为大家分享了大数据在日志分析中的应用经验。他从技术的角度为大家介绍了日志的背景知识和日志在数据分析中的应用,并针对日志管理现有存在的问题进行了详细剖析,林坦认为由服务器和路由器等网络设备产生的日志数据作为大数据的代表,其非结构化、多来源和分布式等特点给企业数据分析平台的建设带来了挑战,互利目前的日志解决方案已经可以做到实时搜索和业务分析,互利科技希望在未来的技术实践中让数据分析更智能。

北京互利科技有限公司专注于解决企业级数据分析与管理问题。旗下产品HOOLI日志分析平台,可以对IT运维日志、业务日志等非结构化数据实时采集、搜索、分析、监控和可视化,帮助运营商、互联网、金融、物联网等行业挖掘数据价值。

以下为互利科技CEO林坦演讲速记:

大家好!我是互利科技的CEO林坦,刚才诸葛io的孔淼讲的数据分析的东西非常好,我也谈一谈大数据在日志分析中的应用和实践。主要分为以下五个模块来讲:

背景知识;

存在的问题;

解决方案;

HOOLI产品;

应用场景。

什么是日志?我们知道打网球的时候,网球赛场上会有一个应用系统,是用来记录运动员的一举一动,事后做运动员的动作分析,帮助他们网球技术的提高。日志也是类似于机器内的应用系统,它时时刻刻记录着服务器每时每刻的动态。

这是一条典型的访问日志,这样一条平时看上去不太可读的信息,其实它包含了大量有用的信息。它包含了用户的访问来源,用户的访问时间,访问之后系统的回复,包括使用什么浏览器访问,以及访问了哪些资源。

日志分析属于ITOA(IT Operation An)的范畴,ITOA是美国近几年提出来的概念。它主要的意思是说在海量数据中发现复杂的模型,并用这些模型做分析的过程。我们可以看到ITOA分4个阶段,随着阶段上升复杂程度的不同,它能提供的商业价值也是不同的。第一步是最基本的数据管理,在数据管理之上有基本的监控告警功能,再往上是实时关联分析,它可以做数据的关联分析。数据在很多的情况下都是单点,怎么把数据串成线,这是关联的过程。最后是预测预防,这是最有价值的东西。前面都是事发以后,我们做事后的补救,哪怕再及时也是事后的补救,我们希望在事发之前可以知道有一些问题存在或者需要做一些增长的扩容等等。

 

现在日志分析中主要存在四个问题。一个是统一管理的问题,统一管理主要是说日志的形式很多,怎么把它统一起来,并且把它安全的存放起来。其次是海量数据存储。我们知道非结构化数据大概占90%以上,它每天的增量也是按指数级增长的,如何把这些数据存储起来,是一个很难的问题。

再一个是复杂动态的系统。大量应用微服务的架构和云计算导致我们的系统越来越复杂,并且这些复杂的系统是时时刻刻有事件在传递,服务和服务之间也是时时刻刻有数据交互的。在这样一个复杂动态的系统中,你想找到一些问题或者是想了解一些系统情况是十分复杂的。根据系统规模不同,公司大小的不同,可能一个工程师每天要花20%到80%的时间做这个事,而且这个事做起来不是那么愉快,因为它的过程比较繁杂。最后一个是信息关联,有了前面的3个基础,我们最终是想利用数据做一些分析,如何在海量数据中利用这些信息做实时的关联分析?

首先是统一管理。我们可以看到一个正常的系统可能包含了不同的模块和部分,从最底层的网络到虚拟机再到操作系统以及数据库、中间件和开源框架、程序代码,这些都是可以选择不同的配置。同时产生的数据格式也是各不相同的,如何把它统一管理起来,这是我们需要处理的问题。统一管理起来之后如何安全的存放又是另外一个问题,所以我们需要统一的日志中心把这些格式不同的数据管理起来。

其次是存储方式。这个是传统的关系数据库的图,它可以用清晰的二维表结构表现出数据的结构,并且它可以通过主键的关系把数据关联起来,接下来你想做分析是十分方便的,因为它们的结构已经非常结构化了,并且本身通过主键关联起来了。而非结构化的数据,日志数据,完全是没有结构的,你无法用这种图表存起来。所以我们需要用到非关系型数据库,包括文件系统存储这些海量数据,并且这些存储方式都是分布式的。

第三个是动态复杂的系统,这是纽约市地铁地图,它以脏乱差和难乘坐出名,它每条线有时候还分单双号,单号停哪个站,双号停哪个站,你想看懂这个地图要分析半天。

最后是信息关联,假设我们开发了一个APP,有用户反馈说你这里出了什么问题,交给我们程序员,我们程序员要做什么事呢?他先从代码级的日志中找通过的用户ID关联的服务器,最后发现可能是虚拟机内存爆了或者是其他情况导致程序无法访问。我们也可以看到它的关联信息的过程不是那么容易的,首先关联很多层,并且这些信息都是一些数字,你把这些数字关联起来,是一个比较烦琐的过程。

如何解决这些问题呢?既然问题出现了,企业包括工程师肯定会想办法解决。现有典型的解决方案,一个是从公司层面大家会招更多的人,招人其实不是非常好的方案,因为有些问题你是不能拆分的。比如说现在甲在做A事的时候,你加一个人进来,未必效率就提升了,反而可能导致沟通成本上升,导致整体解决事情的效率降低。其次是增加人员之后对于公司来讲它的管理成本也会上升,人员成本也会上升,所以这并不是特别好的方案。

然后有一些技术实力比较强的公司,我反正有程序员,我自己利用开源框架自己做一套解决方案。做的过程中就会发现开源框架里面坑挺多的,你需要不停的更新迭代做维护,所以这也不是一个省时省力的方法,最后出来的产品并不能达到你的期望。

第三个方案是有些公司说我有钱,我直接找解决方案提供商,基于我现在的需求定制一套系统,因为是定制的,所以价格肯定是非常贵的。并且我们知道现在公司发展很快,你的业务在不断的增长,原来那套系统是否能跟上业务新的增长,这也是一个问题。

而我们的方案需要做什么呢?我们想做的是,首先把任意的数据格式统一收集起来,做基本的清洗和结构化的工作。其次我们对数据建立索引,这样就和系统内部有谷歌一样,你可以通过搜索的方式检索你想要的信息。

最后我们做数据建模的工作,加强信息之间的关联关系,保证你更好的挖掘这些信息的价值。我们目前基本实现了全文检索、告警、可视化、权限管理者几个功能模块。

我们从时间上对比过去和现在的做法。在这四个场景下,过去异常查询,远程连接一台服务器grep,awk,sed写script;现在我们可以通过关键字搜索所有的日志分析。过去你被入侵了,你甚至都不知道怎么回事或者系统有异常,都不知道攻击来源,也不知道它是怎么入侵的;现在我们可以通过日志做数据关联关系分析,查找攻击来源,定位漏洞,找到黑客。

系统性能优化方面,原来我们会埋入探针,提高和系统的耦合度。现在日志它是纯第三方的平台,它和系统的耦合度是非常低的,你这边的系统是不会影响到那边客户的原系统的,可以基于日志记录的事件做分析。

最后是业务分析,刚才孔淼也讲了,业务分析原来有建数据仓储,用Hadoop跑数据存储的方案,这些方案存在一些问题,一个是它的速度比较慢。现在用日志来做,它基本上可以达到实时业务分析的能力。

从生态上来对比一下,同样是这四个场景,我们看Hadoop是可以做业务分析的,监控它也可以提示一些异常的问题,它可以做到代码监控。安全分析同样监控只能提供某个点,因为它是单点数据。它同样是支持非常细的代码级分析的能力,同时它和系统耦合高,而日志分析这一块,从查询上来讲它是支持实时查询的,并且它是不需要埋点的。它保留了所有的数据,并且有数据之间的关联关系,所以它可以做安全问题的回溯分析。从系统来讲,它可以做性能的检测与分析,支持粗粒度分析,基本可以满足用户80%左右的需求。最后是业务分析,因为日志信息里面同时也包含了业务数据的场景,所以它是支持实时性的业务分析,这点可能比 Hadoop快几十倍。

刚才是从时间和纬度上对比,现在介绍一下我们的产品,这个是我们产品的长相,刚才我们提到搜索功能,所以上面是有一个搜索框,它可以对搜索语句进行检索。左下角有抽取出来的字段,对这些日志格式做了解析之后,从这里面抽取出有用的信息。

这是基于统计数值产生的图表,它是完全可定制的仪表盘,你可以添加任何你需要的信息在仪表盘内做一个全盘系统的监控。

还有我们的告警功能,它是可以分多级告警,可以设置时间和通知联系人的告警方式。最后有一个数据管理的功能,我们知道可能在企业内部,不同级别的人可能管理层和普通员工能看到的数据是不一样的。所以我们做了比较细的数据隔离,保证不同权限的人可以看到不同的数据。

比如说搜索功能,刚才说过我们支持精准和耦合匹配,同时我们也支持搜索语句管道的能力,类似于Linux管道命令,你可以把前一个搜索结果作为下一个搜索结果的输入。这样的好处你是很容易基于搜索语句把你需要的信息关联起来,而不是每一条语句做查询。

再一个是多级别告警,我们经常听到工程师抱怨每天要收到上千封邮件,我们做了基本的告警归类,而且这个告警是基于搜索语句的,而不是基于某一个单点的告警。所以其实理论上你可以定义任何你想要的告警通知的信息,无论是业务增长还是说系统异常方面。保证不同的人有不同的权限去看不同的数据,使用我们产品不同的功能模块。

再给大家举个例子,刚才讲的都是理论上的东西,我们看看具体的实例。首先应用场景上来说有三个场景:

运维。查异常错误,定位系统问题;

安全。做被黑客入侵之后的安全分析;

商业洞察。对于用户行为分析,建立用户画像。

假设有一个网站用户访问进来说,怎么网站总上不去。他反馈给我们的工程师,我们工程师也不知道为什么。很多时候我们也是出了问题之后,我们也不清楚具体的原因是什么,我们只能做一个模糊的判断,对服务器的返回码做了区间搜索,我们知道四百到五百基本上是服务器常见报错的行为,在下面的图表中间找到了在某个时间段内发生问题最多的时候,它首先阅读用户来自哪个浏览器、请求行为、时间,这里面到底发生了什么事,可以通过结构化好的数据做一个基本的判断。

接下来它通过左边的字段,把他认为有用的图表添加到仪表盘里面。从图表中可以看到大部分是来自404,也看到了用户来源的地理分布,可以看到是北京节点是最多的。请求路径,既然现在资源是无法访问的,具体是哪个无法访问?现在做了统计,在这时间段内用户发生问题是用怎样的方式去访问这些资源?

最后发现在北京节点内有一个图片文件,在7月1号的时候用别的方式请求大部分的图片文件,最后都返回404找不到这个文件,这样就很好的定位了出错的原因。基于结果分析,它发现大部分来自404,为了防止以后这个事情再次发生,把404作为单独的搜索语句,并设置为告警条件,保证以后在一个小时内这个事件发生大于1000次,自动通知相关的人员。

如果这个事件触发在已触发的告警里面察看这样的状态,并且可以直接通过查询结果看到触发状态时候所有的日志和图表情况。

刚才是一个简单的例子,我们给客户做的图中也发现了一些其他的例子。比如说有些用户的网站经常会有failed password事件发生,我们当时判断有黑客入侵的行为。我们也同时用clientip定位来源,这样可以把IP封掉。同时还可以利用error和 exception发现报错的原因,结合pid 、ip以及 timestamp发现服务器原来是宕机的原因。最后是流量分析。你通过分析前十的http来源,可以基于这些来源做一些SEO,提高网站的访问量,这就是HOOLI的应用场景。

去年华兴资本投资我们公司,目前有一批客户,还有更大的客户我们正在做的过程当中。我们也和AWS、阿里云、腾讯云和金山云、青云有一些战略合作关系。我们公司核心成员基本上来自世界500强企业,并且我们公司人人都懂代码,可以帮助企业更好的发展,帮助职员更好的实现自身价值。

谢谢大家,这是我今天的分享。


来源:36大数据

声明:数据猿尊重媒体行业规范,相关内容都会注明来源与作者;转载我们原创内容时,也请务必注明“来源:数据猿”与作者名称,否则将会受到数据猿追责。

刷新相关文章

旅游交通大数据——大众旅游时代的“富矿”
旅游交通大数据——大众旅游时代的“富矿”
#榜样的力量#疾控AI分析平台WDCIP——以科技力量贡献“大数据”智慧丨数据猿新冠战“疫”公益策划
#榜样的力量#疾控AI分析平台WDCIP——以科技力量贡献“大数...
张涵诚:大数据招商平台可推动地方供给侧改革
张涵诚:大数据招商平台可推动地方供给侧改革

我要评论

精品栏目

[2017/12/19]

大数据24小时

More>

[2017/12/18-22]

大数据周周看

More>

[2017/12/18-22]

大数据投融资

More>

[2017/12/18-22]

大咖周语录

More>

[2017/12/13-20]

大数据周聘汇

More>

[2017/12/12-19]

每周一本书

More>

返回顶部