• 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

作者:张艺

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   从去年决定跳出舒适区,应聘大厂,截止到目前已经将近一年,值此之际,总结下自己近一年在大厂的经历。  希望通过我的感触,能够帮助你们进一步了解大厂的测试工作。  维护上下游合作关系  在大厂,人际关系非常重要,为什么要把它放在第一位,是因为在大厂里做测试的时候,所涉及的系统错综复杂,种类繁多,经常要进行上下游的联调测试。  我刚开始的时候,测试联调找不到相关的责任人,使得自己在测试工作中浪费了大量的时间和精力,所以进入大厂之后,一定先要:  首先,梳理自己负责系统的上下游联系人,将其联系方式整理起来,方便后续查询联络,可以参考下面表格进行简单汇总即可。  其次,维护好自己与前辈的关系,保持自...
            12 12 1790
            分享
          •   前言  在学习计算机操作的系统的时候,分页存储管理与分段存储管理十分容易令人混淆,对其含义进行详细解读,能够加强我们对存储管理的整体理解。  存储管理  存储管理的对象是主存储器(主存、内存)。存储器能够存放各种信息,是计算机系统中的关键资源。其主要功能包括分配和回收主存空间、提高主存利用率、扩充主存、对主存信息实现有效保护。  存储管理的主要目的是解决多个用户使用主存的问题。分页存储管理、分段存储管理是两种重要的管理方案。  分页存储管理  将一个进程的地址空间划分成若干个大小相等的区域,称为页。  相应地,将主存空间划分成与页相同大小的若干个物理块,称为块或页框。为进程分配主存时,可将...
            0 0 869
            分享
          • 1、现在在做功能测试,一般都是把软件界面和该软件的逻辑测试一下,工作大半年了想往性能测试方向转,感觉很多东西要学习,但是不知道从哪下手,请大神指点。有这种想转的思想很好。相信有很多和你同样情况的同学,同时,半年的经验一下子转过来是不可能的。首先,我建议在工作过程中在积累一年左右。主要是在做功能测试的同时,你可以自己搭建测试环境,加深对整个系统的理解,这个过程就在提高自己的学习能力和打下知识基础。被测项目用了哪些技能可以自己多多加深学习和理解。也就是在项目中自己更多的学习,利用工作中的测试项目充分学习。其次,学习一款性能测试工具。我本人不建议上来就学那些操作系统、数据库等知识。毕竟先从工具入手是...
            1 0 1977
            分享
          •   以下准则出自Ron Patton《Software Testing》一书,在测试职位工作多年后,对其中的准则体会颇深,分享以下10条实用性超强的准则及其在工作中的实践,建议在工作中多加参考:  1、完全测试一个程序是不可能的。(It’s Impossible to Test a Program Completely.)  实践:根据项目时间、资源、风险、用户要求等,有选择地去测试。  2、软件测试是一种基于风险的活动。(Software Testing Is a Risk-Based Exercise.)  实践:一般新功能、常用功能、默认配置属于高风险,需要优先测试,分配较多资源,而回归...
            0 0 1020
            分享
          • 第一章:项目目标基本开源项目:tpshop,这是一个web+app项目阶段核心目标:1.能够独立完成编写电商类项目的测试用例2.能够独立基于测试流程的6个步骤,对电商类项目进行测试本项目会涉及到的内容1.web类项目的环境的问题【构成、部署】2.web类项目如何熟悉整个项目3.测试流程4.【核心】测试电商类项目,两个重点:测试业务流程、核心功能5.抓包6.编写生成测试报告第二章:项目环境介绍2.1项目架构介绍公司一般有几套环境1.开发环境:给开发人员使用的2.测试环境:给测试人员测试软件使用的3.预生产环境:在正式发布之前的环境4.生产环境:给普通用户来使用的可以有三套环境,也可以有两套环境:...
            0 0 2919
            分享
      • 51testing软件测试圈微信