【问题标题】:How to automatically scrape all Docker instances from Kubernetes with Prometheus?如何使用 Prometheus 从 Kubernetes 中自动抓取所有 Docker 实例?
【发布时间】:2018-01-30 11:33:23
【问题描述】:

我已经在 Google Container Engine 中成功安装了 Prometheus,并且我有这些目标:

  • kubernetes-apiservers
  • kubernetes-cadvisor
  • kubernetes 节点

现在我想从这个 Kubernetes 集群中的每个 Docker 容器中抓取 Nginx 统计信息(这似乎是一件明智的事情)。

但是如何让 Prometheus 自动从所有 Docker 容器中运行的所有 Nginx 实例中提取指标?

根据我目前的研究,答案涉及 kubernetes_sd_config,但我根本找不到足够的文档来说明如何将这些部分组合在一起。

谢谢!

编辑:这不是要公开 Nginx 统计信息。这只是抓取所有 Docker 容器公开的任何统计信息。

【问题讨论】:

    标签: nginx kubernetes google-kubernetes-engine prometheus


    【解决方案1】:

    您是正确的,您需要使用 kubernetes_sd_config 指令。在继续之前,我只想说你应该问的是“自动从 Kubernetes 中分离所有 pod”。这是因为 Pod 被认为是 Kubernetes 中最小的规模单位。不管你想做什么是很清楚的。

    所以 kubernetes_sd_config 可以用来发现所有带有给定标签的 pod,如下所示:

    - job_name: 'some-app'
      kubernetes_sd_configs:
        - role: pod
      relabel_configs:
        - source_labels: [__meta_kubernetes_pod_label_app]
          regex: python-app
          action: keep
    

    源标签 [__meta_kubernetes_pod_label_app] 基本上是使用 Kubernetes api 来查看标签为 'app' 并且其值由正则表达式捕获的应用程序 pod,在下面的行中给出(在这种情况下,匹配 ' python-app')。

    希望对您有所帮助。您可以关注博文here 了解更多详情。有关 kubernetes_sd_config 的更多信息,请查看文档here

    注意: 值得一提的是,kubernetes_sd_config 仍处于测试阶段。因此,在未来的版本中可能会发生对配置的重大更改。

    【讨论】:

    • 啊,是的,我明白你对 pod 的意思了。感谢您的回复!我也会仔细看看这篇博文!
    猜你喜欢
    • 2022-01-24
    • 2017-06-03
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    相关资源
    最近更新 更多