Logstash Filter(五)Split
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Logstash Filter(五)Split相关的知识,希望对你有一定的参考价值。
参考技术A mutiline 让 logstash 将多行数据变成一个事件,当然了,logstash 同样支持将一行数据变成多个事件。
logstash 提供了 split 插件,用来把一行数据拆分成多个事件。
插件配置:
运行结果:
对于 "test1#test2",上述 logstash 配置将其变成了下面两个事件:
需要注意的是,当 split 插件执行结束后,会直接进入 output 阶段,其后的所有 filter 都将不会被执行。
ELK 学习笔记之 Logstash之filter配置
Logstash之filter:
json filter:
input{
stdin{
}
}
filter{
json{
source => "message"
}
}
output{
stdout{
codec => json
}
输入:
{"name": "CSL", "age": 20}
输出:
Grok filter:
pattern:
https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns
创建一个测试log:
[sky@hadoop1 bin]$ cat spark-test-log.log
05/30/17 17:13:24 INFO StartingSparkmasteratspark
05/30/17 17:13:24 INFO RunningSparkversion1
05/30/17 17:13:25 INFO jetty
创建conf:
input{
file{
path => "/usr/local/logstash-5.6.1/bin/spark-test-log.log"
type => "sparkfile"
start_position => "beginning"
}
}
filter{
grok{
match => ["message", "%{DATE:date} %{TIME:time} %{LOGLEVEL:loglevel} %{WORD:word}"]
}
}
output{
stdout{
codec => rubydebug
}
}
运行结果:
自定义正则表达式:
[sky@hadoop1 patterns]$ cat selfpattern
SKYTIME (?!<[0-9])%{HOUR}:%{MINUTE}(?::%{SECOND})(?![0-9])
修改conf:
input{
file{
path => "/usr/local/logstash-5.6.1/bin/spark-test-log.log"
type => "sparkfile"
start_position => "beginning"
}
}
filter{
grok{
patterns_dir => \'/usr/local/logstash-5.6.1/patterns/selfpattern\'
match => ["message", "%{DATE:date} %{SKYTIME:time} %{LOGLEVEL:loglevel} %{WORD:word}"]
}
}
output{
stdout{
codec => rubydebug
}
}
输出结果:
定义多个match:使用,分隔。
测试正则表达式网址:
https://grokdebug.herokuapp.com/
以上是关于Logstash Filter(五)Split的主要内容,如果未能解决你的问题,请参考以下文章
Logstash drop filter插件 --- 2022-04-03
小姐姐教你定制一个Logstash Java Filter~
logstash 离线安装logstash-filter-json_encode 插件
Logstash之Logstash inputs(file和redis插件)Logstash outputs和Filter plugins