2016-08-29 118 views
0

所以,我有一個由filebeat設置的主機名(並且我寫了一個應該抓住它的正則表達式),但下面不添加字段的方式是我認爲它應該..基於filebeat數據添加字段到logstash

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有這些領域可用,但也是有用的。

回答

2

由於hostname嵌套在beat之下,所以您需要與[beat][hostname]而不是beat.hostname匹配。要將這些字段添加到文檔,請在匹配參數中使用%{PATTERN:fieldname}的格式。

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

你好先生,是一個美麗的男人<3 –

相關問題