根据filebeat数据添加字段到logstash

时间:2016-08-29 17:03:51

标签: pattern-matching logstash logstash-grok grok filebeat

所以,我有一个由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,hostname,host或类似内容来添加我想要的字段。目前主机名是:BOS-LAP-MYNAME1

哪个应匹配:

INSTALLATION [^-]{1,3}
DOMAIN (BOS|LAP)
SERVICE (MYNAME1|TEST|12345)

另请注意:我已经尝试过#34;主持人" "主机名"尽管这些字段在Kibana中可用,但其他字段名称也无济于事。

1 个答案:

答案 0 :(得分:2)

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

filter {
  grok {
    patterns_dir => ["/config/patterns"]
    match => {
      "[beat][hostname]" => "%{INSTALLATION:installation}-%{DOMAIN:domain}-%{SERVICE:service}"
    }
  }
}