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
00
相似问题