ELK线上事故处理:Filebeat如何跳过积压日志
引言在维护ELK (Elasticsearch, Logstash, Kibana) 日志系统时,一个常见的线上事故是下游的Elasticsearch因磁盘空间耗尽而无法接收新的日志。这会导致上游的Filebeat和Logstash出现数据积压。当磁盘问题解决后,我们通常不希望重新处理这些积压的、可能已经失去时效性的日志,而是希望从当前时间点开始恢复日志采集。本文将详细介绍如何处理此类事故,核心在于让Filebeat跳过积压的日志。 事故场景:Elasticsearch磁盘写满导致日志积压 问题描述: 日志系统链路为 Filebeat -> Logstash -> Elasticsearch。Elasticsearch因磁盘满了,导致服务中断两小时。现在磁盘空间已清理,服务恢复,但Filebeat开始从两小时前中断的位置重新发送日志。我们希望丢弃这两个小时的积压日志,直接从当前时间开始采集。 核心解决方案:重置Filebeat的读取位置问题的关键在于Filebeat会持久化记录每个日志文件的读取进度(offset)。即使下游服务中断,Filebeat也会在原地等待,...
