elk部署详解( logstash的filter之grok)

本文深入探讨Logstash的filter模块,特别是Grok解析器。介绍了Grok的内置表达式和自定义模式,以及如何利用Grok处理多文件日志并根据业务规则进行差异化解析。同时讨论了在filebeat中整合异常信息的技巧,并提到了Logstash filter组件的常用操作如添加和移除字段、标签。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 logstash的filter之grok

Logstash中的filter可以支持对数据进行解析过滤。

grok:支持120多种内置的表达式,有一些简单常用的内容就可以使用内置的表达式进行解析

https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns

自定义的grok表达式 格式(?<usetime>PATTERN) usertime:

表示定义的字段名称 PATTERN:此处需要写正则表达式

 

 

filebeat采集输出到logstash

[root@bigdata-sg-a-01 log]# echo qq5201314 >>data.log 


input { 
	beats {port => 5044} 
} 
filter{
	grok{
		match=>{"message"=>"%{NUMBER:usertime}"}
	}	
}
output { 
	stdout { codec => json} 
}



#################output 多了个usertime 字段
{"message":"qq5201314","@version":"1","@timestamp":"2018-07-27T09:21:32.080Z","offset":46,"input_type":"log","fields":null,"count":1,"beat":{"hostname":"bigdata-sg-a-01","name":"bigdata-sg-a-01"},"source":"/mnt/log/data.log","type":"log","host":"bigdata-sg-a-01","tags":["beats_input_codec_plain_applied"],"usertime":"5201314"}

logstash中的if else 

如果我们在获取日志的话是需要同时读取多个文件,那这多个文件的解析规则肯定不一样,那就需要根据不同的文件执行

不同的解析逻辑了。 假设我们要解析ngnix日志和tomcat的日志,这样就需要判断数据是属于那个文件的,使用对应的解析规则

根据自己的业务规则修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值