首页 > 其他分享 >微服务测试的关键——通过ELK查询日志

微服务测试的关键——通过ELK查询日志

时间:2023-09-27 11:04:36浏览次数:35  
标签:ELK kibana 查询 Kibana 日志 数据


为什么需要ELK

一般我们在工作中查询日志搜索问题时,通常需要直接在日志文件中进行grep、awk 操作就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。随着微服务的广泛应用,无论系统日志,还是业务日志都更进一步了。运维或者开发们发现要从这么大规模的系统中(几百个上千个服务)产生的千亿规模日志去排查问题,简直是难于上青天啊。而ELK的出现解决了这个痛点,他是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。ELK elasticsearch, logstash, kibana三个开源工具的简称,一般用于搭建日志分析系统。

elasticsearch是核心,是一个分布式搜索引擎,查询速度快,提供数据的存储和检索。

logstash负责数据的收集和处理,目前多使用一个更加轻量级的工具filebeat进行收集数据。

kibana用于可视化展示elasticsearch中的数据,并提供一些操作。

ELK基础架构如下:

微服务测试的关键——通过ELK查询日志_微服务

这是最简单的一种ELK架构方式。优点是搭建简单,易于上手。缺点是Logstash耗资源较大,运行占用CPU和内存高。另外没有消息队列缓存,存在数据丢失隐患。此架构由Logstash分布于各个节点上搜集相关日志、数据,并经过分析、过滤后发送给远端服务器上的Elasticsearch进行存储。Elasticsearch将数据以分片的形式压缩存储并提供多种API供用户查询,操作。用户亦可以更直观的通过配置Kibana Web方便的对日志查询,并根据数据生成报表。

 ELK架构的改进如下:

微服务测试的关键——通过ELK查询日志_elasticsearch_02

此种架构将收集端logstash替换为beats,更灵活,消耗资源更少,扩展性更强。同时可配置Logstash 和Elasticsearch 集群用于支持大集群系统的运维日志数据监控和查询。

总结:大家可以简单的理解为,我们需要在应用上安装一个东东(可以是logstash或者filebeat)负责收集应用上的日志,然后elasticsearch负责对日志进行处理,最后用户通过kibana来对日志进行查询操作,对于我们使用者来讲,我们只需要关注kibana的使用即可,核心目的就是快速地在海量应用里找到我们所需的日志信息!关于ELK的环境搭建这里就不多说了,我在这里重点讲解以下,在微服务的测试过程中,如何利用ELK来帮助我们分析和定位问题。

Kibana的使用

我们用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。通过Kibana可以很容易实现高级的数据分析和可视化,以图表的形式展现出来。对与测试人员来讲,我们用的最多的就是日志索搜功能。单击侧面导航中的 Discover 进入 Kibana 的数据探索功能:

微服务测试的关键——通过ELK查询日志_elk_03

 Kibana中的常用查询:

要搜索一个确切的字符串,需要使用双引号引起来。如果不带引号,将会匹配每个单词。

例子:message:"登录成功"

多条件查询用 AND OR连接 例如:192.168.1.181 AND 更新  "登录成功" OR "操作成功"

支持正则 例如 *error*,包含error的字段。

返回查询 允许一个字段值在某个区间。[] 包含该值,{}不包含。

举个栗子:

1.只知道应用名,要查询此应用的某异常信息,如何操作?

搜索框输入 weixin AND "异常信息"

2.想检查某应用中是否有SQL异常 weixin AND *SQLException* 

异常关键字:IOException、SQLException、JDBCException、sqlnestedException、socketException、ClassNotFoundException、 *UnknownHostException*

原创不易,如果文章帮到了你,欢迎转发和点赞,让更多的朋友受益!

标签:ELK,kibana,查询,Kibana,日志,数据
From: https://blog.51cto.com/liwen629/7621660

相关文章

  • Teamcenter 查询构建器“研究“
    查询构建器配置图打印下这不就是SQL????通信监视器看下......
  • Rust 日志记录库 tracing
    Rust日志记录库tracing​#2023-09-26#​#日志#​#tracing#一个好用的日志跟踪系统,可以帮助我们很快的定位程序中的bug。tracing不仅仅可以作为一个日志库去使用,还可以作为一个程序追踪库,帮助我们分析程序中存在的问题。tracing-Rusttracing各个模块​tracing​​:......
  • PG 故障分析之 select count(*) 产生大量WAL 日志(wal_log_hint)
    Hello,大家好,今天给大家分享的这个本周发生在生产环境的一个真实的案例。故障的现象是:主库短时间内生成了大量的WAL日志,触发了归档archive_command的操作,导致灾备中心的2台standby机器同步中断。StandbyLog:FATAL:couldnotreceivedatafromWALstream:ERROR:reques......
  • Mybatis-plus mybatis流式查询
    传统查询是一次性取出所有数据然后处理,对上百万的数据突出两个问题:1.处理时间长,阻塞数据库IO;2.一次性占用内存多,易OOM;流式查询则使用数据库游标,查一行处理一行,消耗内存较少,不阻塞数据库IO,在大数据处理场景中推荐使用。/***(Order)表数据库访问层**@authorliudong......
  • 关于SQL分组查询的问题
      如:表A,a   b  c  d  ems1  1  2  2ems1  1  3  3ems1  2  4  6ems1  3  A  Hems1  2  4  3ems1  4  B  2查询表A,要求列出所有的列.执行2次查询,第1次是b列的数......
  • PostgreSQL数据库WAL日志空间大小以及不清理的原因深入分析
    1.背景很多初学者会对WAL日志占用多少空间比较疑惑,听网上的一些文章说是由max_wal_size来控制的,但发现很多时候WAL日志空间会超过这个设置的值,不知道为什么?同时有时会发现WAL日志不清理了,占用空间在不停的增长,然后不知道为什么?看一些网上的文章,发现情况不是网上说的那种情况。......
  • alert日志中出现大量“WARNING too many parse errors”告警
    1、一套19.19的ORACLE数据库,alert日志中出现大量的parseerrors告警信息,具体如下所示。WARNING:toomanyparseerrors,count=9239SQLhash=0x5da2e911PARSEERROR:ospid=51405,error=923forstatement:Additionalinformation:hd=0x4b789d8b0phd=0x4ae3cd7e0flg=......
  • 【开发/调试工具】【串口工具】不同串口软件如何生成带时间戳的日志
    https://blog.csdn.net/qxhgd/article/details/126152913 Xshell在新建会话属性页面,可配置日志的日期格式:  IPOP可根据需要调整标签间隔时间: ......
  • nginx日志分析: 每小时请求量最高的IP
    按小时来统计,当前指定日志的每小时最高流量的前10个IP,并显示出请求的状态码.nginx.conf中配置的日志格式为:  log_format main '$remote_addr-$remote_user[$time_local]"$request"'           '$status$body_bytes_sent"$http_refere......
  • apache日志类型及作用
    apache标准中规定了4类日志: 错误日志 访问日志 传输日志 Cookie日志 其中:传输日志和Cookie日志被Apache2.0认为已经过时,同时错误日志和访问日志被Apache2.0+默认设置 访问日志 访问服务器的远程机器的地址:可以得知浏览者来自何方 浏览者访问的资源:可以得知......