问题标签 [observability]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
14 浏览

elasticsearch - 使用 fluent-bit/fluentd 处理大量日志

我们有以下可观察性堆栈。

我们经常面临来自 ECS 上运行的某些应用程序的大量日志涌入的挑战,这会导致日志聚合器重新启动并最终使 ES 不稳定。我们采用了一些方法来缓解这种情况。

  1. 在聚合器级别引入限制(超过阈值时丢弃消息) - 无需人工干预

  2. 在聚合器进行任何处理之前过滤来自 App1 的日志消息(需要使用过滤器重新部署聚合器 - 需要手动干预)

  3. 在收集器级别引入节流(节流过滤器插件)(仍需测试)

虽然选项 1 在日志量合理时有效,但在日志量很大(1 小时内 300 万条记录)时,它并没有被证明是最佳解决方案。日志聚合器容器不断重启,每次重启都会重置节流限制

使用选项 2,我们尝试解决解决方案 - 但它需要操作员使用过滤器重新启动日志聚合app器。我们通常会更新 CF 堆栈来实现这一点。

当前 fluentd 配置 - APP_LOGS_DROP 将需要设置为创建大量日志并重新启动聚合器容器的应用程序

我想知道是否有其他方法可以解决此问题以及自动化选项 2 的方法。目前,我们了解巨大日志量的方式是通过 Elasticsearch 中的观察者警报,当它变得不稳定时。

在此处输入图像描述

提前致谢。

0 投票
0 回答
13 浏览

elasticsearch - Fluentd 无法将日志发送到 Elasticsearch

这里使用的图像是:

fluent/fluentd-kubernetes-daemonset:v1-debian-elasticsearch docker.elastic.co/elasticsearch/elasticsearch:7.5.1

Fluentd 能够成功地将日志放置在 file-test.log 文件中,但无法将其放置在 elasticsearch 中。

fluent.conf 文件如下所示:

}

fluentd 的守护进程是这样​​配置的: