ELK入门(十三)——filebeat实现时间戳更改(利用pipeline)

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

一些小伙伴询问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"    # 匹配方式
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值