0

因此,我有一个由 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)

另请注意:尽管 Kibana 中提供了这些字段,但我也尝试了“主机”、“主机名”和其他类似的字段名称,但均无济于事。

4

1 回答 1

3

由于hostname嵌套在beat您需要匹配[beat][hostname]而不是beat.hostname. 并将这些字段添加到文档中,使用%{PATTERN:fieldname}match 参数中的形式。

filter {
  grok {
    patterns_dir => ["/config/patterns"]
    match => {
      "[beat][hostname]" => "%{INSTALLATION:installation}-%{DOMAIN:domain}-%{SERVICE:service}"
    }
  }
}
于 2016-08-30T15:00:54.760 回答