Prometheus + nginx-exporter:仅从<some_nginx_container_ip>收集:9113

时间:2016-09-15 18:30:00

标签: nginx kubernetes google-kubernetes-engine prometheus

免责声明:我发现普罗米修斯一天前的情况。

我正在尝试将普罗米修斯与nginx exporter

一起使用

我从grafana dashboard复制粘贴配置示例,它与node-exporter完美配合,但是,当我尝试将其调整为nginx-exporter时,部署在一个带有nginx服务器的pod中,Prometheus输出目标中的大量垃圾(所有可用IP的所有已打开端口)。

所以,我想知道,我应该如何调整作业只输出一个所需的容器(标签中带有'名称等)

- job_name: 'kubernetes-nginx-exporter'
  tls_config:
    ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
  bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  kubernetes_sd_configs:
  - api_servers:
    - 'https://kubernetes.default.svc'
    in_cluster: true
    role: container
  relabel_configs:
  - action: labelmap
    regex: __meta_kubernetes_node_label_(.+)
  - source_labels: [__meta_kubernetes_role]
    action: replace
    target_label: kubernetes_role
  - source_labels: [__address__]
    regex: '(.*):10250'
    replacement: '${1}:9113'
    target_label: __address__

1 个答案:

答案 0 :(得分:1)

正确的解决方法是在模板部分中为部署添加注释:

  annotations:
    prometheus.io/scrape: 'true'
    prometheus.io/port: '9113'

并在role: pod中设置job_name: 'kubernetes-pods'(如果未设置)。

就是这样,您的端点只会出现在您提供的端口以及所有需要的标签上。