Logstash 和 filebeat 设置 event.dataset 值
Logstash and filebeat set event.dataset value
我有一个配置,其中 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'
这是我的 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
.
选择值
我有一个配置,其中 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'
这是我的 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
.