Kubernetes apiserver 度量集
编辑Kubernetes apiserver 度量集编辑
这是 Kubernetes 模块的 apiserver
度量集,负责从 Kubernetes API(在 /metrics
可用)中检索指标。
此度量集需要访问 Kubernetes 的 apiserver
组件,通常可以通过任何 POD 通过 kubernetes.default
服务或通过环境变量 (KUBERNETES_SERVICE_HOST
和 KUBERNETES_SERVICE_PORT
) 访问。
当 API 使用 https 时,pod 需要使用其默认令牌进行身份验证,并使用适当的 CA 文件信任服务器。
使用 https 和基于令牌的身份验证的配置示例
- module: kubernetes enabled: true metricsets: - apiserver hosts: ["https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}"] #hosts: ["https://kubernetes.default"] bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token ssl.certificate_authorities: - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt period: 30s
为了访问 API 服务的 /metrics
路径,某些 Kubernetes 环境可能需要将以下权限添加到 ClusterRole。
rules: - nonResourceURLs: - /metrics verbs: - get
之前的配置和 RBAC 要求可在 在 Kubernetes 上运行 Metricbeat 文档中提出的完整示例清单中找到。
有关度量集中每个字段的描述,请参阅 导出字段 部分。
以下是由此度量集生成的示例文档
{ "@timestamp": "2019-03-01T08:05:34.853Z", "event": { "dataset": "kubernetes.apiserver", "duration": 115000, "module": "kubernetes" }, "kubernetes": { "apiserver": { "major": { "version": "1" }, "minor": { "version": "21" }, "request": { "code": "0", "component": "apiserver", "count": 14, "resource": "endpoints", "scope": "cluster", "verb": "WATCH", "version": "v1" } } }, "metricset": { "name": "apiserver", "period": 10000 }, "service": { "address": "127.0.0.1:55555", "type": "kubernetes" } }