app日志分析与可视化平台

 2022-01-17 11:01

论文总字数:18811字

目 录

1 背景 1

1.1 选题的目的和意义 1

1.2 国内外研究现状 1

1.3 研究内容 2

1.4 论文组织结构 3

2 集群资源管理框架 3

2.1 面临的问题 3

2.2 Mesos管理集群资源 4

2.3 Mesos集群搭建 5

2.3.1 搭建方案 5

2.3.2 搭建过程 6

2.3.3 运行效果 9

3 系统整体架构设计和实现 9

3.1 详细架构设计 9

3.2 数据持久化层 10

3.2.1 HDFS 10

3.2.2 MongoDB 12

3.2.3 Kafka 12

3.2.4 Logstash 12

3.3 数据分析层 13

3.3.1 Spark核心概念 13

3.3.2 Spark核心接口 14

3.2.3 Spark部署 15

3.2.4 Spark注意事项 16

3.4 数据展示层 16

4 软件设计与实现 16

4.1 软件整体架构设计 16

4.1.1 离线分析架构 16

4.1.2 实时分析架构 17

4.2 离线分析实现 17

4.2.1 收集日志到HDFS 17

4.2.2 使用频率分析 18

4.3 离线分析可视化方案 20

4.3.1 总体设计方案 20

4.3.2 配置信息与代码分析 21

4.3.3 数据库相关操作 21

5 功能测试 22

5.1 主界面 22

5.2 离线分析子界面 22

5.3 每月日志数统计 23

5.4 日志趋势分析 24

5.5 每月的日志数量变化 25

6 结论 26

参考文献 28

致谢 29

App日志分析与可视化平台

卢文泉

,China

Abstract:Log analysis is one of important practice areas of data analysis. Traditional way of processing logs is storing them to specific directory. Only when app throw exception or system break down, system administrators scan log files to solve problems. It has many disadvantages: low efficiency, lag and low utilization. This paper uses Apache Spark as core computing framework to analyze logs from traffic recharge platform app developed by Linker Networks Inc , including offline analysis and real-time analysis. We use Bokeh and Flask to visualize important information analyzed from app’s log which make results more directly and user-friendly. This method of processing app’s logs solves problems of traditional ways: inefficiency, lag and low utilization. In order to improve the utilization of cluster resources, we use Mesos, Docker, Marathon and Ansible to set up a resource management cluster which we use to deploy applications as well as computing frameworks. This paper publishes the scripts of setting up Mesos cluster to make it convenient for company set up such an environment.

Key words:log analysis; Apache Spark; Mesos Cluster; Docker

1 背景

1.1 选题的目的和意义

日志分析属于数据分析的范畴,当数据量逐渐积累增加,数据量级达到TB级别时,需要引入大数据分析技术。当下,许多公司都在探索研发数据相关的产品,有些科技公司已经运用到自己的生产实践中。蚂蚁金服利用用户的行为信息、消费信息等进行欺诈检测、信誉评估、风控建模。AWS向使用其云计算服务的客户提供简单的日志分析服务。数据分析逐渐成为IT行业重要的应用和研究领域。但是,这些数据分析服务都是运行在它们自己的云平台上,客户如果要使用数据分析服务,必须将自己的应用放到阿里云或者AWS上,这增加了客户在安全和应用架构调整上的顾虑,在产品化上有很大的局限性。

Linker Networks公司开发的流量充值平台app每天都会产生大量的日志,并且日志的格式由研发人员自主设置,每条日志包含的信息非常多,格式也非常复杂。公司无法选择合适的第三方应用来充分分析、挖掘日志中的信息和价值。因此,公司决定自己开发针对性的日志分析程序。日志分析应用成熟后可以把这项技术产品化,整合到云计算平台作为产品链的一部分。

1.2 国内外研究现状

国内外很多公司都在积极探索利用大数据技术来挖掘数据的价值、降低企业的成本、探索新的利益增长点。大量的数据和精湛的数据分析技术是大数据应用的两大核心要素。一方面需要积累足够多的数据,数据多了才有应用大数据技术的必要,更好地分析数据中的价值。有了数据还需要合理地选择相关技术,找到最适合自己的数据分析技术方案。

在国外, Facebook、twitter、LinkedIn、Amazon、Google等公司在大数据技术的积累和应用实践上相对前沿,在技术上处于领先地位。它们有一个相同点:基于自己的数据和真实的业务场景开发数据应用。比如Facebook和Twitter基于用户的数据进行内容、好友的个性化推荐;LinkedIn 基于用户的简历信息做优秀人才的精准推荐。

在日志分析方面,AWS利用自己的云计算平台提供了数据集成、事件、日志分析服务,但是它们的日志分析服务针对的是Web服务器的日志。这种日志由Nginx、Apache等产生,日志格式是统一的,可以很方便的进行分析。而且对于用户行为信息,它们没有统一的格式,很难进行统一分析。Splunk是一家专门做数据分析的美国科技公司。它的日志分析服务相比于AWS功能上更加丰富,能够远程采集多台机器上的任何日志信息、J2EE、.Net等程序的日志消息或者是Web访问日志。只要有新的日志产生,Splunk会对其进行持续地收集、索引和分析。Splunk能够分析实时数据和历史数据,它不仅可以分析特定格式的日志:Apache、Nginx等web服务器日志,也可以分析特定格式的日志。Splunk的日志分析服务处于行业领先地位。但是Splunk价格高昂,对普通企业用户来讲性价比很低。高性价比的方式是使用开源技术自己搭建日志分析服务,Elastic公司针对日志数据的收集、存储、可视化方面提供了开源解决方案:日志收集工具Logstash、索引工具Elasticsearch、可视化工具Kibana。中小企业可以利用上述组件自己搭建日志分析服务。

国外的日志数据分析领域不仅有像Splunk这样成功的商业应用,还有Elastic公司这样以开源为主的创新公司。可以看出国外的商业发展模式比较成熟。

在国内,阿里巴巴、腾讯和美团等互联网公司都在积极实践大数据技术,积累了很多实践经验。它们的应用领域有一点和国外相似:即依托自己积累的大量数据,从自身的具体业务出发,开发针对性的数据分析服务。在数据的存储上,以HDFS作为底层数据存储为主。也有自研存储系统的:淘宝自研的TFS文件系统、Bilibili(视频分享网站)自研小文件存储系统bfs。国内也有专门做数据存储的创业公司,比较好的有七牛、又拍云。

在日志分析方面,新浪公司有专门的产品。新浪使用Logstash、Kafka、Kibana和Elasticsearch开源技术搭建自己的日志处理服务,分析每天产生的32亿条日志[3]。但是,新浪只是整合开源软件的工作流,利用的是开源软件的功能,没有针对特定日志格式分析的部分。目前新浪已经将这个平台开放出来给新浪内部不同的团队使用。日志易[15]作为以日志分析为核心的创业公司,提供运维日志、业务日志采集、分析、搜索、可视化的服务。它加强了对业务日志的分析,但是在实时分析、特定日志格式的分析上还需要加强。

综上,数据分析在IT企业应用广泛,推动了技术发展。数据分析在IT公司的深入应用也促进了大数据落地到其他行业。日志数据作为重要的数据,正越来越受到科技公司的重视。云计算技术不断成熟和发展、大数据技术的落地实践,结合云计算灵活、高效、弹性的计算能力,将大数据技术应用到日志分析中,具有很好的前景和商业价值,值得深入研究。

1.3 研究内容

本论文结合日志分析在国内外的应用现状,选择合适的数据分析技术来开发公司内部的应用日志,主要研究内容如下:

1. 在多台机器组成的集群上选择合适的资源调度、分配框架,实现高效的资源调度和任务分配。

2. 本项目涉及的框架很多,如何在集群环境下有效管理软件,保证软件版本一致,实现软件高效地安装、升级和删除。

3. 如何保证软件的高效交付、稳定运行和自动容错。

4. 日志收集与存储方案。

5. 分析流量平台的日志消息,挖掘日志中有价值的信息,并存储起来。

6. 选择合适的可视化组件和web框架。

1.4 论文组织结构

本论文属于工程实践型论文,主要介绍开发基础环境的搭建和日志分析程序的开发。共分为6章节。

第1章为背景介绍。结合云计算和大数据的技术背景,介绍国外、国内在数据分析领域的研究和实践现状。重点介绍了在日志分析领域的情况。

剩余内容已隐藏,请支付后下载全文,论文总字数:18811字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;