Observability:如何在使用 Elastic Agents 把多行的日志摄入到 Elasticsearch 中
2022年8月25日 | by mebius
在我之前的文章 “Observability:如何使用 Elastic Agents 把定制的日志摄入到 Elasticsearch 中”,我详述了如何使用 Custom Logs 来采集定制的日志。在文章的留言中,有位开发者想了解如何把多行的日志摄入到 Elasticsearch 中来。一般来说,多行的日志有如下的格式:
Exception in thread "main" java.lang.NullPointerException
at com.example.myproject.Book.getTitltgcodee(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/liuxtgcodeg/tmp
liuxg@liuxgu:~/tmp$ cat multiline
Exception in thread "main" java.lang.NullPointerException
at cotgcodem.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 中
相关推荐: Elasticsearch:Apache spark 大数据集成
Elasticsearch 已成为大数据架构中的常用组件,因为它提供了以下几个特性: 它使你可以快速搜索大量数据。 对于常见的聚合操作,它提供对大数据的实时分析。 使用 Elasticsearch 聚合比使用 Spark 聚合更容易。 如果你需要转向快速数据解…