单位文秘网 2022-02-14 08:12:54 点击: 次
领导者,负责监听网络,处理任务,Follower为追随者,负责在Leader处理任务时,争取成为新Leader。
4 实验及结果分析
4.1 实验环境
硬件环境:实验均在笔记本电脑上进行,Windows 10 64 位操作系统,Core i5-4200H处理器,8G内存,1T硬盘。
软件环境:实验选用Go语言实现,系统的日志配置模块、日志生产器模块、日志收集器模块和日志转发器模块在Goland开发环境中实现,Kafka、Zookerper、Etcd、ElasticSearch、Kibana等在Power Shell上开启。
4.2 实验结果及分析
4.2.1 模拟产生日志
实验模拟5 000个用户同时访问购物网站,即产生 5 000个用户在购物网站上浏览、购买商品、支付和收货等日志,且设置每个用户产生5~10条不等的日志。
4.2.2 日志收集
对日志收集器进行初始化后监听Etcd集群配置变化以及日志内容變化。特别地,在日志收集时会根据限速条件对日志收集器进行限速处理。图10中,limit is running代表限速模块对一秒内生产5 000次日志的文件进行限速,limit is exited表示限速结束。
图10 日志收集器限速处理情况
4.2.3 日志转发
对日志转发器进行初始化后监听Etcd集群配置变化。当日志转发器拉取到相关主题的日志消息后,会发送到ElasticSearch。如图11 所示,打印出日志信息表示已经成功收集,send to es success表示成功将日志发送到ElasticSearch。
图11 日志转发结果
4.2.4 日志搜索和分析
当日志成功收集后,需对这些日志数据进行搜索和分析,其结果如图12所示。柱状图表示每秒钟收集到的日志,其下是按时间先后顺序排列的日志数据,默认情况下是全量显示,若需要搜索特定规则的日志,可以通过搜索栏进行搜索匹配。
图12 日志展示效果
通过上述实验,系统可以完成收集、转发和展示分析等功能,体现了其强大的分布式日志采集与分析能力。
4.3 对比实验
在同样的实验环境下,针对同一实验对象,将改进后的系统与原生ELK在性能方面作对比实验。
较原生ELK而言,改进后的系统优势主要体现在日志收集时多项性能的提升。具体压测方案设计如下:
(1)压测环境:Core i5-4200H处理器,8G内存,1T硬盘。
(2)Logstash / Logagent 读取 500 000条日志,单行数据 500B。
(3)压测实验一:正常收集日志数据,统计CPU平均占用率、总耗时和收集速度,结果如表1所示。
(4)压测实验二:在收集日志数据时,人工对网络进行实验性阻断,产生网络抖动,统计消息丢失数和丢失率,结果如表2所示。
表1 压测实验一结果
表2 压测实验二结果
从表1可看出,原生ELK系统中Logstash CPU占用率高达75.6%,而改进后的收集器 CPU占用率降低到44.8%,且收集速度为原生ELK的3倍。从实验结果来看,改进后的系统解决了原生ELK中Logstash对CPU资源消耗问题,且提升了日志收集速度与系统的稳定性。
从表2可以看出,在产生网络抖动时,原生ELK系统会丢失一些数据,500 000条消息丢失了698条,消息丢失率达0.14%,改进后的日志收集系统,500 000条消息丢失0条,消息丢失率为0。从实验结果来看,改进后的系统解决了原生系统日志消息容易丢失的问题,显著提高了日志收集过程中消息的健全性。
5 结语
随着云计算、物联网技术的迅速发展,数据已呈爆炸式增长,人们进入大数据时代[19]。而对于Web日志数据量的增加,文件的分布式存储和数据挖掘技术也成为Web日志挖掘研究领域的重点分支[20]。因此,日志的采集和分析将是其研究的重要支撑。
本文系统主要着眼于日志系统的简易实用性、高可用性与日志的健全性。简易实用性的实现途径主要是:可配置的Web管理后台、简易操作的搜索与分析Web页面等;高可用性的实现途径主要是:分布式、集群、负载均衡、限流等;日志的健全性实现途径主要是:消息队列、注册中心等。
下一步工作将关注两个问题:一是将日志收集与分析系统整合到Docker容器,并且用Kubernetes进行管理编排,这样能极大方便开发者和运维者,后续迭代开发也具有敏捷性;二是改进现有系统,增加分布式链路追踪系统,以获得服务之间调用的耗时、吞吐量、是否故障等信息,从而为运维和监控提供更好的参考。
参考文献:
[1] 应毅,任凯,刘亚军. 基于大数据的网络日志分析技术[J]. 计算机科学, 2018, 45(11A): 353-355.
[2] 高凯. 大数据搜索与日志挖掘及可视化方案—ELK Stack:Elasticsearch、Logstash、Kibana[M]. 第2版. 北京:清华大学出版社,2016.
[3] 郝璇. 基于Apache Flume的分布式日志收集系统设计与实现[J]. 软件导刊,2014,13(7):110-111.
[4] 廖湘科,李姗姗,董威,等. 大规模软件系统日志研究综述[J]. 软件学报,2016,27(8):1934-1947.
[5] 李祥池. 基于ELK和Spark Streaming的日志分析系统设计与实现[J]. 电子科学技术,2015,6(2) 674-678.
[6] 陈波. 基于 HBASE 分布式存储的通用海量日志系统设计方法研究[J]. 信息通信, 2017(6): 7-9.
[7] 张彩云,牛永红,赵迦琪. ELK日志分析平台在系统运维中的应用[J]. 电子技术与软件工程,2017(6): 182-183.
[8] 姚攀,马玉鹏,徐春香,等. 基于ELK的日志分析系统研究及应用 [J]. 计算机工程与设计, 2018, 39(7):2090-2095.
[9] 汤网祥,王金华,赫凌俊,等. 大规模软件系统日志汇集服务平台设计与实现 [J]. 计算机工程与设计, 2018, 35(11):173-178.
[10] 王参参,姜青云,李彤. 基于大数据的日志分析平台在银行中的研究与实现 [J]. 网络安全技术与应用, 2018(5): 68-70.
[11] 罗学贯. 基于ELK的Web日志分析系统的设计与实现[D]. 广州: 华南理工大学, 2018.
[12] 袁华. 基于ELK和Spark的日志分析系统的研究与实现[D]. 南昌: 南昌大学, 2018.
[13] 严嘉维, 张琛. 基于Hadoop的可信计算平台日志分析模型[J]. 软件导刊,2018,7(8): 71-75.
[14] 王梦蕾. 基于Spark Streaming的实时日志分析与信息管理系统的设计与实现[D]. 哈尔滨: 哈尔滨工业大学, 2018.
[15] 孙鲁森. 基于分布式Web应用的大数据日志分析方法研究 [J]. 电脑知识与技术, 2019, 15(3): 16-19.
[16] BOETTIGER C. An introduction to docker for reproducible research [J]. ACM SIGOPS Operating Systems Review-Special Issue on Repeatability and Sharing of Experimental Artifacts,2015,49(1):71-79.
[17] BERNSTEIN D.Containers and cloud: from LXC to docker to kubernetes[J]. IEEE Cloud Computing, 2014, 1(3): 81-84.
[18] DIEGO ONGARO, JOHN OUSTERHOUT. In search of an understandable consensus algorithm[C]. In Proc ATC’14, USENIX Annual Technical Conference,2014.
[19] 孟小峰,慈祥. 大數据管理:概念·技术与挑战 [J]. 计算机研究与发展, 2013,50(1): 146-169.
[20] 班秋成. 基于Hadoop的Web日志存储和分析系统的研究与实现[D]. 北京: 北京邮电大学, 2018.
(责任编辑:孙 娟)
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-212-98721-1.html
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用