使用 Prometheus 监控 Pod 内部

发布于 2025-01-09 23:26:43 字数 297 浏览 2 评论 0原文

我想知道是否可以使用 Prometheus 获取 Pod 内服务的指标。

我的意思不是监视 Pod,而是监视这些 Pod 内的进程。例如,容器内部运行有 apache 或 nginx 以及其他主要服务,因此我可以检索 Web 服务器和其他主要服务的指标(例如配置了 apache 的 wordpress 图像)。

集群已经运行了 kube-state-metrics、node-exporter 和 blackbox exporter。

是否可以?如果是这样,我该如何做到这一点?

提前致谢

I want to know if it's possible to get metrics for the services inside the pods using Prometheus.

I don't mean monitoring the pods but the processes inside those pods. For example, containers which have apache or nginx running inside them along other main services, so I can retrieve metrics for the web server and the other main service (for example a wordpress image which aso comes with an apache configured).

The cluster already has running kube-state-metrics, node-exporter and blackbox exporter.

Is it possible? If so, how can I manage to do it?

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

染年凉城似染瑾 2025-01-16 23:26:43

Prometheus 的工作原理是抓取提供实际指标的 HTTP 端点。这就是“出口商”一词的由来。因此,如果您想从 pod 内运行的进程获取指标,您需要执行三个主要步骤:

  1. 您必须修改这些进程以导出您关心的指标。这本质上是必须为每种应用程序定制的东西。好消息是,有很多预构建的,包括 nginx 和 apache 等你提到的。大多数应用程序框架还具有导出普罗米修斯指标的能力。例如:微配置文件Quarkus 等等。
  2. 然后,您必须修改 pod 定义以公开这些进程现在提供的 HTTP 端点。非常简单,但取决于您为导出器指定的配置。
  3. 然后,您必须修改 Prometheus 来抓取这些目标。这将取决于您的监控堆栈。对于 Openshift,您可以在此处找到 启用用户工作负载监控此处用于提供出口商详细信息。

Prometheus works by scraping an HTTP endpoint that provides the actual metrics. That's where you get the term "exporter". So if you want to get metrics from the processes running inside of pods you have three primary steps:

  1. You must modify those processes to export the metrics you care about. This is inherently something that must be custom for each kind of application. The good news is that there are lots of pre-built ones including things like nginx and apache that you mention . Most application frameworks also have capability to export prometheus metrics. ex: Microprofile, Quarkus, and many more.
  2. You must then modify your pod definition to expose the HTTP endpoint that those processes are now providing. Very straightfoward, but will depend on the configuration you specify for your exporters.
  3. You must then modify your Prometheus to scrape those targets. This will depend on your monitoring stack. For Openshift you will find the docs here for enabling user workload monitoring, and here for providing exporter details.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文