gpt4 book ai didi

json - Filebeat 和 LogStash——多种不同格式的数据

转载 作者:行者123 更新时间:2023-12-01 02:58:54 26 4
gpt4 key购买 nike

我有 Filebeat、Logstash、ElasticSearch 和 Kibana。 Filebeat 在一个单独的服务器上,它应该接收不同格式的数据:syslog、json、来自数据库等,并将其发送到 Logstash。

我知道如何设置 Logstash 以使其处理单一格式,但由于有多种数据格式,我该如何配置 Logstash 以正确处理每种数据格式?

事实上,我如何同时设置 Logstash 和 Filebeat,以便所有不同格式的数据都能从 Filebeat 正确发送并提交到 Logstash?我的意思是,处理发送和接收数据的配置设置。

最佳答案

要在 Logstash 管道中分隔不同类型的输入,请使用 type 字段和 tags 进行更多识别。

在您的 Filebeat 配置中,您应该为每种不同的数据格式使用不同的探矿者,然后可以将每个探矿者设置为具有不同的 document_type: 字段。

Reference

例如:

filebeat:
# List of prospectors to fetch data.
prospectors:
# Each - is a prospector. Below are the prospector specific configurations
-
# Paths that should be crawled and fetched. Glob based paths.
# For each file found under this path, a harvester is started.
paths:
- "/var/log/apache/httpd-*.log"
# Type to be published in the 'type' field. For Elasticsearch output,
# the type defines the document type these entries should be stored
# in. Default: log
document_type: apache
-
paths:
- /var/log/messages
- "/var/log/*.log"
document_type: log_message

在上面的示例中,来自 /var/log/apache/httpd-*.log 的日志将具有 document_type: apache,而另一个探矿者具有 文档类型:日志消息

当Logstash处理事件时,这个document-type字段就变成了type字段。然后,您可以在 Logstash 中使用 if 语句对不同的类型进行不同的处理。

Reference

例如:

filter {
if [type] == "apache" {
# apache specific processing
}
else if [type] == "log_message" {
# log_message processing
}
}

关于json - Filebeat 和 LogStash——多种不同格式的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37684167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com