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

logstash过滤器--mutate

phpmianshi1年前 (2019-07-11)ES97

概念


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中动态模板全解实战

动态模板在我们最开始使用ES的时候,可能还不太了解mapping,也没有添加过mapping为什么我们还是能够正常的添加文档。那是因为ES可以动态映射,添加文档的时候遇到没有的字段,可以动态的添加到m...

elasticsearch中分析器的原理和使用

概念分析(analysis)机制用于进行全文文本(Full Text)的分词,以建立供搜索用的反向索引。原理分析器的工作过程大概分成两步:分词(Tokenization):根据停止词把文本分割成很多的...

kibana DevTools语句查询详解

直接点击Dev Tools,来看基本操作1,输入:GET /{   "name": "GddjX_V",  &nbs...

elasticsearch中重新索引数据

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

es的基本概念和原理

基本概念和原理 ES其实就是基于lucene之上封装的一个分布式 索引框架,所以lucene拥有的特性,它都是有的,同时因为它使基于分布式的,所以对很多的功能进行了扩展,要想掌握ES,需要先熟悉一...

logstash增量同步mysql到es配置详解

配置详解input {   jdbc {     # mysql相关jdbc配置   ...

发表评论

访客

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