一、介绍

Dissect filter 是一种分割操作。与常规拆分操作不同,其中一个分隔符应用于整个字符串,此操作将一组分隔符应用于字符串值。

Dissect不使用正则表达式,而且速度非常快。

但是,如果文本的结构因行而异,那么Grok更适合。

有一种混合的情况,可以使用Dissect来消除可靠重复的行的部分结构,然后Grok可以用于剩余的字段值,具有更高的regex可预测性,并且不需要做太多的总体工作。

二、示例

[root@es03 logstash]# cat dissect.conf
input { stdin {}}filter {dissect {mapping => {"message" => "%{ts} %{+ts} %{+ts} %{src} %{} %{prog}[%{pid}]: %{msg}"}convert_datatype => {pid => "int"}}
}output { stdout {}}
%{ts} %{+ts} %{+ts} %{src} %{} %{prog}[%{pid}]: %{msg}
hello world hello shark 123 logs [456]: hellohello
hello world hello shark 123 logs [456]: hellohello
{"host" => "es03","@timestamp" => 2021-06-07T14:40:40.010Z,"message" => "hello world hello shark 123 logs [456]: hellohello","src" => "shark","pid" => 456,"@version" => "1","prog" => "logs ","ts" => "hello world hello","msg" => "hellohello"
}

前缀修饰符

  • 追加

%{+some_field} 表示把匹配到的内容追加到前一个字段中

%{+some_field/2} 表示带序号的追加,2 表示追加到第二个位置

示例:

1 对于文本 1 2 3 go, 这个 %{+a/2} %{+a/1} %{+a/4} %{+a/3} 将构建一个 a => 2 1 go 3 的键值。

2 对于文本 1 2 3 go, 这个 %{a} %{b} %{+a} 将构建两个键值对: a => 1 3 go, b => 2

  • 跳过

%{} 是一个空的跳过字段。

%{?foo} 是一个命名的跳过字段,就是把匹配到的内容先存到字段 foo 中,但是不会出现在事件中,这种情况是让后面的某些模式使用其匹配到的值的(下面 间接字段 中有示例)。

  • 间接字段

%{&some_field} 表示这个字段的看 key 来自于 some_field 字段的值。

示例:

对于字符串: error: some_error, some_description

这个表达式 error: %{?err}, %{&err}将会构建一个这样的键值对: some_error => some_description

Logstash的filter插件-Dissect相关推荐

  1. Logstash的filter插件介绍

    一 官网说明 过滤器插件对事件执行中介处理.通常根据事件的特征有条件地应用过滤器. 以下过滤器插件在下面可用. Plugin Description Github repository aggrega ...

  2. 使用logstash csv filter插件时自动检测表头失败

    在logstash中使用csv filter解析表头时,一种方法是用coulmn直接把每个表头一一对应写进去,另一种方法是在csv插件中使用autdetect_column_names => & ...

  3. Logstash(三)filter插件简介

    Filter Plugin Filter是Logstash功能强大的主要原因,它可以对Logstash Event进行丰富的处理,比如解析数据.删除字段.类型转换等等,常见的有如下几个: date日期 ...

  4. logstash的output插件

    logstash 的output插件 nginx,logstash和redis在同一台机子上 yum -y install redis,vim /etc/redis.conf 设置bind 0.0.0 ...

  5. ELK logstash KV过滤插件

    过滤插件:通用配置字段 add_field 如果过滤成功,添加一个字段到这个事件 add_tags 如果过滤成功,添加任意数量的标签到这个事件 remove_field 如果过滤成功,从这个事件移除任 ...

  6. Docker 安装 ES 7.7.0 及 Head、Kibana、IK分词器、Logstash、Filebeat 插件

    目录 环境信息 ES安装 ElasticSearch-Head安装 IK分词器安装 环境信息 Docker version 1.13.1, build 4ef4b30/1.13.1 CentOS Li ...

  7. logstash 中multiline插件的用法

    input {stdin {codec =>multiline {charset=>... #可选 字符编码 max_bytes=>... #可选 bytes类型 设置最大的字节数m ...

  8. Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统

    文章目录 一.前言 二.背景信息 三.操作流程 四.准备工作 1.Docker 环境 2.Docker Compose 环境 3.版本准备 4.环境初始化 5.服务安装 6.服务设置 五.配置 Fil ...

  9. Web日志安全分析浅谈

    一.为什么需要对日志进行分析? 随着Web技术不断发展,Web被应用得越来越广泛,所谓有价值的地方就有江湖,网站被恶意黑客攻击的频率和网站的价值一般成正比趋势,即使网站价值相对较小,也会面对" ...

  10. logstash过滤器插件filter详解及实例

    原创作者:峰哥ge 原创地址: https://www.cnblogs.com/FengGeBlog/p/10305318.html logstash过滤器插件filter grok正则捕获 grok ...

最新文章

  1. 用c语言 编写桌面应用程序,谁能帮我用C语言编写“动态桌面啊”!!!急呀!!!...
  2. 中国数学相比与西方数学为什么会处于劣势?
  3. 【神经网络与深度学习】【C/C++】比较OpenBLAS,Intel MKL和Eigen的矩阵相乘性能
  4. java面试题2(java基础)
  5. 中高级数论 [欧拉函数线性筛,二次剩余]
  6. opencv 分割长度_opencv+python智能车道检测,助力无人驾驶
  7. 宝刀不老: Cookie (转)
  8. 正点原子 潘多拉stlink驱动_「正点原子Linux连载」第五十六章Linux自带的LED灯驱动实验...
  9. android高德地图热力图,2D 热力图-热力 HeatmapLayer-示例中心-Loca API 示例 | 高德地图API...
  10. 读取jpeg图像数据
  11. golang:kratos生成proto以及API编写
  12. 如何学习解剖学的简单方法
  13. 融合DE 端和FE端数据,利用小波变换生成时频图,再分别利用DCNN、KNN和DNN进行对比实验(python代码)
  14. 获取Shell命令执行错误结果
  15. Kaggle: Jigsaw Multilingual Toxic Comment Classification Top Solutions 金牌思路总结
  16. Android第三方绑定QQ无法拉取授权页面
  17. 浏览器在线或离线状态检测
  18. Hulu新剧向 | 神剧归位《使女的故事》第四季高能来袭!
  19. Linux下QoS模块之tc(traffic control)操作简介/CBQ
  20. 【CISSP备考】第12章:安全通信与网络攻击

热门文章

  1. C++ 类设计规则及注意事项
  2. Android植入Wooboo广告教程
  3. 攻防世界 WEB mfw
  4. 深入了解机器学习 (Descending into ML):训练与损失
  5. 高德地图大头针功能_iOS高德地图大头针的运用
  6. 微信公众号开发(十)模板消息
  7. volatility内存取证分析与讲解(持续更新)
  8. [Excel函数] COUNT函数 | COUNTIF函数 | COUNTIFS函数
  9. 我国台湾地区智慧城市建设的实践与启示
  10. python神经网络识别验证码_基于卷积神经网络实现验证码识别(一)