1 K8S for Prometheus Dashboard 20211010中文版
【中文版本】2021.10.10更新,kubernetes资源全面展示!包含K8S整体资源总览、微服务资源明细、Pod资源明细及K8S网络带宽,优化重要指标展示。https://github.com/starsliao/Prometheus
kubernetes资源全面展示!包含K8S整体资源总览、微服务资源明细、Pod资源明细及K8S网络带宽,优化展示指标。
- 兼容kube-state-metrics_v1.9.x、kube-state-metrics_v2.x
- 支持Grafana 7.5.11、Grafana 8.x
Grafana7的用户请更新到7.5.11+
注意事项:
- 关于节点名称的标签,因为cadvisor是使用
instance
,而kube-state-metrics是使用node
;这样会导致grafana节点信息表格中,没有统一的字段来连接各个查询,所以需要在prometheus.yaml
中增加以下内容来给cadvisor的指标复制一个node标签。
- 请在
cadvisor的job
下增加以下内容:
metric_relabel_configs:
- source_labels: [instance]
separator: ;
regex: (.+)
target_label: node
replacement: $1
action: replace
- 请确认kube-state-metrics和cadvisor已经接入了Prometheus,
kube-state-metrics_v1.9.8
、kube-state-metrics_v2.2.1
的安装可以参考【这里】,提供国内源。(K8S v1.16及以下的版本建议使用kube-state-metrics_v1.9.8)
- 安装完成之后展示有问题的话,可以把kube-state-metrics的镜像换成:
- registry.cn-shenzhen.aliyuncs.com/starsl/kube-state-metrics:v2.3.0
- 菜单中K8S变量
origin_prometheus
,取自于Prometheus的外部系统标签:external_labels
,可用于支持多个Prometheus接入VictoriaMetrics或Thanos等第三方存储使用remote_write
方式的场景。例如:多个K8S集群,每个K8S内部署一个Prometheus,并使用统一的Grafana来展示。(默认取值空,指标中无该标签不影响使用;如果grafana图表无法展示,尝试在grafana中编辑异常的图表,在promql中去掉该变量,如果展示正常了,说明prometheus版本过低,请更新到最新版。)
更新说明:
v20211010
- 基于K8S总可用资源的维度,修改了各类资源总可用量的指标,指标更加精准。
- 支持
kube-state-metrics_v2.x
并兼容kube-state-metrics_v1.9.x
。 - 所有表格使用了新的表格样式,并且对各字段颜色做了处理。
- 根据节点、微服务、Pod维度调整了图表展示效果。
- 提供了
kube-state-metrics_v1.9.8
和kube-state-metrics_v2.2.1
的部署文件和国内源。参考【这里】
v20201209
- 使用
Filter by name
来优化了表格展示的字段。 - 增加了关于节点名称标签在不同指标中不一致的说明。
v20201208
- 调整了资源总览页的展示效果。
- 增加了更多命名空间维度的统计信息。
- 总览页的节点明细表格更新为grafana7的样式,增加了各节点资源的使用比例并标记颜色。
- 微服务和pod的表格数据与曲线图分开2个卡片展示,表格中可以直接查看微服务及对应Pod的明细。
- 曲线图使用独立的卡片展示,浏览所有微服务表格时,不会出现服务过多引起卡顿的情况,建议制定微服务后在查看曲线图。
- 优化了部分图表的描述。
关注公众号【云原生 DevOps】加入运维群交流,获取更多…
整体资源总览
微服务资源明细
Pod资源明细
K8S网络带宽
注意:Prometheus需要能采集到cadvisor
与kube-state-metrics
的指标。
- cAdvisor作为kubelet内置的一部分程序可以直接使用。
- kube-state-metrics部署可参考:https://github.com/starsliao/Prometheus/tree/master/kubernetes
Prometheus job配置参考(kube-state-metrics部署在ops-monit命名空间):
- job_name: 'k8s-cadvisor'
metrics_path: /metrics/cadvisor
kubernetes_sd_configs:
- role: node
relabel_configs:
- source_labels: [__address__]
regex: '(.*):10250'
replacement: '${1}:10255'
target_label: __address__
action: replace
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
metric_relabel_configs:
- source_labels: [instance]
separator: ;
regex: (.+)
target_label: node
replacement: $1
action: replace
- source_labels: [pod_name]
separator: ;
regex: (.+)
target_label: pod
replacement: $1
action: replace
- source_labels: [container_name]
separator: ;
regex: (.+)
target_label: container
replacement: $1
action: replace
- job_name: kube-state-metrics
kubernetes_sd_configs:
- role: endpoints
namespaces:
names:
- ops-monit
relabel_configs:
- source_labels: [__meta_kubernetes_service_label_app_kubernetes_io_name]
regex: kube-state-metrics
replacement: $1
action: keep
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: k8s_namespace
- source_labels: [__meta_kubernetes_service_name]
action: replace
target_label: k8s_sname
博客:StarsL.cn
问题请到github上提交issue。
GitHub:https://github.com/starsliao/Prometheus
Dashboard revisions
Upload an updated version of an exported dashboard.json file from Grafana
Revision | Decscription | Created | |
---|---|---|---|
Download |
Get this dashboard
Data source:
Dependencies: