• 2
  • 2
分享

随着互联网技术的日益发展,测试开发工程师要达到“保障质量、提升效率”目标,提升效率更体现在方方面面。作为测试开发工程师,需要掌握基本开发技能,对代码能力也有一定的要求,这也是对项目多一道强有力的保障。


在功能测试遇到BUG时,测试开发工程师需在编译器中调试代码,一边追根溯源,一边监测代码质量。而“追根溯源”这一步最重要的依据就是系统输出日志,日志也是开发人员定位问题的第一检查场所。因此,为提升这部分工作效率,小编想通过ELK搭建一套日志收集、存储、展示的工具,来解决目前存在的日志查看效率低下、缺少可视化界面等问题。


1.什么是ELK


ELK由Elasticsearch、Logstash和Kibana三个工具的首字母拼写而成,下面对这些工具进行简单介绍。


(1) Logstash

Logstash是一种数据处理管道,能够从多个不同的来源收集数据,进行转换之后将数据发送到需要的地方,它支持几乎任何类型的日志。


(2) Elasticsearch

Elasticsearch是一个基于Lucene分布式、RESTful风格的搜索和数据分析引擎,可以近乎实时的存储、检索数据,具有良好的扩展性。


(3) Kibana

Kibana是一个开源的分析和可视化平台,是用于展示日志信息的图形界面,能够分析和可视化存储在 Elasticsearch指标中的日志数据。


2.如何构建ELK通道


使用ELK工具搭建的日志管理平台整体架构如图1所示。其中Logstash用来收集、分析、过滤日志信息,收集到的信息经过预处理和过滤之后发送到Elasticsearch。


Elasticsearch提供日志分析存储功能,实现全文搜索,Kibana为日志信息可视化功能提供展示界面,展示存储在Elasticsearch中的日志数据,供用户查询分析。

1.png

图1  日志管理平台架构图


Logstash日志收集与预处理比较操作较为复杂,需要手动编写配置文件。


Logstash包含三个部分:输入插件(input)、过滤器(filter)、输出插件(output),输入插件收集来自各个模块的日志,过滤器插件预处理收集到的日志,输出插件将日志写入目标。


Logstash处理日志的详细流程如图2所示,Logstash启动前需要编写一个(.conf)配置文件,配置文件中有三个插件及各自包含的控件等配置。

2.png

图2  Logstash日志处理流程示意图


Elasticsearch与Kibana的配置文件较为简单,只需更改已有配置文件参数。Elasticsearch更改配置如下:

http.port: 9200http.cors.allow-origin: "/.*/"http.cors.enabled: true


Kibana更改配置如下:

elasticsearch.url: "http://localhost:9200"


三个工具的启动方式也类似,进入软件安装包的bin目录下,通过命令行启动即可。最后在浏览器中输入Kibana的地址,端口号默认5601,界面如图3所示。

3.png

图3  Kibana界面展示图


3.使用ELK的思考


在测试环境中,将被测系统的日志收集存储到ELK平台,最终在Kibana界面中查看,不仅能够对存储的日志进行全文检索,直接定位到输出级别为ERROR的日志,同时对于Linux操作和IDE调试不熟练的测试人员,能够降低通过日志定位问题的门槛。


日志作为一个持续输出的增量文件,在后续的使用中应考虑存储空间的问题,设计方案定期解决过期日志;当遇到日志迸发的高峰期时,硬件条件一定的情况下,需要调整Logstash的配置参数,提高整体数据传输速率。对于以上问题,小编会在接下来的实践中不断摸索尝试,为大家带来更多解决方案。


原文链接:https://mp.weixin.qq.com/s/XJ-y3HtCw70tKKIVg6gvMg

作者:张艺

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、接口测试流程1、右键点击线程组添加 HTTP请求,此时在线程组下面出现HTTP请求选项。点击该选项,出现HTTP请求界面。如下服务器名称或IP填你的服务器名或IP地址:192.168.96.8。端口号填接口所用的端口号:如:8081connect表示连接时间,比如10000毫秒;response表示响应时间,比如10000毫秒。(可以不写)Implementation选HttpClient4;(可以不写)协议填http;Content encoding填utf-8。路径填接口地址,比如登录接口/api/user/mobileLogin.jsp、/safe/0.0.1/JFFW/urlGen...
            11 12 1465
            分享
          •   5月25日上午消息,百度文心一言市场部负责人张全文通过朋友圈回应道,“听闻有友商把自己股价大跌,归咎于有人利用文心一言写了篇命题小作文,也是醉了。先别说小作文这事真假(目前看来只怕是策划痕迹太重),如果AI作文有这本事,百度员工自己先炒一下自己股价不香吗?”  张全文表示,中国发展自己的大模型技术挺不容易的,把精力放到正事上吧,还请友商解决好自己的问题,别动不动就碰瓷别人。对于无端的恶意抹黑污蔑,百度也将采取法律措施。(文猛)作者:佚名原文链接:新浪科技_新浪网(sina.com.cn)
            0 0 669
            分享
          • 一、什么是时序数据库时序数据库全称为时间序列数据库。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。时序数据库全的特点包括一是多源性获取,数据分散,非结构化数据比例大;二是数据蕴含信息复杂,关联性强;三是持续采集,具有鲜明的动态时空特性;四是采集、存贮、处理实时性要求高;五是与具体工业领域密切相关。时序数据库采用的技术时序数据库高压缩比存储技术时序数据库的列存储技术时序数据库的时间序列技术时序数据库支持大数据量吞吐处理技术时序数据库的高聚合查询技术本文根据时序数据库的技术特点结合实际业务场景,设计如下测试方法:时序数据库建库...
            0 0 3918
            分享
          •   尽管自动化测试可以生成简洁的html测试报告,但是Testng自带的模板往往还是不够用。如果想要更加漂亮的数据和样式,就需要自己手动写模板。虽然有很多代码生成器,可以轻而易举的生成想要的模板样式代码,但是修改啊,配置啊多多少少还是会花一些时间,有时候若稍有不慎,调整布局就会弄花眼。如果使用成熟的用例管理工具,那么只要有测试结果,测试报告就可以自动生成了,比如使用testlink导出测试报告,则可以省去不少精力和时间了。如果想亲自设计一套符合自己审美的测试报告模板,这里推荐一个免费的工具MagicalCoder,H5页面布局可以在线使用,拖拖拽拽弄好布局后就可以获得源码,不懂前端代码的测试同...
            12 12 3516
            分享
          • 在说怎么写测试用例之前呢,先来聊聊为什么要写测试用例。理由有5点:理顺思路,避免漏测和重复测试帮助预估测试排期,把控进度方便bug回归验证便于发现、记录并复现问题标记测试结果,即对于测试结果有个交代知道了写用例目的之后,你还需要知道,什么样的测试用例才是好的!优秀测试用例的特征:包含基本信息,包括测试人/开发/产品/需求文档链接地址/技术文档链接地址,等等你测试过程中需要的物料。每一条用例,有很明显的突出测试预期和测试目的。所有用例都是可执行的。逻辑脉络清晰,几乎不存在重复的用例,简约而不简单。用例做到分级分层。待测功能点覆盖全面。同时还是想要强调2个观点:不要纠结测试用例的格式或形式!测试用...
            8 9 1583
            分享
      • 51testing软件测试圈微信