logstash过滤器--mutate

参考: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中的值
}

 

其他参考官方文档:

https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-merge

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值