MetricBeat kubernetes.apiserver:获取指标时出错

MetricBeat kubernetes.apiserver: error getting metrics

我们在 Kubernetes 集群上部署了 metricbeat。所有指标都被毫无问题地推送到 elasticsearch 索引。但是在 metribeat 日志中观察到以下错误,不确定到底是什么导致了这个。

2020-07-01T14:05:25.421Z     INFO    module/wrapper.go:259   Error fetching data for metricset kubernetes.apiserver: error getting metrics: unexpected status code 403 from server

我们已经探索并尝试了建议的集群角色,但没有看到任何成功。下面是我们正在使用的集群角色。

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: metricbeat
  labels:
    k8s-app: metricbeat
rules:
  - apiGroups:
      - "extensions"
      - "apps"
      - "v1"
      - ""
    resources:
      - namespaces
      - pods
      - events
      - deployments
      - nodes
      - replicasets
      - statefulsets
      - nodes/metrics
      - nodes/stats
    verbs:
      - get
      - list
      - watch

如果有人遇到同样的问题并已修复,请告诉我。提前致谢。

Metricbeat 似乎无法连接到 K8S API 服务器,HTTP 403 是一个安全错误。

根据 the official documentation,您能否确保在 ClusterRole 规则中添加这些:

rules:
- nonResourceURLs:
  - /metrics
  verbs:
  - get