参考:https://www.phpmianshi.com/?id=149
概念
filters/mutate 插件是 Logstash 另一个重要插件。它提供了丰富的基础类型数据处理能力。包括类型转换,字符串处理和字段处理等。
Plugin version: v3.5.0
执行顺序
coerce rename update replace convert gsub uppercase capitalize lowercase strip remove split join merge copy
也可以指定多个 mutate块来改变执行顺序
filter { mutate { split => ["hostname", "."] add_field => { "shortHostname" => "%{hostname[0]}" } } mutate { rename => ["shortHostname", "hostname" ] } }
示例
1、转变参数类型 convert
mutate { convert => { "name" => "string" "age" => "integer" "state" => "boolean" } }
2、复制字段 copy
复制一个已存在的字段到另外一个字段,已存在的字段会被重写到一个新的字段,新的字段不需要单独添加
mutate { copy => { "source_field" => "dest_field" } }
3、正则表达式替换 gsub
这里只针对string类型字段
mutate { gsub => [ #把name字段中的“a”替换为“p” "name","a","p" #斜线都替换成下划线 "fieldname", "/", "_", #正则替换 "fieldname2", "[\\?#-]", "." ] }
4、大小写转换 lowercase&uppercase
mutate { #lowercase => [ "name" ] uppercase => [ "name" ] }
5、字段重命名 rename
mutate { rename => {"name" => "name3"} }
6、除去字段值前后空格 strip
mutate { strip => ["name"] }
7、更新字段值 update
mutate { update => {"name" => "li"} }
8、修改字段 replace
作用和 update 类似,但是当字段不存在的时候,它会起到 add_field 参数一样的效果,自动添加新的字段。
9、移除字段 remove_field
mutate { remove_field => ["name"] }
10、增加字段 add_field
mutate { add_field => {"testField1" => "0"} add_field => {"testField2" => "%{name}"} #引用name中的值 }
其他参考官方文档: