我有一个配置,其中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]}"
}
}
1条答案
按热度按时间vc9ivgsu1#
你可以很容易地用一个
mutate/add_field
过滤器:弹性通用模式文档解释了如何为
kind
,category
以及type
.