如何改进巨大的Logstash“If Statement”

时间:2016-03-01 15:15:19

标签: logstash

我的logstash实例正在读取sysmon事件(在json中从nxlog发送),并在我操作某些字段后将它们存储在elasticsearch中。

我想创建一个基于sysmon事件类型的值的新字段。我可以使用[Task]字段来确定我正在接收哪个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配置易于阅读并减少行数。

1 个答案:

答案 0 :(得分:1)

您需要translate filter