描述

Dissect过滤器是一种拆分操作。与常规拆分操作(其中一个分隔符应用于整个字符串)不同,此操作将一组分隔符应用于字符串值。Dissect不使用正则表达式,速度非常快。

filter {dissect {mapping => {"message" => "%{ts} %{+ts} %{+ts} %{src} %{} %{prog}[%{pid}]: %{msg}"}}
}

语法解释

我们看到上面使用了和Grok很类似的%{}语法来表示字段,这显然是基于习惯延续的考虑。不过示例中%{+ts}的加号就不一般了。dissect 除了字段外面的字符串定位功能以外,还通过几个特殊符号来处理字段提取的规则:

  • %{+key}这个+表示,前面已经捕获到一个key字段了,而这次捕获的内容,自动添补到之前 key 字段内容的后面。
  • %{+key/2}这个/2表示,在有多次捕获内容都填到 key字段里的时候,拼接字符串的顺序谁前谁后。/2表示排第2位。
  • %{}是一个空的跳过字段。
  • %{?string}这个?表示,这块只是一个占位,并不会实际生成捕获字段存到事件里面。
  • %{?string} %{&string}当同样捕获名称都是string,但是一个?一个&的时候,表示这是一个键值对。

填充符

字段的->后缀例如%{function->},表示忽略它右边的填充,否则右边的多余填充将拆分到下一个字段中。

例如有填充->

%{id} %{function->} %{server}

输入:

f3000a3b Calc            machine-123

输出:

{"server" => "machine-123","@timestamp" => 2019-01-17T15:04:01.694Z,"function" => "Calc","@version" => "1","host" => "VM_0_10_centos","id" => "f3000a3b","message" => "f3000a3b Calc            machine-123"
}

例如无填充->

%{id} %{function} %{server}

输入:

f3000a3b Calc            machine-123

输出:

{"server" => "           machine-123","@timestamp" => 2019-01-17T15:04:53.972Z,"function" => "Calc","@version" => "1","host" => "VM_0_10_centos","id" => "f3000a3b","message" => "f3000a3b Calc            machine-123"
}

参数

参数 类型 是否必须 默认值
convert_datatype hash {}
mapping hash {}

convert_datatype

使用此设置intfloat数据类型进行转换。

filter {dissect {convert_datatype => {"cpu" => "float""code" => "int"}}
}

mapping

解析事件。如果需要匹配换行符,使用单引号定义值,并在单引号内使用实际的换行符来匹配换行,如下:

filter {dissect {mapping => {# 单引号中使用实际换行匹配换行"message" => '"%{field1}" "%{field2}""%{description}"'"description" => "%{field3} %{field4} %{field5}"}}
}

logstash(10)过滤器-dissect相关推荐

  1. Logstash:如何使用 Logstash Grok 过滤器提取模式

    Logstash 是数据管道,可帮助我们处理来自各种来源的日志和其他事件数据. Logstash 拥有 200 多个插件,可以连接到各种源并将数据流式传输到中央分析系统. Elastic Stack( ...

  2. Logstash:Logstash translate 过滤器简介

    Logstash具有一个有趣的功能,称为翻译过滤器 (translate filter). 翻译过滤器用于根据字典或查找文件过滤传入数据中的特定字段. 然后,如果输入字段与字典查找文件中的条目匹配,则 ...

  3. Logstash:在实施之前测试 Logstash 管道/过滤器

    检测解析的日志是否包含单个或多个警告消息,然后添加一个字段来说明这两种情况.在很多的情形下,我们在测试 Logstash 的过滤器时,并不急于把实际的 input 的数据接入到过滤器中来进行测试.我们 ...

  4. logstash filter 过滤器详解

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

  5. 10 过滤器和监听器

    1.过滤器 1.作用:对所有请求或响应做拦截操作2.开发Filter1.自定义一个XxxFilter实现javax.servlet.Filter接口2.web.xml中配置(注解@webFilter( ...

  6. Logstash:运用 fingerprint 过滤器处理重复的文档

    这篇文章介绍了使用 Logstash 在 Elasticsearch中 对数据进行重复数据删除的方法. 根据你的用例,Elasticsearch中 的重复内容可能不被接受. 例如,如果你要处理指标,则 ...

  7. ELK系统之logstash问题:retrying failed action with response code: 429

    版权声明:本文为博主原创文章,如需转载,请标明出处. https://blog.csdn.net/alan_liuyue/article/details/78926015 问题来源 logstash在 ...

  8. Logstash:Grok filter 入门

    有效分析和查询送入 Elastic Stack 的数据的能力取决于信息的可读性. 这意味着,当将非结构化数据摄取到系统中时,必须将其转换为结构化数据. 通常,这个至关重要的任务留给 Logstash( ...

  9. LogStash 原理和使用(十六)

    这篇我们分析LogStash 原理和使用: LogStash 是一个类似实时流水线的开源数据传输引擎,它像一个两头连接不 同数据源的数据传输管道,将数据实时地从一个数据源传输到另一个数据源中. 在数据 ...

  10. Logstash:通过 lookups 来丰富数据

    如果你想了解更多关于 lookup 的内容,请参阅文章 "Elastic:开发者上手指南" 中的 "丰富数据及 lookup" 章节.在今天的文章中,我来总结在 ...

最新文章

  1. html模板是干嘛的,html模板有什么用
  2. python django升级安装sqlite3后在python命令行还是显示旧版本的解决办法
  3. 活动目录从入门到精通
  4. 插件完整_紫天学习星球教学:布料模拟插件完整功能使用详解01(中文)
  5. SSH(Secure Shell Protocol)命令之 grep
  6. Html文件转换为Aspx文件后发现样式丢失或失效
  7. 混合云架构,如何实现混合云落地?(上)
  8. 17年第八届蓝桥杯省赛(C语言B组) 题解
  9. react实现关于文本框的双向绑定
  10. 看图四级作文 快速技术的发展计算机,【英语四级看图作文范文11篇】_英语四级看图作文范文大全_2021年英语四级看图作文范文_东城教研...
  11. 破解win7开机密码!
  12. linux 磁盘序列号修改,linux 获取硬盘序列号解决思路
  13. 某程序员上线原谅宝:抓取全球不可描述网站和社交平台10万渣女
  14. 三种方式实现echarts树图的背景图片设置
  15. 台湾最大IC封装厂近三成员工停工14天,安世半导体宣布今日起调涨价格!
  16. 音视频开发:直播推流技术指南
  17. 服装行业如何用手持PDA盘点?
  18. 文本摘要相关论文汇总
  19. 名帖318 沈尹默 行书《行书帖选》
  20. 老码农眼中的大模型(LLM)

热门文章

  1. 【产品】什么是虚位密码及其用途
  2. java win10窗口启动假死_win10底部任务栏卡死无响应解决
  3. r语言library什么意思_关于R语言,你需要知道什么?
  4. 【深入理解多线程】 Moniter的实现原理(四)
  5. 肯德基宅急送网上订餐系统(移动扫码点餐)的设计与实现(小程序+PHP+MySQL)
  6. 电脑无法连接到网络的解决方法(可能,不妨试一试)
  7. 双非计算机硕士何去何从(2)
  8. Scala编程思想高清中文版PDF
  9. CSS简单实现一个箭头
  10. 激活win10专业版,桌面设置我的电脑,测试过可行