Observability:如何在使用 Elastic Agents 把多行的日志摄入到 Elasticsearch 中

Posted Elastic 中国社区官方博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Observability:如何在使用 Elastic Agents 把多行的日志摄入到 Elasticsearch 中相关的知识,希望对你有一定的参考价值。

在我之前的文章 “Observability:如何使用 Elastic Agents 把定制的日志摄入到 Elasticsearch 中”,我详述了如何使用 Custom Logs 来采集定制的日志。在文章的留言中,有位开发者想了解如何把多行的日志摄入到 Elasticsearch 中来。一般来说,多行的日志有如下的格式:

Exception in thread "main" java.lang.NullPointerException
        at com.example.myproject.Book.getTitle(Book.java:16)
        at com.example.myproject.Author.getBookTitles(Author.java:25)
        at com.example.myproject.Bootstrap.main(Bootstrap.java:14)

这是一个典型的 Java Exception 日志。在摄入的过程中,我们并不想把它分拆成几个日志信息,而是希望是一条日志信息。

在我之前的文章 “Beats:使用 Filebeat 传送多行日志”,我有详述该如何实现这个。那个是在配置 Filebeat 时需要使用的一些配置。究其实质,Elastic Agent 也是使用 Filebeat 来采集数据的。那么我们该在 Custom Logs 的哪个地方配置相应的设置呢?

前提条件

在进行如下的练习之前,请详细阅读我之前的文章 “Observability:如何使用 Elastic Agents 把定制的日志摄入到 Elasticsearch 中”。里面含有详细的一步一步地配置。在这篇文章中,我将展示一些地方的区别。

我们在自己喜欢的目录里创建如下的一个日志文件:

liuxg@liuxgu:~/tmp$ pwd
/home/liuxg/tmp
liuxg@liuxgu:~/tmp$ cat multiline 
Exception in thread "main" java.lang.NullPointerException
        at com.example.myproject.Book.getTitle(Book.java:16)
        at com.example.myproject.Author.getBookTitles(Author.java:25)
        at com.example.myproject.Bootstrap.main(Bootstrap.java:14)

配置 Custom Logs

下面展示如何配置 Custom Logs 集成:

 

 

 

 

 

 

关于上面的配置,请参阅我之前的文章 “Beats:使用 Filebeat 传送多行日志”。

这样,我们就配置好了。

检查日志是否已经被成功摄入

我们来到 Discover 的界面:

 

 

从上面,我们可以看到 message 的信息是含有整个 Exception 的。我们也可以通过查询来找到这个日志:

GET logs-*/_search

  "query": 
    "match": 
      "message": "com.example.myproject.Book.getTitle"
    
  ,
  "_source": [
    "message"
   ]

 

好啦。今天的分享就到这里。希望大家学到知识! 

以上是关于Observability:如何在使用 Elastic Agents 把多行的日志摄入到 Elasticsearch 中的主要内容,如果未能解决你的问题,请参考以下文章

Observability:在 Elastic Observability 部署中添加免费和开放的 Elastic APM

Observability:在 Elastic Observability 部署中添加免费和开放的 Elastic APM

Observability:如何使用 Elastic Agents 把微服务的数据摄入到 Elasticsearch 中

Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标

Observability:从零开始创建 Java 微服务并监控它

Observability:从零开始创建 Java 微服务并监控它