Prometheus未从GKE中的cadvisor接收指标

问题描述

heyo,

我已经在GKE v1.16.x中使用kubernetes部署了prometheus,grafana,kube-state-metrics,alertmanager等设置。我已经将https://github.com/do-community/doks-monitoring用作yaml文件的起点。

我已经尝试调试几天了,非常感谢您的帮助。我的Prometheus节点没有从cadvisor获取指标。

  • 部署中的所有服务和Pod正在运行。 prometheus,kube状态指标,节点导出程序,所有正在运行-没有错误
  • 普罗米修斯用户界面中的cadvisor目标显示为“ up”。
  • Prometheus能够从群集中收集其他指标,但没有Pod /容器级别的使用指标。
  • 查询kubectl get --raw "/api/v1/nodes/<your_node>/proxy/metrics/cadvisor"时可以看到管理者指标,但是当我查看container_cpu_usagecontainer_memory_usage的普罗米修斯时,没有数据。
  • 我的cadvisor在Prometheus中抓取作业配置
    - job_name: kubernetes-cadvisor
      honor_timestamps: true
      scrape_interval: 15s
      scrape_timeout: 10s
      metrics_path: /metrics/cadvisor
      scheme: https
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        insecure_skip_verify: true
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
        - action: labelmap
          regex: __Meta_kubernetes_node_label_(.+)

抄袭了prometheus / docs / examples。

我在路径和刮擦配置上尝试了很多不同的变化,但是没有运气。基于我可以使用kubectl get(它们存在)查询指标的事实,在我看来,问题是Prometheus与cadvisor目标进行通信。

如果有人有配置此配置的经验,我将不胜感激一些调试帮助。

欢呼

解决方法

我能够找到一个博客示例,该示例配置对我有用。 cadvisor(和kubelet)指标的GKE端点与文档示例中的标准端点不同。这是我的普罗米修斯工作摘录:

    - job_name: kubernetes-cadvisor
      honor_timestamps: true
      scrape_interval: 15s
      scrape_timeout: 10s
      metrics_path: /metrics/cadvisor
      scheme: https
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        insecure_skip_verify: true
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
        - action: labelmap
          regex: __meta_kubernetes_node_label_(.+)
        - target_label: __address__
          replacement: kubernetes.default.svc.cluster.local:443
        - source_labels: [__meta_kubernetes_node_name]
          regex: (.+)
          target_label: __metrics_path__
          replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
    - job_name: kubernetes-kubelet
      honor_timestamps: true
      scrape_interval: 15s
      scrape_timeout: 10s
      metrics_path: /metrics
      scheme: https
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        insecure_skip_verify: true
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
      - target_label: __address__
        replacement: kubernetes.default.svc.cluster.local:443
      - target_label: __metrics_path__
        source_labels: [__meta_kubernetes_node_name]
        regex: (.+)
        replacement: /api/v1/nodes/${1}/proxy/metrics

编辑:这是博客文章的链接-> https://medium.com/htc-research-engineering-blog/monitoring-kubernetes-clusters-with-grafana-e2a413febefd

,

太令人沮丧了, 我已经挖了好几天了。

从gke主服务器从1.15.12-gke.2升级到1.16.13-gke.401之后,问题就开始了。

要确认这一点,请在另一个gke集群中执行相同的操作,结果是相同的。

及以上配置禁止使用403。

enter image description here