多个配置文件导致重复消息
Mutliple config files causing duplicate message
我在 AWS 中有一台 Logstash 机器 运行。在 Logstash 中,我有 3 个配置文件,每个配置文件都定义了 1 个输入。这些输入正在从以下来源读取日志
- 来自 s3
- 来自 http 输入
- 来自 filebeat
问题是我在 Kibana 中收到重复的消息。因此,对于 Filebeat 生成的 1 条消息,我在 Kibana 中看到了 3 条消息。我试图删除 1 个配置文件,但计数减少到 2 个。所以我很确定这是由于这些配置文件造成的。
让我困惑的是为什么会这样。我在所有 3 个配置文件上定义了单独的输入,仍然收到重复的消息。这些是所有 3 个配置文件的输入部分。
s3 输入
input {
s3 {
bucket => "elb-logs"
region => "us-east-1"
prefix => "demo/AWSLogs/792177735214/"
type => "elb-logs"
delete => true
}
}
HTTP 输入
input {
http {
type => "frontend-logs"
codec => "json"
}
}
Filebeat
input {
beats {
port => "5043"
}
}
所有 3 个配置文件都有共同的输出部分,即
output {
elasticsearch { hosts => [ "10.0.0.1:9200" ] }
}
Logstash 会将三个配置文件(s3 输入、Http 输入、Filebeat)连接在一起,并查看三个输出部分。
三个输出部分与特定输入无关 - 相反,Logstash 会将来自三个来源中任何一个的输入发送到所有配置的输出。结果,您的消息将被输出三次到同一目的地。
我会创建一个单独的单一输出配置文件,并从您的 3 个输入配置文件中删除输出部分。
我在 AWS 中有一台 Logstash 机器 运行。在 Logstash 中,我有 3 个配置文件,每个配置文件都定义了 1 个输入。这些输入正在从以下来源读取日志
- 来自 s3
- 来自 http 输入
- 来自 filebeat
问题是我在 Kibana 中收到重复的消息。因此,对于 Filebeat 生成的 1 条消息,我在 Kibana 中看到了 3 条消息。我试图删除 1 个配置文件,但计数减少到 2 个。所以我很确定这是由于这些配置文件造成的。
让我困惑的是为什么会这样。我在所有 3 个配置文件上定义了单独的输入,仍然收到重复的消息。这些是所有 3 个配置文件的输入部分。
s3 输入
input {
s3 {
bucket => "elb-logs"
region => "us-east-1"
prefix => "demo/AWSLogs/792177735214/"
type => "elb-logs"
delete => true
}
}
HTTP 输入
input {
http {
type => "frontend-logs"
codec => "json"
}
}
Filebeat
input {
beats {
port => "5043"
}
}
所有 3 个配置文件都有共同的输出部分,即
output {
elasticsearch { hosts => [ "10.0.0.1:9200" ] }
}
Logstash 会将三个配置文件(s3 输入、Http 输入、Filebeat)连接在一起,并查看三个输出部分。
三个输出部分与特定输入无关 - 相反,Logstash 会将来自三个来源中任何一个的输入发送到所有配置的输出。结果,您的消息将被输出三次到同一目的地。
我会创建一个单独的单一输出配置文件,并从您的 3 个输入配置文件中删除输出部分。