【发布时间】:2023-02-03 23:08:35
【问题描述】:
我在服务器上安装了 elk 堆栈,在另一台服务器上安装了 filebeat 以在 filebeats-[data] 索引上发送 syslog,它工作正常。 现在,在 elk 服务器上,我在 logstash 中配置了另一个输入,以在 json_data 索引上发送一个 json 文件,它工作正常,但现在我在两个索引上都找到了 filebeat 日志,但我不明白为什么。 我只希望 filebeat 日志记录在 filebeat-[data] 索引上,而不是在 json_data 索引上。 我哪里错了?
这是我的 logstash conf 文件
input {
file {
path => "/home/centos/json/test.json"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
json {
source => "message"
}
}
output {
elasticsearch {
hosts => "http://10.xxx.xxx.xxx:9200"
index => "json_data"
}
}
input {
beats {
port => 5044
}
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output {
elasticsearch {
hosts => "http://10.xxx.xxx.xxx:9200"
sniffing => true
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
}
}
我尝试了不同的配置,我也尝试删除 json.conf,在这种情况下,filebeat 只写在 filebeat-[data] 索引上
【问题讨论】:
标签: json logstash filebeat elk