2017-01-31 52 views
0

我正在嘗試添加「type」字段,以便在過濾到我的輸入插件時能夠將其用作標記。 例如,我可以在「文件」輸入插件中添加「類型」,並在稍後進行過濾。 代碼:將「type」添加到我的自定義輸入插件

input { 

    file { 

     path => "/var/log/%{type}.%{+yyyy.MM.dd.HH}" 

     type => "myType" 
    } 
} 

filter { 

    if [type] == "myType" 

    ... 

} 

output { 

    ... 

} 

我看了看文件輸入插件實現,並沒有看到相關的「類型」字段中的任何領域。

,所以我只是嘗試添加這樣的:

input { 

myPlugin { 

    path => "/var/log/%{type}.%{+yyyy.MM.dd.HH}" 

    type => "myType" 
    } 

} 

但過濾並沒有在所有的工作。

我該如何將這個「標籤」(或任何它)添加到我的插件?

回答

0

type的functionalitiy是用它來過濾:

類型主要用於過濾器的激活。

所以你不能真正看到正在創建一個新的領域,除非你有你的過濾器下創建一個新的領域,這樣的事情:

input {  
    file {  
     path => "/var/log/%{type}.%{+yyyy.MM.dd.HH}"  
     type => "myType" 
    } 
} 

filter {  
    if [type] == "myType"{ 
     add_field => { 
      "somefield" => "this is a sample" <--- this will actually create the field 
     } 
     add_tag => "myType" <--- this would actually create a tag for your es record if it matches the filter 

    }    
} 

也許你可以檢查出this,爲了添加一個新字段並且adding tags也是如此。 請確保您的插件支持type。希望這可以幫助!

+0

恐怕沒有:) 由於某些原因,對於文件(或tcp,udp等)輸入的寫入type =>「something」正在被過濾部分識別,即使沒有這樣的字段在文件輸入插件中。 但是,當我添加,按類型過濾使用情況,是行不通的。 – Itzik984

+0

我如何確保我的插件支持「類型」? – Itzik984

+0

@ Itzik984你的意思是,你試圖直接在你的* filter *本身中使用* type * – Kulasangar

相關問題