如何使用Prometheus自动从Kubernetes中抓取所有Docker实例?

时间:2017-08-22 09:02:18

标签: nginx kubernetes google-kubernetes-engine prometheus

我已经在Google容器引擎中成功安装了 Prometheus ,并且我已经实现了这些目标:

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

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

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

到目前为止,根据我的研究,答案涉及 kubernetes_sd_config ,但我找不到足够的文档来说明如何将各个部分放在一起。

谢谢!

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

1 个答案:

答案 0 :(得分:0)

您是正确的,您需要使用kubernetes_sd_config指令。在继续之前,让我先说一下你应该问的是“自动从Kubernetes挖出所有豆荚”。这是因为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'并且其值由正则表达式捕获的应用程序窗格,在下面的行中给出(在这种情况下,匹配'蟒-应用“)。

希望有所帮助。您可以关注博文here以获取更多详细信息。另外,有关kubernetes_sd_config的更多信息,请查看文档here

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