Cases1 case
1 to 1 of 1
IL-0041fluent-bit silently stopped shipping application logs from one node to ElasticsearchPrometheusKube2020- Symptoms
On a Tuesday morning a developer reported that some production logs were missing. Only the logs from a single node were gone; the other nodes kept shipping normally through fluent-bit, the log shipper the team had run for more than three years.
- Root cause
- Component
- Contributing factor
- Detection
A developer reported missing production logs; no alert fired because fluent-bit's metrics showed no errors.
- Remediation
- added CPU to the Elasticsearch virtual machines, which cleared the write queue rejections
- rolled out Fluentd one node at a time, using node affinity to place Fluentd and anti-affinity to remove fluent-bit
- lowered Fluentd's flush_thread_count to 1 and set flush_interval to 5 seconds so the backlog of old logs did not overflow the buffer
- enabled Fluentd's Position DB so already-ingested data was skipped
- Action items
- Build monitoring for Fluentd on its Prometheus integration, including a throughput alert with separate day and night thresholds or a black-box log check
- Lessons
A log shipper can fail without an error message and with metrics that simply stop moving, so error-based alerts never fire; throughput alerts or end-to-end checks can catch it. Open source software can break in ways nobody expects, and sometimes the way out is to switch to a different shipper fast, node by node. A new shipper that starts from scratch replays every old log on the node and needs to be slowed down.
This case involves Elasticsearch or OpenSearch and Telemetry agent. kubegap audits a Kubernetes cluster for gaps like these, read-only, from Claude Code or Codex; its checks cite public reports like the ones in this library.