当前位置:首页 > ES > 正文内容

logstash过滤器--mutate

phpmianshi2年前 (2019-07-11)ES194

概念


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

版权声明:本文由PHP面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

elasticsearch基于地理位置的搜索

场景现在基于地理位置的app层出不穷,支持地理位置的组件也有不少,Elasticsearch也不例外,并且ES可以把地理位置、全文搜索、结构化搜索和分析结合到一起,我们来看一下。注意本文章基于es7,...

elasticsearch中重新索引数据

概念虽然你可以给索引添加新的类型,或给类型添加新的字段,但是你不能添加新的分析器或修改已有字段。假如你这样做,已被索引的数据会变得不正确而你的搜索也不会正常工作。 修改在已存在的数据最简单的...

ELK的安装与配置

Elasticsearch 安装安装 JDK这里选择 openjdk$ yum install java-11-openjdk-devel获取 elasticsearch ...

elasticsearch中forcemerge清除文件占用的磁盘空间

elasticsearch中forcemerge清除文件占用的磁盘空间

背景最近发现es占用的磁盘存储大小一直在增加,本来1mb的东西,隔了1-2天达到100mb多,如下分析    elasticsearch是建立在Apache Lucene...

logstash中同步mysql到elastic常见问题总结

1. mysql查询字段中有 type字段问题原因select语句中查到了type, 但es中会默认有一个type, 这使得两个type冲突.会导致同步失败,且没有报错GET my_inde...

elasticsearch模糊查询match match_phrase wildcard regexp prefix的区别

1.match查询会先对搜索词进行分词,比如“白雪公主和苹果”,会分成“白雪”“公主”“苹果”。含有相关内容的字段,都会被检索出来。2.match_phrase查询match_phrase与slop一...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。