Mutate(改变)过滤器插件

该文章内容参考官方文档7.8版本,由于使用范围有限并未翻译全篇文章

描述

Mutate过滤器允许你执行一些对字段的修改操作。你可以通过这个过滤器对事件中的字段进行重命名,移除,替换和修改。

处理命令

在Mutate过滤器的配置文件中可以执行如下命令:

  • 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" ]}
}

Mutate过滤器的配置选项

下面是过滤器支持的配置项,配置项详情参考下面的详解。

选项 类型 是否必须 简述
convert hash No 转化命令,是对字段类型做转化,例如:String转为integer
copy hash No 将一个已经存在的字段复制给另一个字段。
gsub array No 通过正则表达式匹配字段的值,然后替换为指定的字符串。
join hash No 使用分隔符连接数组。
lowercase array No 将string类型的字段值转化为小写的形式。
merge hash No 合并两个数组或者Hash类型的字段。string类型的字段会自动的合并为一个数组。
coerce hash No 为存在但是不为空的字段设置默认值
rename hash No 字段重命名
replace hash No 将一个字段的值替换为一个新的值。
split hash No 将一个字段按照指定符号切割为数组。
strip array No 去除字段中的空格。
update hash No 更新字段为一个新值。
uppercase array No 将字符串字段转化为大写形式。
capitalize array No 将字符串字段转化为首字母大写的形式。
tag_on_failure string No 错误发生时的配置

convert

  • 字段类型为 hash
  • 没有默认值

将字段转化为不同的类型,例如:string 转 integer。如果被转化的字段类型是数组,数组的所有成员都将被转化。如果对象是hash 就不会进行转化。

实例:

filter {mutate {convert => {"fieldname" => "integer""booleanfield" => "boolean"}}
}

copy

  • 字段类型为 hash
  • 没有默认值

将一个已经存在的字段复制给另一个字段。如果目标字段已经存在,目标字段的值将被覆盖。

实例:

filter {mutate {copy => { "source_field" => "dest_field" }}}

gsub

  • 字段类型为 array
  • 没有默认值

通过正则表达式匹配字段的值,然后替换为指定的字符串。只有字段类型是string类型或者string数组类型才会进行匹配替换。其他类型字段不会做任何操作。

注意配置文件中需要转义斜杠线。

实例:

filter {mutate {gsub => [# replace all forward slashes with underscore"fieldname", "/", "_",# replace backslashes, question marks, hashes, and minuses# with a dot ".""fieldname2", "[\\?#-]", "."]}
}

join

  • 字段类型为 hash
  • 没有默认值

使用分隔符连接数组。如果不是数组则不执行操作。

实例:

filter {mutate {join => { "fieldname" => "|" }}
}

[“a”,“b”]转为 “a”|“b”


lowercase

  • 字段类型为 array
  • 没有默认值

将string类型的字段值转化为小写的形式。

实例:

filter {mutate {lowercase => [ "fieldname" ]}}

merge

  • 字段类型为 hash
  • 没有默认值

合并两个数组或者Hash类型的字段。string类型的字段会自动的合并为一个数组。例如:
array + string 可以合并为一个数组
string + string 会合并为数组
arrayhash 类型的两个字段将不会执行合并.

实例:

filter {mutate {merge => { "dest_field" => "added_field" }}
}

coerce

  • 字段类型为 hash
  • 没有默认值

为存在但是不为空的字段设置默认值。

实例:

filter {mutate {# Sets the default value of the 'field1' field to 'default_value'coerce => { "field1" => "default_value" }}
}

rename

  • 字段类型为 hash
  • 没有默认值

字段重命名
实例:

filter {mutate {# Renames the 'HOSTORIP' field to 'client_ip'rename => { "HOSTORIP" => "client_ip" }}
}

replace

  • 字段类型为 hash
  • 没有默认值

将一个字段的值替换为一个新的值。新值可以包括%{foo}字符串,以帮助您从事件的其他字段构建出新值。
实例:

filter {mutate {replace => { "message" => "%{source_host}: My new message" }}
}

split

  • 字段类型为 hash
  • 没有默认值

将一个字段按照指定符号切割为数组。仅在string类型的字段中生效。
实例:

filter {mutate {split => { "fieldname" => "," }}
}

strip

  • 字段类型为 hash
  • 没有默认值

去除字段中的空格。NOTE:去除字段中前端部分.

实例:

filter {mutate {split => { "fieldname" => "," }}
}

update

  • 字段类型为 hash
  • 没有默认值

更新字段为一个新值。如果这个字段不存在,更新将不执行。

实例:

filter {mutate {update => { "sample" => "My new message" }}
}

uppercase

  • 字段类型为 hash
  • 没有默认值

将字符串字段转化为大写形式。

实例:

filter {mutate {uppercase => [ "fieldname" ]}
}

capitalize

  • 字段类型为 hash
  • 没有默认值

将字符串字段转化为首字母大写形式。

实例:

filter {mutate {capitalize => [ "fieldname" ]}
}

tag_on_failure

  • 字段类型为 hash
  • 默认值_mutate_error

如果在过滤器中发生了错误,这次操作将不会执行,并且提供一个标记标记当前事件。

Logstash过滤器之Mutate过滤器详解相关推荐

  1. android edittext 过滤英文名称,Android 限制edittext 整数和小数位数 过滤器(详解)

    写了一个过滤器,根据需要限制edittext输入的整数和小数位,如下代码: package allone.verbank.apad.client.component; import android.t ...

  2. HBase的布隆过滤器详解

    HBase的布隆过滤器详解 1.布隆过滤器的简单介绍 2.布隆过滤器的原理分析 2.1 哈希表存在的问题 2.2 布隆过滤器的原理 2.2.1 原理详解 2.2.2 布隆过滤器失误率的调节 2.2.3 ...

  3. asp.net core MVC 过滤器之ActionFilter过滤器(二)

    简介 Action过滤器将在controller的Action执行之前和之后执行相应的方法. 实现一个自定义Action过滤器 自定义一个全局异常过滤器需要实现IActionFilter接口 publ ...

  4. [转]布隆过滤器详解

    布隆过滤器 (Bloom Filter)是由Burton Howard Bloom于1970年提出,它是一种space efficient的概率型数据结构,用于判断一个元素是否在集合中.在垃圾邮件过滤 ...

  5. Java学习日报—Swagger介绍 与 布隆过滤器详解—2021/12/01

    目录 1. Swagger 1.1 介绍 1.2 Swagger 的优势 1.3 简单使用 1.3.1 集成 Swagger 管理 API 文档 1.3.2 在线测试接口 1.4 常用注解 1.5 参 ...

  6. shell sed过滤器详解

    1. Sed简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区 ...

  7. Servlet之过滤器详解

    Servlet分为三种:标准的Servlet----MVC中控制器 .过滤Servlet(过滤器).监听Servlet(监听器). 这篇博客将结合实例来讲解过滤Servlet(过滤器). Servle ...

  8. 拦截器与过滤器详解,使用方式与注意事项,使用场景以及区别与联系

    过滤器Filter 定义 对Servlet容器调用Servlet的过程进行拦截,基于函数回调实现 常见使用场景 统一设置编码 过滤敏感字符 登录校验 URL级别的访问权限控制 数据压缩 使用方式 这了 ...

  9. STM32定时器之预分频器详解

    STM32定时器(TIM)之预分频器(PSC)详解 在STM32的定时器中,预分频器(Prescaler-PSC)用来将定时器时钟源进行分频输出. 预分频器的值由寄存器TIMx_PSC设定,是一个16 ...

  10. logstash filter 过滤器详解

    一.grok 正则捕获插件 grok是一个十分强大的logstash filter插件,他可以通过正则解析任意文本,将非结构化日志数据解析成结构化和方便查询的结构.是目前logstash 中解析非结构 ...

最新文章

  1. MEET2020 | 嘉宾已确认!李开复、倪光南等AI大咖齐聚,共话人工智能新价值新边界新格局...
  2. IOS消息机制-委托(ptotocol与delegate)
  3. VS2010+OpenCV2.4.3配置(一次设置,永久生效)
  4. DataTable的Ajax使用
  5. 简易售货机JAVA sql_自动售货机 - 笨拙的小Q的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. java集合类程序代码_Java集合类源代码分析二:ArrayList(1)
  7. PHP魔术方法小结.md
  8. webgis之相关工具
  9. Charles安卓8手机抓包
  10. 现在谁还会LOL钻石网吧特权?
  11. 音频,视频和视觉效果
  12. mysql字段长度的作用_数据库字段的长度 作用
  13. Java在线打开word文档实现指定用户只能编辑指定区域
  14. java黄金分割点游戏_结对编程——Java实现黄金分割点游戏
  15. 做自媒体短视频,最简单的赚钱方法,就是做流量收益
  16. iOS 中内存的管理?
  17. SEO关键词排名优化做到百度首页的核心操作
  18. 杂牌机搞机之旅最终章————刷入Xposed框架
  19. C++判断一个数是不是质数
  20. linux服务器强行删除隐藏文件

热门文章

  1. 新书推荐 | 数据流机器学习:MOA实例
  2. 迅捷PDF转Word转换器
  3. 电商项目高并发下库存处理redisson
  4. neo4j springboot 日志_springBoot 与neo4j的简单整合示例
  5. 体系结构实验(4)—— Tomasulo算法
  6. 添加企业微信免验证设置
  7. countifs多条件排序_使用Excel COUNTIFS进行多个条件计数
  8. 人人商场二次开发-克隆我的小店页面导航 首页 清除
  9. 【面试】--【集合容器】
  10. 操作系统面试题(史上最全面试题,精心整理100家互联网企业,面试必过)