Logstash学习Filter

编程

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

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

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

"Apr 17 09:32:01"
1
你要告诉date,你去哪个字段上解析时间,并且时间的格式是:

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

date过滤器的配置语法:

date {
}
1
2
date中可以设置的参数:

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

filter {
  date {
    add_field => { "foo_%{somefield}" => "Hello world, from %{host}" }
  }
}
1
2
3
4
5
# You can also add multiple fields at once:
filter {
  date {
    add_field => {
      "foo_%{somefield}" => "Hello world, from %{host}"
      "new_field" => "new_static_value"
    }
  }
}
1
2
3
4
5
6
7
8
9
2. add_tag
数组类型,默认是空[]。

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

filter {
  date {
    add_tag => [ "foo_%{somefield}" ]
  }
}
1
2
3
4
5
# You can also add multiple tags at once:
filter {
  date {
    add_tag => [ "foo_%{somefield}", "taggedy_tag"]
  }
}
1
2
3
4
5
6
3. match
数组类型,默认是空[]。

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

match => [ "logdate", "MMM dd YYY HH:mm:ss",
          "MMM  d YYY HH:mm:ss", "ISO8601" ]
1
2
4. remove_tag
5. remove_field
6. tag_on_failure
数据类型为数组,默认值为:["_dateparsefailure"]

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

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

参考链接
Logstash-Filter官方文档
————————————————
 

以上是 Logstash学习Filter 的全部内容, 来源链接: utcz.com/z/517879.html

回到顶部