阅读 1691

如何快速搭建智能化的统一日志管理系统

日志是设备、服务器或者程序对于自身状态和运作行为的记录,通过它可以了解设备、服务器和程序的运行情况。为了让大家进一步了解智能化的统一日志管理系统,飞马网于7月24日晚,邀请到就职于七牛云数据科学与产品部的高级大数据架构师王珂老师为大家分享该领域的内容。

以下是这次线上直播的分享实录:

1.jpg


大家好,我是七牛云的王珂,今天我给大家分享的主题是“如何快速搭建智能化的统一日志管理”。

在上图中,我列举了一些例子,方便大家理解什么是日志。第一条是某网站的行为日志,在这条日志中大家可以清楚的看到这个用户访问的地点、做了哪些操作、访问了哪些页面,最后还能标注用户的浏览器是哪个版本。第二条是典型的某网站nginx服务日志,第三条是比较标准的应用日志,第四条是Google analysis的上报日志,第五条是MongoDB日志,可以看到端口信息。第六条和第七条是mac操作系统日志和某机器的CPU监控日志。

一、什么是日志

3 拷贝.jpg

经过上面的日志样例,我们要对日志进行三个问答。第一个是什么是日志?基于维基百科的回答,日志是设备、服务器或者程序对于自身状态和运作行为的记录。第二条为什么需要日志?因为要通过日志了解设备、服务器和程序的运行情况,大概就是当前状态是否健康,是否出现过异常、出现了什么异常、完成了什么操作、处理了多少数据。最后一个是什么时间需要日志?一般情况下,系统出现问题时需要日志,为了了解系统运行情况、统计运行指标也需要日志。

二、日志采集方案选型和分析

业内最常见的日志管理方案是使用ELK进行日志管理。ELK具有三个特点:快速、易上手、可扩展,这里面的三个组件其中ES主要是指Elastisearch.Elastisearch是开源的实时分布式搜索分析引擎,被用作对日志数据进行全文检索以及指标的统计,第二个是Logstash,主要是用来把数据传输到Elastisearch之中,最后是Kibana,它是开源的展示工具,可以直接链接Elastisearch,并把其中的数据做图形可视化的展示。

ELK是使用最多的方案,但还是具有一些问题,主要是四个方面。第一个传输过程缺少监控,不能实时了解传输情况,第二是数据写入Elastisearch不平滑,Logstash没有缓存,数据量大的情况下Elastisearch的写入压力很大,第三个点是当数据达到一定程度时要求定期的管理,否则最新最热的数据写入靠近的机器上从而产生性能的热点,最后一个是本身不支持用户管理,权限设置。针对ELK的问题,主要有两种方法去升级它,第一个就是更换组件,第二个就是基于ES做一些开发。(图)


先看一下替换组件。对于日志采集方案,现在主流的比较多,比较好用的有Rsyslog、Fluentd、Flume等,主流工具采集完之后我们会考虑接入一些通用的缓存工具,如kafka和Redis,针对这两个问题,主要是考虑时效性、数量级和复杂度三个点。(图)

三、七牛云日志的分享以及案例分析

现在看一下七牛云平台的整体架构,主要存储的三个方面的日志,云存储日志、容器平台日志以及七牛客户日志。这个平台的技术架构是这样的,首先有一个统一入口——pipeline,在数据进入pipeline以后,可以自定义一个窗口,然后基于kafka实现离线计算的功能,传输到客户想要传输的地方。这种传输工具主要有三个:七牛云存储,基于ES形成的组件以及TSB组件。


七牛日志平台的客户比较多,所以面临的挑战也比较大。平台日均数据的流入大概有250个TB,最大客户日均数据流入大概超45TB,条数大概日均3650亿,在这么大的业务数量集面前最大的挑战就是如何把如此高的数量级数据接入到ES集群当中,同时不要占用太多的计算和存储资源。

七牛云大量的数据带来的一个核心问题就是存储问题,我们需要最有效的方式把数据从pipeline写入ES集群当中,吞吐量问题的本质就是数据传输效率。

这里有两种数据传输模式,首先是一个pull模式,然后是一个push模式。

数据传输的常见错误观点认为导出的上游数据产量是稳定不变的,导出的下游服务永远是稳定的,导出的速度仅受限于上下游中的一方影响,这没有考虑链路损耗严重的问题,这个最明显的就是kafka。

接下来看一个完整的transaction。

通过以上两张图片的展示,七牛实现了一种大量数据的稳定写入。

现在谈一下规划容器日志方案的要点,主要是两点。第一个是采集方式上面,分为容器内外两个方面;第二个是业务需求点方面。(2图)。

接下来简单介绍一下日志管理平台,由四个组件组成,能支持的功能很多,像logkit、pipeline、insight等。

基本上我们的平台能支持的组件也很多,logkit可以实现可视化的数据采集;在日志分析和日志搜索方面,使用兼容Lucene标准的搜索语法快速检索,在日志报表方面,我们提供黑白两种形式的展现,同时这种展现都支持大屏展示,而且不需要插件就能实现需求。

基于自己的insight平台,做了一个机器学习的组件,使用起来比较简单,如果定义到监控中,能自动找到异常值,最后也能基于历史数据做一些未来的预测。


以上就是本次线上直播的主要内容,相信你对日志管理系统有了一定的认识。想了解更多更详细内容的小伙伴们,可以关注服务号:FMI飞马网,点击菜单栏飞马直播,即可进行学习。

关注公众账号

飞马会

飞马会
AI人工智能/大数据/技术管理等人员学习交流园地

往期福利
关注飞马会公众号,回复对应关键词打包下载学习资料;回复“入群”,加入飞马网AI、大数据、项目经理学习群,和优秀的人一起成长!

微软大牛人工智能系列课

(扫码试听或订阅)


回复 数字“1”下载从入门到研究,人工智能领域最值得一读的10本资料(附下载)

回复 数字“2”机器学习 & 数据科学必读的经典书籍,内附资料包!

回复 数字“3”走进AI & ML:从基本的统计学到机器学习书单(附PDF下载)

回复 数字“4”了解人工智能,30份书单不容错过(附电子版PDF下载)

回复 数字“6”AI人工智能:54份行业重磅报告汇总(附下载)

回复 数字“7”TensorFlow介绍、安装教程、图像识别应用(附安装包/指南)

回复 数字“12”

小白| Python+Matlab+机器学习+深度神经网络+理论+实践+视频+课件+源码,附下载!

回复 数字“14”小白| 机器学习和深度学习必读书籍+机器学习实战视频/PPT+大数据分析书籍推荐!

回复 数字“20”17张思维导图,一网打尽机器学习统计基础(附下载)

回复 数字“22”吴恩达新书,教你构建机器学习项目:《Machine Learning Yearning》

回复 数字“23”机器学习:怎样才能做到从入门到不放弃?(内含福利)

回复 数字“24”限时下载 | 132G编程资料:Python、JAVA、C,C++、机器人编程、PLC,入门到精通~

回复 数字“25”限资源 | 177G Python/机器学习/深度学习/算法/TensorFlow等视频,涵盖入门/中级/项目各阶段!

回复 数字“26”人工智能入门书单推荐,学习AI的请收藏好(附PDF下载)

回复 数字“27”资源 | 吴恩达斯坦福CS230深度学习课程全套资料放出(附下载)

回复 数字“28”懂这个技术的程序员被BAT疯抢...(内含资料包)

回复 数字“29”干货 | 28本大数据/数据分析/数据挖掘电子书合集免费下载!

回复 数字“30”领取 | 100+人工智能学习、深度学习、机器学习、大数据、算法等资料,果断收藏!

回复 人工智能下载《FMI人工智能与大数据峰会嘉宾演讲PPT》

回复 AI 江湖下载《十大AI江湖领域》

回复 ML实践下载《机器学习实践经验指导(英文版)》

回复 DL论文下载《深度学习100篇以上论文资料》

回复 算法 下载《数据挖掘十大经典算法》

回复 6.10 下载《6.10饿了么&飞马网项目管理实践PPT》