问题标签 [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.
elasticsearch - 使用 fluent-bit/fluentd 处理大量日志
我们有以下可观察性堆栈。
我们经常面临来自 ECS 上运行的某些应用程序的大量日志涌入的挑战,这会导致日志聚合器重新启动并最终使 ES 不稳定。我们采用了一些方法来缓解这种情况。
在聚合器级别引入限制(超过阈值时丢弃消息) - 无需人工干预
在聚合器进行任何处理之前过滤来自 App1 的日志消息(需要使用过滤器重新部署聚合器 - 需要手动干预)
在收集器级别引入节流(节流过滤器插件)(仍需测试)
虽然选项 1 在日志量合理时有效,但在日志量很大(1 小时内 300 万条记录)时,它并没有被证明是最佳解决方案。日志聚合器容器不断重启,每次重启都会重置节流限制
使用选项 2,我们尝试解决解决方案 - 但它需要操作员使用过滤器重新启动日志聚合app
器。我们通常会更新 CF 堆栈来实现这一点。
当前 fluentd 配置 - APP_LOGS_DROP 将需要设置为创建大量日志并重新启动聚合器容器的应用程序
我想知道是否有其他方法可以解决此问题以及自动化选项 2 的方法。目前,我们了解巨大日志量的方式是通过 Elasticsearch 中的观察者警报,当它变得不稳定时。
提前致谢。
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 的守护进程是这样配置的: