如何用logstash累积过滤器?

亚历山德拉·唐恩

我目前正在使用docker发现弹性搜索,kibana和logstash。(版本7.1.1)三个容器运行良好。

我有一些数据文件,其中包含一些像这样的行:

foo=bar    type=alpha    T=20180306174204527

我的logstash.conf包含:

input {
  file {
    path => "/tmp/data/*.txt"
    start_position => "beginning"
  }
}
filter {
  kv { 
    field_split => "\t"
    value_split => "="
  }
}
output {
  elasticsearch { hosts => ["elasticsearch:9200"] }
  stdout {
    codec => rubydebug
  }
}

我处理以下数据:

{
          "host" => "07f3051a3bec",
           "foo" => "bar",
       "message" => "foo=bar\ttype=alpha\tT=20180306174204527",
             "T" => "20180306174204527",
    "@timestamp" => 2019-06-17T13:47:14.589Z,
          "path" => "/tmp/data/ucL12018_03_06.txt",
          "type" => "alpha"
      "@version" => "1",
}

工作的第一步已经完成。现在,我想添加一个过滤器以将键的值转换T为时间戳。

{
...
             "T" => "2018-03-06T17:42:04.527Z",
    "@timestamp" => 2019-06-17T13:47:14.589Z,
...
}

我不知道怎么做。我试图在过滤器之后添加第二个过滤kv器,但是添加新文件时没有任何变化。

波特

kv过滤器之后添加此过滤器:

date { 
  match => [ "T", "yyyyMMddHHmmssSSS" ] 
  target => "T"
}

日期过滤器将尝试解析领域T使用提供的模式创建一个日期,它会被写入T字段(默认情况下它覆盖的@timestamp领域)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章