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