使用ELK,我不确定如何在logstash配置文件中对使用正确的过滤器

时间:2018-10-23 16:43:13

标签: csv elasticsearch logstash

我有一个dollarVars术语,其中充满了这种格式的内容...

消息1: Stuff1,Header1 | Value1 | Header2 | Value2 | Header3 | Value3 |

消息2: Stuff1,Header2 | Value2 | Header4 | Value4 | Header5 | Value5 |

消息3: Stuff1,Header3 | Value3 | Header4 | Value4 | Header5 | Value5 |

等等。

我当前的过滤器如下:

python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 606, in quit
    self.execute(Command.QUIT)

我该怎么办才能将解剖后的dollarVars拆分成相应的值(每个标题右侧的那个)到标题中?

我怀疑这会使用“ |”方式使用csv过滤器而不是“,”并以某种方式告诉它,每个dollarVar奇数列都是标题,而每个偶数列都带有其各自的(n-1)个奇数列。

2 个答案:

答案 0 :(得分:0)

我认为您将要使用the split function within mutate拆分dollarVars。

从那里,我将通过ruby filter分解为ruby,以遍历结果拆分数组并构建新字段:

ruby {
  code => "
    i = 0
    while i < dollarVars.count
      event.set(dollarVars[i++]) = dollarVars[i++]
    end  
  "
}

答案 1 :(得分:0)

这是固定的我试图做的事情。不需要突变,只需这个红宝石代码。

   ruby { 
    code => "
    i = 0
    vars = event.get('dollarVars')
    v_array = vars.split('|')
    while i < v_array.count
      event.set(v_array[i],v_array[i+1])
      i += 2
    end  
  "
          }