1、现象

环境使用的是7.4,filebeat,kafka,logstash,es

排序字段是@timestamp,由于是filebeat批量收集提交的,所以该字段的值是一样的。而右边message中的日志没有按照log打印的时间排序,有部分时间的日志在中间,如下图

2、分析

@timestamp字段是经过filebeat处理时添加的,可以通过修改filebeat配置文件,把收集后的日志输出到本地文件,可以看出来多了时间字段。

 

3、解决方案

这里采用logstash重写@timestamp字段的修复方式。

logstash启动配置文件(本次使用的配置文件是logstash.conf)新增以下配置:


filter {
    grok {
        match => ["message","%{TIMESTAMP_ISO8601:log.date}"]
    }
    date {
        match => ["log.date", "yyyy-MM-dd HH:mm:ss,SSS"]
        target => "@timestamp"
 
    }
}

重启logstash,需要等一会才能生效,注意时间。

4、正常的效果

两个时间是一样的了

 

 

 

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐