Logstash 使用 filebeat 名称覆盖主机

Logstash override host with filebeat name

我已成功设置 FileBeat -> Logstash -> ElasticSearch -> Kibana。现在在 logstash 中,我想用 beat.name 覆盖 host。但是,当我尝试引用节拍元数据时,变量未解析。

    mutate {
        add_field => {
            "timestamp" => "%{year}-%{month}-%{day} %{time}"
        }
        replace_field => {
            "host" => "%{[@metadata][beat][name]}"
        }
    }

我想我缺少一些主要配置。即使 Logstash 将其转发给 elasticsearch,这些符号解析也没有完成。

output {
  elasticsearch {
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }

我们如何正确引用 logstash 配置文件中的 filebeat 元信息?

beat.name 字段未在 @metadata 对象中携带。 beat 是事件中的顶级字段。因此要引用值使用 [beat][name] 或在字符串中使用 "%{[beat][name]}".