-2

我在 kube-prometheus 之后将 prometheus 安装到了我的 Kubernetes v1.17 KOPS 集群,确保设置了--authentication-token-webhook=true--authorization-mode=Webhook prerequisets并指定了kube-prometheus/kube-prometheus-kops.libsonnet配置。

然后,我使用提供的values-production.yaml使用https://github.com/helm/charts/tree/master/stable/postgresql安装了 Postgres ,并具有以下设置:

metrics:
  enabled: true
  # resources: {}
  service:
    type: ClusterIP
    annotations:
      prometheus.io/scrape: "true"
      prometheus.io/port: "9187"
    loadBalancerIP:
  serviceMonitor:
    enabled: true
    namespace: monitoring
    interval: 30s
    scrapeTimeout: 10s

两种服务都已启动并正常工作,但 prometheus 没有从 Postgres 中发现任何指标。
我的 postgres pod上的容器上的日志metrics没有错误,monitoring命名空间中的任何 pod 也没有。
让 Postgres 指标导出器到达 Prometheus 还需要哪些额外步骤?

4

1 回答 1

1

尝试为 Prometheus 更新 ClusterRole。默认情况下,它无权从非监控命名空间中检索 pod、服务和端点列表。

在我的系统中,原来的 ClusterRole 是:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: prometheus-k8s
rules:
- apiGroups:
  - ""
  resources:
  - nodes/metrics
  verbs:
  - get
- nonResourceURLs:
  - /metrics
  verbs:
  - get

我已将其更改为:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: prometheus-k8s
rules:
- apiGroups:
  - ""
  resources:
  - nodes/metrics
  - services
  - endpoints
  - pods
  verbs:
  - get
  - list
  - watch
- nonResourceURLs:
  - /metrics
  verbs:
  - get

在这些更改之后,Postgres 指标将可用于 Prometheus。

于 2020-01-28T13:14:04.433 回答