一些小伙伴询问filebeat传输到logstash时如何调用pipeline,我这里补充一下。
关于数据过滤的方式,我了解的有两种:
- 传输到ES调用pipeline
- 传输到logstash,在logstash.conf文件中设置语句。
第一种方式就是本篇博客中使用的,而第二种可以参考ELK入门(五)——messages和log日志生成时间替换时间戳(grok+data)【关于grok语法和使用方式也参见这个博客】,同样实现了两种时间格式的时间戳替换。
其实这两种方式虽然语法略有不同,但本质是一样的,都使用了grok插件,运用某些匹配、修改、添加字段的操作来实现数据处理。
不过有一点需要注意的是,如果匹配不成功,则数据直接会无法传输到ES中。
一、在Dev tool中新建pipeline
我将pipeline名字定义为isodate,可以自命名,其中所做的操作是
1.利用grok插件在message字段中匹配TIMESTAMP_ISO8601时间,保存为logdate字段
2.利用date插件,匹配logdate字段,将timestamp字段替换。匹配格式为YYYY-MM-dd HH:mm:ss,SSS
其中,替换timestamp是默认的
在pattern中,分别对应了两种时间格式
%{SYSLOGTIMESTAMP:logdate} # 对应Jan 22 10:01:01
# "MMM dd HH:mm:ss" # 匹配方式
%{TIMESTAMP_ISO8601:logdate} # 对应2021-01-29 08:53:00,321
# "YYYY-MM-dd HH:mm:ss,SSS" # 匹配方式

本文介绍了如何使用Filebeat将数据传输到Logstash并调用pipeline进行时间戳处理。通过两种方式实现时间格式转换:1) 在Logstash配置文件中设置;2) 使用ES的pipeline。文中详细展示了pipeline的创建步骤,包括Groking日志中的TIMESTAMP_ISO8601时间并替换timestamp。在实践中遇到年份错误的问题,解决方案是先移除@timestamp字段再使用date插件。此外,还分享了filebeat.yml配置示例及运行注意事项,如处理registry文件和索引重置。
最低0.47元/天 解锁文章
2785

被折叠的 条评论
为什么被折叠?



