Logstash学习--Filter

date过滤器

date过滤器的用途是从某些字段中解析出时间,然后用这个时间作为事件(event)的时间戳。

但是要从某个字段中解析时间,要告诉date时间的格式,这样它才能根据指定的格式获取时间。

比如说某字段的数据格式是这样的:

"Apr 17 09:32:01"

你要告诉date,你去哪个字段上解析时间,并且时间的格式是:

MMM dd HH:mm:ss

时间戳对一个事件很重要,可以帮助你实现sortingbackfilling
如果用户没有指定这个filter,那么logstash会在输入的时候自动为事件设置时间戳。

date过滤器的配置语法:

date {
}

date中可以设置的参数:

1. add_field

哈希类型,默认是空{}。
如果执行成功,将在事件中增加新的字段。新增的字段可以是动态的值,也可以使用某个已存在的字段的值。

filter {
  date {
    add_field => { "foo_%{somefield}" => "Hello world, from %{host}" }
  }
}
# You can also add multiple fields at once:
filter {
  date {
    add_field => {
      "foo_%{somefield}" => "Hello world, from %{host}"
      "new_field" => "new_static_value"
    }
  }
}

2. add_tag

数组类型,默认是空[]。

如果执行成功,会在事件中增加新的tag,新增的tag可以是动态的或者引用事件原始的值。

filter {
  date {
    add_tag => [ "foo_%{somefield}" ]
  }
}
# You can also add multiple tags at once:
filter {
  date {
    add_tag => [ "foo_%{somefield}", "taggedy_tag"]
  }
}

3. match

数组类型,默认是空[]。

这个字段告诉date从哪个字段中解析时间戳数据,该字段存储时间的格式。
如果该字段有多种时间的格式也是可以的。

match => [ "logdate", "MMM dd YYY HH:mm:ss",
          "MMM  d YYY HH:mm:ss", "ISO8601" ]

4. remove_tag

5. remove_field

6. tag_on_failure

数据类型为数组,默认值为:["_dateparsefailure"]

当match不成功的时间,会在tags 字段中增加tag_on_failure的值。

7. target

数据类型字符串,默认是为@timestamp
把match到的时间更新到target指定的字段,默认是@timestamp字段。

参考链接

Logstash-Filter官方文档

你可能感兴趣的:(lucene学习)