logstash output到es中数据延迟

来源:10-2 写性能优化

民工来啦

2019-09-06

老师好,我通过Logstash处理的数据output至es中,logstash处理过程没有问题,并在对应的node/state里面查看处理情况全部都成功了,但是在kibana中的discovery中看不到写入的数据,有4个小时的延迟,使用同样配置的其他index写入后即可查看数据,并无该问题,不知如何排查,望老师指点一二。以下截图时间为19年9月6日14点15分,仅仅显示了10点的数据图片描述
图片描述

写回答

1回答

rockybean

2019-09-16

要解决这个问题,可以通过在日志传输链路上打一些时间戳来解决

1.日志产生的时候在原始日志中都会有一个时间

2.logstash 处理的时候打一个时间戳,记录下处理的时间,参照下面的方法

ruby {

        code => "

            event.set('@ls_timestamp', Time.now())

 event.set('ls_latency', [(event.get('@ls_timestamp').to_f - event.get('@timestamp').to_f) * 1000, 0].max)

        "

    }

3. es 入库的时候也可以打,但一般不需要,logstash 记录了就可以了


然后你去对比 logstash 和日志本身的时间戳 @timestamp ,上面的例子也提前计算了延迟 latency,你过滤出来过大的 latency,看下是否 logstash 这里处理慢了。

如果你还用了 kafka,可以关注下 kafka 的 lag

0
0

Elastic Stack从入门到实践,动手搭建数据分析系统

有了Elastic Stack,不用写一行代码,你也可以玩转大数据分析!

1361 学习 · 397 问题

查看课程