【项目实战】ELK入门介绍与使用

一、ELK是什么?

在高复杂度的系统中,对于定位线上问题,日志非常重要。
ELK(ElasticSearch+Logstash+Kibana),可以使用说是目前最流行的日志平台构建方案,
之所以深受开发者喜爱,主要是因为它解决了大规模系统的日志收集的各种痛点。ELK(ElasticSearch+Logstash+Kibana),主要包含三个组件:
* ElasticSearch
* Logstash
* Kibana

ElasticSearch是一个基于RESTful web接口,并且构建在Apache Lucene之上的开源分布式搜索引擎,同时ElasticSearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,能够横向扩展至数以百计的服务器存储以及处理PB级的数据。

Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和ElasticSearch。

Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在ElasticSearch指标中的日志数据。它利用ElasticSearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据。总结:ElasticSearch用于搜索,Logstash用于搜集,Kibana用于可视化。

二、ELK能做什么?有什么使用场景?

2.1 使用ELK存储测试报告

测试报告是自动化测试中非常重要的一环,测试结果的清晰展示以及归档是大家需要日常处理的问题。既有的经验里,我们可以通过定制一些测试模版输出一些特定格式的测试报告,比如html格式,然后保存到测试报告平台或者直接邮件发送。上面的做法其实没什么不好,不过可能需要一些开发工作量。另外归档和搜索之类的功能需要一定的二次开发能力,对于测试同学来说有一定的挑战。如果用例运行的非常频繁,那么高频次的出报告持久化以及多维度的搜索也是一件非常麻烦的事情。我们可以用ELK来简单粗暴的解决上面的问题。将每次的测试结果落地到日志文件里,然后使用Logstash处理并持久化到ES,最终使用Kibana来搜索,全程工作量很小,而且复杂的搜索功能开箱即用,成本低廉稳定性好,大家有兴趣可以不妨尝试一下。

2.2 使用ES管理测试用例

如果测试用例比较多的话,我们可能需要从很多的维度去搜索测试用例。假设我们开发测试用例管理系统的话,实现这些进阶搜索其实是比较大的工作量。我们可以将ES当作是存储引擎,把测试用例保存在ES里,ES有非常有好的RESTFUL API,使用这些API去检索数据,然后对结果进行一些可视化,就可以实现一个功能较为完备的用例管理系统了。如果不想二次开发就得到一个穷人版功能复杂的用例管理系统的话,可以将用例持久化成日志,然后用ELK工具链处理,最后使用kibana来查看用例,这也未尝不可。

猜你喜欢

转载自blog.csdn.net/wstever/article/details/128945464
今日推荐