elasticsearch - Logstash和Filebeat设置event.dataset值

标签 elasticsearch logstash filebeat

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

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'


这是我的logstash管道:
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]}"
  }
}

最佳答案

您可以使用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"
    }
  }
}
Elastic Common Schema文档解释了如何为 kind , category and type 选择值。

关于elasticsearch - Logstash和Filebeat设置event.dataset值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64650511/

相关文章:

elasticsearch - 最新的Elasticsearch 7.x是否支持在不同节点中的集群之间滚动

mongodb - 将插件安装到Logstash时发生ELK错误

elasticsearch - Docker中的Logstash-将2个事件合并为1个事件

java - 如何在表格格式的消息中将JSON spring boot日志显示为单独的字段

elasticsearch - 将 PCAP 导入 Elasticsearch

angularjs - 如何从 url 中删除 # 标签 MEAN STACK

string - 我们如何将文档插入到 Elastic Search 中?‽‽?

elasticsearch - 文件拍停止一段时间后,Kibana无法正确更新

elasticsearch - 如何在不返回 Elasticsearch 中的所有存储桶的情况下执行管道聚合

elasticsearch - Logstash-可以选择不基于数据转发日志吗?