2 插件配置
2.3 过滤器配置
2.3.1 date事件处理
@timestamp
* ISO8601
* UNIX
* UNIX_MS
* TAI64N
* Joda-Time 库
尽量统一使用UTC时间,存成long长整型数据,否则时区问题会很头疼
2.3.2 grok 正则捕获
grop 调试工具网址:http://grokdebug.herokuapp.com/
数据修改
- 字符串处理:
1).gsub
2).split
3).join
4).merge
5).strip
6).lowercase/uppercase - 字段处理
1).rename
2).update
3).replace 执行次序
1). 需要注意的是,filter/mutate 内部是有执行次序的。其次序如下:rename(event) if @rename
update(event) if @update
replace(event) if @replace
convert(event) if @convert
gsub(event) if @gsub
uppercase(event) if @uppercase
lowercase(event) if @lowercase
strip(event) if @strip
remove(event) if @remove
split(event) if @split
join(event) if @join
merge(event) if @merge
filter_matched(event)2). 而 filter_matched 这个 filters/base.rb 里继承的方法也是有次序的。
@add_field.each do |field, value|
end
@remove_field.each do |field|
end
@add_tag.each do |tag|
end
@remove_tag.each do |tag|
end
GeoIP 地址归类查询
配置示例:
filter {
geoip {
source => “message”
}
}
小贴士
geoip 插件的 “source” 字段可以是任一处理后的字段,比如 “client_ip”,但是字段内容却需要小心!geoip 库内只存有公共网络上的 IP 信息,查询不到结果的,会直接返回 null,而 logstash 的 geoip 插件对 null 结果的处理是:不生成对应的 geoip.字段。
所以读者在测试时,如果使用了诸如 127.0.0.1, 172.16.0.1, 182.168.0.1, 10.0.0.1 等内网地址,会发现没有对应输出!
本文详细介绍了Logstash中ELK过滤器的配置,包括date事件处理以确保统一的UTC时间,grok正则捕获工具的使用,数据修改操作如字符串处理和字段处理,以及GeoIP地址归类查询的配置示例。强调了过滤器执行顺序和geoip插件对于内网地址的处理方式。

483

被折叠的 条评论
为什么被折叠?



