七牛云为什么会做日志管理平台?
而当前市场上的产品又存在哪些问题?
NIUDAY 深圳站中,七牛云技术总监、国内 Spark 领域首席布道专家陈超为大家带来了关于七牛云智能日志管理平台的应用与设计的分享,传递了这款日志管理产品的设计理念,以及能够解决的问题。
01 七牛云智能日志管理平台—— Pandora
Pandora 是对日志进行全生命周期管理的平台,适用于运维监控、安全审计、业务分析等典型场景。下图展示了日志从产生到消费过程中的链路:
下图为日志平台常处理的日志类型,包括:用户的访问日志、nginx 日志、数据库日志等等。
02 常见的客户应用场景
场景 1:机房集中化监控
这个场景其实也可以叫做数据中心的综合监控,因为无论是交换机还是服务器,以及服务器上所有跑的应用,最终都是通过采集器,经过实时清洗,发送到日志存储里做检索、分析。这里说个题外话,很多做 AIOps 的企业连数据都没有放在一起,数据散落在不同的监控系统中,由不同的人员维护,全是数据孤岛,要做更进一步的分析和挖掘,也将变得十分困难。
场景 2:应用质量管理
举个例子,移动互联网的客户在程序运行时,会产生各种日志,包含各种质量信息,如:访问速度、访问响应时间、成功率、失败率等,这些指标可以全部放进来进行统一的存储和监控。最关键的一点是快,快不是运行速度,而是从发现问题到解决问题的路径很短。右下角是基于历史数据做的更全面的质量分析,有了这些数据存在,才能对一段时间内的系统质量做统一的分析和 review。
场景 3:统一日志管理平台
统一日志是基于前两个场景演化出的。在华南地区,已有几十家企业都在用这套产品做统一日志的仓库,把所有数据汇到里面。然后基于统一的仓库进行质量监控分析,及对各种业务数据做统一,交叉分析。
场景 4:物联网数据分析和监控
物联网场景也是我们的重点之一,像智能制造、智能手表、智能手环及智能家居等。目前七牛的客户中,数据量比较大是一些智能制造企业,如机床的数据量很大,包括温度、湿度、压强、转速等,这些都是用这套产品做及时的监控和反馈。
03 泛运维人员面临的挑战及传统解决方案
什么是泛运维人员?
指的是现在的运维人员区别于以前的运维,不只是搞定服务器和网络就可以,更要深入到业务,并且每一个研发人员也应该有运维的意识。在七牛云,每一个研发都是运维,最终都是要为这个系统质量所负责的。
泛运维人员会遇到以上越来越复杂的问题,包括众多不同型号的网络设备、海量不同型号的服务器、不同的虚拟化方案、不同的操作系统、多样化的应用软件和数据库,成百上千的业务系统等。其中最后一点,各种各样未统一的监控系统,成了企业中出现问题而不能得到及时解决的重要原因。
复杂的环境带来了以下这些问题:
1.当监控软件特别多时,没有办法统一管理。
2.排错时间长。当系统复杂时,排查问题的流程就更漫长。在微服务的架构下,这个问题更是呈指数级的爆发。
3.安全挑战大。无法高效发现安全性的问题,比如黑客入侵和违规操作。
4.监控告警杂乱无章。正因为有很多独立的监控软件,这些不同的监控软件造成了各种独立的告警。
5.全局性弱。无法对全局情况有一个全面的掌握,都在看各自的监控系统。
6.管理员管理难度大。要监控的东西太多,总会漏掉或者总有不及时的情况发生。
Pandora 这套产品可以较好的解决这些每一个公司可能都会存在的问题。当然,这里面涉及到大量用户体验的问题,除了高稳定性和强扩展性,降低用户使用起来的心智负担,一直是 Pandora 重点努力的方向。
基于以上问题,传统的解决方案如下:
第一,使用 grep 等脚本工具。很大的问题是低效、易出错,更大的问题是不安全。
第二,使用 MySQL 汇聚数据。使用方便,但是能力有限。
第三,使用 NoSQL。大问题是不支持交叉查询与全文检索,使用负担相对大。
第四,使用 Hadoop / Spark / Storm。使用起来比较繁杂,不支持全文检索。
第五,使用 ELK。产品层面做的比较不足,超大数据量下稳定性存在挑战。
04 Pandora 助力解决日志难题
基于上述问题和目前存在的一些方案评估,七牛云推出了 Pandora 这款产品。
Pandora 的能力图包含两部分:Pipeline 和 Insight,作用分别是收集数据、清洗数据、分发数据及洞察数据。我们所做的很多努力,都是为了降低用户的心智负担。
下面是关于 Pipeline 和 Insight 的介绍:
Pipeline 要做的是基于各种数据源,做收集、转化,然后到达各类目的地。
Logkit,企业级的数据收集工具,极度易用。支持收集文本文件、消息队列、数据库、及服务器指标等多种来源的数据,配置简便。
从第一步数据收集开始,不需要填任何的文件,直接在 Logkit 的 web 上操作。需要读什么文件,只要把日志路径一写,选一下读取起始位置就 OK 了。
选择好数据源之后,下一步要做解析数据。Logkit 支持众多数据格式,如选 CSV 文件,那文件里数据就直接以表格的形式在 web 上预览了,很方便。另一方面,Logkit 还支持划词提取字段,无论多么复杂的日志,按照自己想要的格式,使用鼠标滑一下,填上字段名称和类型就 OK 了,超级人性化。
下一步是转换。比如要把某一个字段类型换一个其他名字或者要根据 IP 库转换成什么地区的,Logkit 内置的各种转换器可以全部帮忙搞定。
最后就是发送,填写下目的地就可以了。
现在对接一个数据源,要从文件里取数据,只需要一两分钟的时间。
除此之外,还有一个优势特点:这里的 Logkit 不会因为自己跑得太猛,影响服务器上其它的应用程序,会自动限制自己的资源使用量。当然,也有直接的监控页面供用户观测。Logkit 我们花了非常多的精力去打磨和完善,希望能做成最好用的数据收集工具。
下面介绍第二部分:如何洞察数据?
这部分的洞察和其他一些洞察的理念不太一样,希望有一种润物细无声的感觉。让用户以极低的心智负担完成整套数据检索和分析工作。
搜索,目前使用的是标准 Lucene 格式,大家应该非常熟悉了,检索方式跟使用 Kibana 一样。
不过,我们更进一步,可以自动统计出用户所搜索的时间范围内各个字段的值出现的个数,自动呈现出高频值,罕见值等等,我们甚至可以把搜索的结果直接做成各种报表,供用户更加直观的观看。
平台还支持联合搜索。可以联合两个仓库一起搜索和分析。
然后还做了一个划词分析:如果实在太懒,连查询语句都不想写,就在日志里划一下,不用写查询语句,从头到尾鼠标就可以搞定。
我们还支持实时搜索功能,它相当于 tail -f 功能。这个功能绝对是工程师 debug 时的好帮手。
然后是监控与告警。做法是你在做搜索时,可以直接以搜索的条件另存为告警。图中是我们在公有云上的告警邮件。
报表可以帮助大家更快的发现问题,是一个分析可视化的过程:
平台支持非常丰富的图表,并且报表的定义十分灵活。我们期望以一种非常简单的方式,就可以让用户享受到强大的报表功能。
有些公司还会需要大屏展示,我们从一开始就支持了大屏展示功能。
关于机器学习的功能:
可能用户都不知道机器学习在背后运作,但实际上现在内部背后已经有十几种算法在做自动分析,然后自动挑选算法,组合算法。对于用户,这些都是透明的。
第一点,可以对历史数据进行分析。
这是线上的真实数据,当有一些比较异常的点时,都会报出来。关于报的原因,鼠标点上去就可以展示出来。另外,它还有一个漏报。现在很多监控系统,都是以不能高于多少、不能低于多少来设置条件。但在条件区域里疯狂抖动时,应该是系统有问题了。这个疯狂的抖动,最后经过我们的查询发现,这个时间点发生了坏盘。以前我们的阈值是自己设定,现在是学习出来的,学习成什么样就是什么样。这个事情可以辅助配合以前的那套告警系统。
第二点,可以预测未来。
但大家更关心的应该是预测,有这些数据以后会怎么办?我们怎么做预测?
左边绿色区域这张图,按照它的数据进行趋势预测,如果接下来数据轨迹跟预测的走势不太一致,就会触发告警。即便告警条件没有达到以前设定的如不能高于 90%,它也会告警。我们希望在不停学习时,也能够以真实的数据做比对。在对历史数据做学习时,背后我们用了大概 11 - 12 种算法,自动做算法融合,并且会增量的学习新进来的数据。现在机器学习,比如很火的智能 AI,大家的做法都一样,不是 CPU 换成 GPU 就是深度学习,就是 AI 了。
目前,我们的这套产品背后的机器学习方式,做了基于 GPU 的算法,但现在跑在 CPU 上。之所以这么做,是希望针对 CPU 做大量优化。因为去私有部署时,用户很可能不给 GPU 机器,就不能依赖 GPU。而目前平台上是这样操作的:点一下图上的预测按钮,比如选择要预测一天,按纽一按就会开始预测,直到结束,不需要选择算法。当有异常点发生时,会做完整的记录说明。这个特性,咱们的既有用户可以体验一下,目前不收费的。
对于机器学习的概念是完全没有心智负担的使用,希望在使用我们这个产品时,无论背后多么复杂,至少在用户使用层面,希望它是非常简单的。
与此同时,我们的 SDK 也很丰富。目前来看,系统的语言用的最多的还是 JAVA,很多时候是没有机会用到这些 SDK 的,因为有前面的 Logkit 都搞定了。
Pandora 在国内是公有云非常领先的产品,优势如下:
1.数据规模大:完全横向扩展的存储设计、完全横向扩展的计算设计、累计存储数据超过 40P、累计计算数据超过 500P。
2.处理速度快:入口打点毫秒级响应、实时计算毫秒~秒级响应、批量计算经过大量优化,确保性能更优。
3.开放接口巧:通过支持 https 中转适配任意目的地、所有操作均有对应的 API 支持、易与第三方系统进行结合。
4.生态支持多:
5.用户体验爽:超过 3 年以上的用户体验迭代、超过 200 项细节极致打磨、以降低用户心智负担为原则,全方位降低用户的使用门槛。
6.公有云经验足:
05 典型客户案例
第一,七牛云。七牛云的各条产品线都是用户,直播、SDK 都在往这里打数据,包括智能多媒体 API、容器云等。商业运营部是用来做用户画像的;产品研发部用这款产品做快速排错;技术支持部用来做客服;质量保障部用来做质量分析与复盘;SRE 做业务监控告警;运维部做运维监控告警与成本分析;运维部和采购部一起对数据进行结构分析,看是不是真的需要加入很多机器。
第二,某大型银行。银行体系中有各种服务器,各种网络设备,各种存储系统,当然数据量最大的还是各条业务线的业务日志,以上所有的数据,统一存储到 Pandora 进行检索,监控,分析,告警等一系列操作。
第三,上海卷烟厂,也就是造中华烟的厂,盈利能力当然非常强,但他们同时也是一家对新技术持比较开放态度的公司。厂内通过 OPC 协议将各种数据打到 Pandora 内,做各种监控分析。
第四,CDN 日志分析。这是目前用的非常多的 case。CDN,要么是成本,要么是质量。平台可以帮助分析各种文件大小的流量分析等,有标准化的方案来做这个事情。
目前我们 Pandora 已经有大量合作,包括:视频类、移动互联网类、互联网类、传统企业、广电行业等。之前我们把很多精力放在比较典型的案子上,现在开始我们会大规模的对所有客户进行推广。
以上所讲的内容,是想说明任何一个看似简单的东西,要做好是很难的。产品技术角度,在多租户的海量数据下,如何做到又快又稳,绝对是一个大挑战;用户体验角度,如何让用户以最低的心智负担,最佳的体验,最快的速度获得最大的价值,一直是整个团队最关注的点之一。 最后希望 Pandora 能够真正的解决各位的实际问题。
本文转载自公众号七牛云(ID:qiniutek)。
原文链接:
https://mp.weixin.qq.com/s/fj3DxjjddxKvCovVFF2jSg
评论