首页 > 解决方案 > 将日志移入 Kubernetes 集群

问题描述

我在 Kubernetes 集群中运行了 Grafana,我想将来自 Kubernetes 外部的日志(未在 K8s/DB 等中运行的应用程序)推送到 kubernetes 中,以便我可以在 Grafana 集群中查看它们。这样做的最佳方法是什么?

标签: kuberneteslogging

解决方案


所以 Grafana 是一个用于报告存储在其他数据库中的数据的 GUI。听起来您正在从集群中捕获指标,并且这些数据存储在另一个数据库中。如果您正在运行 Prometheus,这是 Grafana 时间序列数据的数据库。您还可能最终会在未来运行像灭霸这样的长期存储系统,以便这些数据随着时间的推移而保留,具体取决于数据量。

回到日志记录...与使用 Grafana 记录日志类似,您需要实现某种日志记录数据库。最受欢迎的是以前的开源 ELK(ElasticSearch、Logstash、Kibana)堆栈。您现在可以使用 OpenSearch,它是 ElasticSearch 和 Kibana 的开源版本。大多数 K8S 发行版都带有 Fluentd,它取代了用于发送数据的 logstash。您还可以在任何主机上安装 Fluentd 或 Fluentbit 以将数据发送到此堆栈。你会发现 Grafana 并不是最适合日志分析的,所以大多数人使用 Kibana(OpenSearch Dashboards)。但是,您也可以使用 Grafana,这只是 IMO 的痛苦。

如果您不想运行 ELK,另一个选择是使用 Grafana Loki,这是另一个用于日志记录的开源数据库。它要简单得多,但由于它的索引方式,您如何查询日志也受到更多限制。它与 Grafana 配合得很好,但这又不是全文索引技术,所以它会受到一些限制。

希望这对您有所帮助,如果您有任何问题,请告诉我!


推荐阅读