2016-03-01 49 views
0

我的logstash實例正在讀取sysmon事件(從nxlog中發佈的json中),並在處理某些字段後將它們存儲在elasticsearch中。如何改善巨大的Logstash「如果聲明」

我想用基於sysmon事件類型的值創建一個新字段。我可以使用該字段[任務]來確定我正在接收哪個sysmon事件(1到9)。但是我最終得到了這個巨大的if/else語句。

我寧願是能夠建立一些當地的數組:

EventObject=>['process','file','flow','sysmon'] 

然後,創建一個新的領域的東西,如

mutate { add_field => {"object" => EventObject[$Task]}} 

相反,我有這個

if [Task] == 1 { 
     mutate { 
     add_field => {"object" => "process"} 
     } 


    } else if [Task] == 2 { 
    mutate{ 
     add_field => {"object" => "file"} 

    } else if [Task] == 3 { 
    mutate{ 
     add_field => {"object" => "flow"} 

    } else if [Task] == 4 { 
     etc.... 
enter code here 

這樣做的正確方法是什麼?我試圖讓我的logstash配置容易閱讀並減少行數。

回答