基于 filebeat 数据将字段添加到 logstash
Add fields to logstash based off of filebeat data
所以,我有一个由 filebeat 设置的主机名(我已经编写了一个应该获取它的正则表达式),但以下内容并没有按照我认为应该的方式添加字段..
grok{
patterns_dir => "/config/patterns"
match =>{ "beat.hostname" => ["%{INSTALLATION}-%{DOMAIN}-%{SERVICE}"] }
add_field => { "[installation]" => "%{INSTALLATION}"}
add_field => { "[domain]" => "%{DOMAIN}"}
add_field => { "[service]" => "%{SERVICE}"}
}
我似乎无法访问 beat.hostname、主机名、主机或类似的东西来添加我想要的字段。目前主机名是:BOS-LAP-MYNAME1
应该匹配:
INSTALLATION [^-]{1,3}
DOMAIN (BOS|LAP)
SERVICE (MYNAME1|TEST|12345)
另请注意:我已经尝试了 "host" "hostname" 和其他类似的字段名称,尽管这些字段在 Kibana 中可用。
由于 hostname
嵌套在 beat
下,您需要匹配 [beat][hostname]
而不是 beat.hostname
。要将这些字段添加到文档中,请在匹配参数中使用 %{PATTERN:fieldname}
的形式。
filter {
grok {
patterns_dir => ["/config/patterns"]
match => {
"[beat][hostname]" => "%{INSTALLATION:installation}-%{DOMAIN:domain}-%{SERVICE:service}"
}
}
}
所以,我有一个由 filebeat 设置的主机名(我已经编写了一个应该获取它的正则表达式),但以下内容并没有按照我认为应该的方式添加字段..
grok{
patterns_dir => "/config/patterns"
match =>{ "beat.hostname" => ["%{INSTALLATION}-%{DOMAIN}-%{SERVICE}"] }
add_field => { "[installation]" => "%{INSTALLATION}"}
add_field => { "[domain]" => "%{DOMAIN}"}
add_field => { "[service]" => "%{SERVICE}"}
}
我似乎无法访问 beat.hostname、主机名、主机或类似的东西来添加我想要的字段。目前主机名是:BOS-LAP-MYNAME1
应该匹配:
INSTALLATION [^-]{1,3}
DOMAIN (BOS|LAP)
SERVICE (MYNAME1|TEST|12345)
另请注意:我已经尝试了 "host" "hostname" 和其他类似的字段名称,尽管这些字段在 Kibana 中可用。
由于 hostname
嵌套在 beat
下,您需要匹配 [beat][hostname]
而不是 beat.hostname
。要将这些字段添加到文档中,请在匹配参数中使用 %{PATTERN:fieldname}
的形式。
filter {
grok {
patterns_dir => ["/config/patterns"]
match => {
"[beat][hostname]" => "%{INSTALLATION:installation}-%{DOMAIN:domain}-%{SERVICE:service}"
}
}
}