如何为 filebeat 到 logstash 的每个日志正确配置不同的 event.dataset

how to properly configure a different event.dataset per log for filebeat to logstash

我用带有 logstash 的 kibana 7.11.1 设置了一个服务器。 我是 Kibana 的新手,所以..对于任何错误,我提前表示歉意:)

我有另一台配置了 filebeat 的服务器将数据发送到 logstash。

我可以在 kibana 中正确看到数据,但 event.dataset 是空的。我想自己设置。

通过阅读 我注意到我可以在 logstash 配置中设置它。但这将为所有通过 logstash 的日志添加相同的值。但我想为不同类型的日志文件添加不同的值。

我尝试在 filebeat.yml 中的 fields: 下设置 event.dataset 但它没有出现在 kibana 上。我想这些是自定义变量而不是设置 event.dataset.

的正确方法

一般来说,我在 pm2 下有 运行 的服务,所以我想设置 event.dataset 以包含 pm2.<LOG_NAME>.<LOG_TYPE>

这是我在 filebeat.yml 中的输入配置:

- type: log
  enabled: true
  paths:
    - /home/ubuntu/.pm2/*-error-*log
  fields:
   level: error
- type: log
  enabled: true
  paths:
    - /home/ubuntu/.pm2/logs/cdr-ftp-out*log

这是我的 logstash 配置:

input {
    beats {
        port => 5544
    }
}
filter {
 grok {
   match => {"message"=>"%{DATESTAMP:timestamp} \[%{LOGLEVEL:loglevel}\]: %{GREEDYDATA:msg}"} 
 }
mutate {
    rename => ["host", "server"]
    convert => {"server" => "string"}
}
}

output {
    elasticsearch {
        hosts => ["http://localhost:9200"]
    }
}

如何正确解决这个问题?

谢谢

正确的做法是这样的:

- type: log
  enabled: true
  paths:
    - /home/ubuntu/.pm2/*-error-*log
  fields:
    level: error
    event.dataset: dataset1                   <--- add this
  fields_under_root: true                     <--- add this
- type: log
  enabled: true
  fields:
    event.dataset: dataset2                   <--- add this
  fields_under_root: true                     <--- add this
  paths:
    - /home/ubuntu/.pm2/logs/cdr-ftp-out*log