【问题标题】:How do I collect Java exceptions from Kubernetes pods?如何从 Kubernetes pod 中收集 Java 异常?
【发布时间】:2020-07-27 18:25:11
【问题描述】:

我正在寻找一种方法来收集容器抛出的 Java 异常。我知道 GKE/GCP 的日志系统的功能,并希望在我们的自托管集群中实现类似的日志系统。

我正在使用 Prometheus 和 Grafana 来监控指标。

【问题讨论】:

  • 您所要求的,已经内置在 GCP 中。您可以简单地过滤日志系统中的错误。我是不理解这个问题还是遗漏了什么?如果您需要帮助,我可以在答案中逐步解释或提供一些参考
  • 你能定义你想要捕捉的异常吗?如果是应用程序日志,那么 fluentd/bit 将能够摄取/解析日志
  • 抱歉,我的问题不够准确。我正在寻找一种在我们的自托管集群中记录异常的方法,例如在 GKE 中。我提到了 GKE 作为一个例子,因为我知道那里的功能并且想在我们的集群中实现类似的日志记录。我将编辑问题。 @NeoAnderson
  • @Matt 我想捕获抛出的 Java 异常。我将看看 fluentd/bit。谢谢。

标签: exception logging kubernetes monitoring kubernetes-pod


【解决方案1】:

您需要一个集中式日志记录解决方案。有一些常见的解决方案。其中之一是 ELK Stack(现在称为 Elastic stack)。

它有 3 个主要组成部分:

  1. Elasticsearch:存储日志、索引它们、使其可搜索等。

  2. Logstash:要从各种来源(在您的情况下为容器)收集日志,解析/过滤它们并将它们推送到其他系统。在 ELK 的情况下,将它们推送到 Elasticsearch。

  3. Kibana:用于在 Elasticsearch 中可视化数据的 Web GUI,允许搜索、创建可视化图表等。

更多信息请参见Elastic stack的官方页面。

您也可以使用 FluentdFluent Bit 代替 Logstash,因此它将是一个 EFK 堆栈。我个人在使用 Fluent Bit 的 EFK 堆栈方面有很好的经验。

对于另一个更轻量级的替代方案,您可以查看Grafana Loki,这是对流行的 Prometheus+Grafana 监控设置的一种日志记录扩展。

【讨论】:

  • 谢谢。我现在将 Grafana Loki 与 Promtail 一起使用,它运行良好且易于使用。
  • @bennex 很高兴能够提供帮助。
【解决方案2】:

如果您已经熟悉 GKE 的 Stackdriver 解决方案,我敢打赌,您最好的选择是继续使用它,并将 Stackdriver 安装在您的自我管理的 Kubernetes 集群上:

https://kubernetes.io/docs/tasks/debug-application-cluster/logging-stackdriver/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 2019-02-24
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多