3.13. 在指标中添加集群 ID 标签
如果您管理多个 OpenShift Container Platform 集群,并使用远程写入功能将指标数据从这些集群发送到外部存储位置,您可以添加集群 ID 标签来识别来自不同集群的指标数据。然后,您可以查询这些标签来标识指标的源集群,并区分与其他集群发送的类似指标数据的数据。
这样,如果您为多个客户管理多个集群,并将指标数据发送到单个集中存储系统,您可以使用集群 ID 标签查询特定集群或客户的指标。
创建并使用集群 ID 标签涉及三个常规步骤:
- 配置远程写入存储的写重新标记设置。
- 将集群 ID 标签添加到指标。
- 查询这些标签以标识源集群或指标客户。
3.13.1. 为指标创建集群 ID 标签
您可以为默认平台监控和用户工作负载监控创建集群 ID 标签。
对于默认平台监控,您可以在 openshift-monitoring
命名空间中为 cluster-monitoring-config
配置映射中的 write_relabel
设置中为指标添加集群 ID 标签。
对于用户工作负载监控,您可以编辑 openshift-user-workload-monitoring
命名空间中的 user-workload-monitoring-config
配置映射中的设置。
当 Prometheus 提取公开 namespace
标签的用户工作负载目标时,系统会将此标签存储为 exported_namespace
。此行为可确保最终命名空间标签值等于目标 pod 的命名空间。您不能将 PodMonitor
或 ServiceMonitor
对象的 honorLabels
字段的值设置为 true
来覆盖此默认配置。
先决条件
如果要配置默认平台监控组件:
-
您可以使用具有
cluster-admin
集群角色的用户身份访问集群。 -
您已创建
cluster-monitoring-config
ConfigMap
对象。
-
您可以使用具有
如果您要配置用于监控用户定义的项目的组件:
-
您可以使用具有
cluster-admin
集群角色或具有openshift-user-workload-monitoring
项目中的user-workload-monitoring-config-edit
角色的用户访问集群。 - 集群管理员为用户定义的项目启用了监控。
-
您可以使用具有
-
已安装 OpenShift CLI(
oc
)。 - 您已配置了远程写入存储。
流程
编辑
ConfigMap
对象:为 OpenShift Container Platform 核心指标创建集群 ID 标签:
编辑
openshift-monitoring
项目中的cluster-monitoring-config
ConfigMap
对象:$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
在
data/config.yaml/prometheusK8s/remoteWrite
中的writeRelabelConfigs:
部分添加集群 ID 重新标记配置值:apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | prometheusK8s: remoteWrite: - url: "https://remote-write-endpoint.example.com" <endpoint_authentication_credentials> writeRelabelConfigs: 1 - <relabel_config> 2
以下示例演示了如何在默认平台监控中使用集群 ID 标签
cluster_id
转发指标:apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | prometheusK8s: remoteWrite: - url: "https://remote-write-endpoint.example.com" writeRelabelConfigs: - sourceLabels: - __tmp_openshift_cluster_id__ 1 targetLabel: cluster_id 2 action: replace 3
为用户定义的项目指标创建集群 ID 标签:
在
openshift-user-workload-monitoring
项目中编辑user-workload-monitoring-config
ConfigMap
对象:$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
在
data/config.yaml/prometheus/remoteWrite
下的writeRelabelConfigs:
部分中,添加集群 ID 重新标记配置值:apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: remoteWrite: - url: "https://remote-write-endpoint.example.com" <endpoint_authentication_credentials> writeRelabelConfigs: 1 - <relabel_config> 2
以下示例演示了如何在 user-workload 监控中使用集群 ID 标签
cluster_id
转发指标:apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: remoteWrite: - url: "https://remote-write-endpoint.example.com" writeRelabelConfigs: - sourceLabels: - __tmp_openshift_cluster_id__ 1 targetLabel: cluster_id 2 action: replace 3
- 保存文件以使改变生效。新的配置会被自动应用。