如何从 Kubernetes pods 收集 Java 异常?
How do I collect Java exceptions from Kubernetes pods?
我正在寻找一种方法来收集容器抛出的 Java 异常。我知道 GKE/GCP 的日志系统的功能,想在我们的自托管集群中实现一个类似的日志系统。
我正在使用 Prometheus 和 Grafana 来监控指标。
如果您已经熟悉 GKE 的 Stackdriver 解决方案,我敢打赌您最好的选择是坚持使用它并在您的自我管理的 Kubernetes 集群上安装 Stackdriver:
https://kubernetes.io/docs/tasks/debug-application-cluster/logging-stackdriver/
您需要一个集中式日志记录解决方案。那里有一些常见的解决方案。其中之一是 ELK Stack(现在称为 Elastic stack)。
它有 3 个主要组成部分:
Elasticsearch: 存储日志、索引它们、使其可搜索等
Logstash: 从各种来源(在您的情况下是容器)收集日志,parse/filter 它们并将它们推送到其他系统。在 ELK 的情况下,将它们推送到 Elasticsearch。
Kibana: 用于在 Elasticsearch 中可视化数据的 Web GUI,允许搜索、创建可视化图表等。
查看Elastic stack的官方页面了解更多信息。
您也可以使用 Fluentd or Fluent Bit 而不是 Logstash,因此它将是一个 EFK 堆栈。我个人在使用 Fluent Bit 的 EFK 堆栈方面有很好的经验。
对于另一个更轻便的替代方案,您可以查看 Grafana Loki,它是对流行的 Prometheus+Grafana 监控设置的一种日志记录扩展。
我正在寻找一种方法来收集容器抛出的 Java 异常。我知道 GKE/GCP 的日志系统的功能,想在我们的自托管集群中实现一个类似的日志系统。
我正在使用 Prometheus 和 Grafana 来监控指标。
如果您已经熟悉 GKE 的 Stackdriver 解决方案,我敢打赌您最好的选择是坚持使用它并在您的自我管理的 Kubernetes 集群上安装 Stackdriver:
https://kubernetes.io/docs/tasks/debug-application-cluster/logging-stackdriver/
您需要一个集中式日志记录解决方案。那里有一些常见的解决方案。其中之一是 ELK Stack(现在称为 Elastic stack)。
它有 3 个主要组成部分:
Elasticsearch: 存储日志、索引它们、使其可搜索等
Logstash: 从各种来源(在您的情况下是容器)收集日志,parse/filter 它们并将它们推送到其他系统。在 ELK 的情况下,将它们推送到 Elasticsearch。
Kibana: 用于在 Elasticsearch 中可视化数据的 Web GUI,允许搜索、创建可视化图表等。
查看Elastic stack的官方页面了解更多信息。
您也可以使用 Fluentd or Fluent Bit 而不是 Logstash,因此它将是一个 EFK 堆栈。我个人在使用 Fluent Bit 的 EFK 堆栈方面有很好的经验。
对于另一个更轻便的替代方案,您可以查看 Grafana Loki,它是对流行的 Prometheus+Grafana 监控设置的一种日志记录扩展。