日志存储和filebeat设置event.dataset值

zvokhttg  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(601)

我有一个配置,其中filebeat从一些文件中获取日志(使用自定义格式),并将这些日志发送到logstash示例。
在logstash中,我应用一个gork过滤器来分割一些字段,然后将输出发送到我的elasticsearch示例。
管道工作正常,在elasticsearch上加载正确,但不存在任何事件数据(例如 event.dataset 或者 event.module ). 因此,我正在寻找一段代码,用于将此类信息添加到我的事件中。
这里是我的filebeat配置:

filebeat.config:
  modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false

filebeat.inputs:
  - type: log
    paths:
      - /var/log/*/info.log
      - /var/log/*/warning.log
      - /var/log/*/error.log

output.logstash:
  hosts: '${ELK_HOST:logstash}:5044'

这里是我的日志存储管道:

input {
  beats {
    port => 5044
  }
}

filter {
    grok {
        match => { "message" => "MY PATTERN"}
    }
  mutate {
    add_field => { "logLevelLower" => "%{logLevel}" }
  }
  mutate {
    lowercase => [ "logLevelLower" ]
  }
}

output {
    elasticsearch {
    hosts => "elasticsearch:9200"
    user => "USER"
    password => "PASSWORD"
    index => "%{[@metadata][beat]}-%{logLevelLower}-%{[@metadata][version]}"
  }
}
vc9ivgsu

vc9ivgsu1#

你可以很容易地用一个 mutate/add_field 过滤器:

filter {
  mutate {
    add_field => {
        "[ecs][version]" => "1.5.0"
        "[event][kind]" => "event"
        "[event][category]" => "host"
        "[event][type]" => ["info"]
        "[event][dataset]" => "module.dataset"
    }
  }
}

弹性通用模式文档解释了如何为 kind , category 以及 type .

相关问题