搜索

2.12. 在指标中添加集群 ID 标签

download PDF

如果您管理多个 OpenShift Container Platform 集群,并使用远程写入功能将指标数据从这些集群发送到外部存储位置,您可以添加集群 ID 标签来识别来自不同集群的指标数据。然后,您可以查询这些标签来标识指标的源集群,并区分与其他集群发送的类似指标数据的数据。

这样,如果您为多个客户管理多个集群,并将指标数据发送到单个集中存储系统,您可以使用集群 ID 标签查询特定集群或客户的指标。

创建并使用集群 ID 标签涉及三个常规步骤:

  • 配置远程写入存储的写重新标记设置。
  • 将集群 ID 标签添加到指标。
  • 查询这些标签以标识源集群或指标客户。

2.12.1. 为指标创建集群 ID 标签

您可以为默认平台监控和用户工作负载监控创建集群 ID 标签。

对于默认平台监控,您可以在 openshift-monitoring 命名空间中为 cluster-monitoring-config 配置映射中的 write_relabel 设置中为指标添加集群 ID 标签。

对于用户工作负载监控,您可以编辑 openshift-user-workload-monitoring 命名空间中的 user-workload-monitoring-config 配置映射中的设置。

注意

当 Prometheus 提取公开 namespace 标签的用户工作负载目标时,系统会将此标签存储为 exported_namespace。此行为可确保最终命名空间标签值等于目标 pod 的命名空间。您不能将 PodMonitorServiceMonitor 对象的 honorLabels 字段的值设置为 true 来覆盖此默认配置。

先决条件

  • 如果要配置默认平台监控组件:

    • 您可以使用具有 cluster-admin 集群角色的用户身份访问集群。
    • 您已创建 cluster-monitoring-config ConfigMap 对象。
  • 如果您要配置用于监控用户定义的项目的组件:

    • 您可以使用具有 cluster-admin 集群角色或具有 openshift-user-workload-monitoring 项目中的 user-workload-monitoring-config-edit 角色的用户访问集群。
    • 集群管理员为用户定义的项目启用了监控。
  • 已安装 OpenShift CLI(oc)。
  • 您已配置了远程写入存储。

流程

  1. 编辑 ConfigMap 对象:

    • 为 OpenShift Container Platform 核心指标创建集群 ID 标签:

      1. 编辑 openshift-monitoring 项目中的 cluster-monitoring-config ConfigMap 对象:

        $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
      2. 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
        1
        为您要发送到远程端点的指标添加写入重新标记配置列表。
        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
        1
        系统最初应用名为 __tmp_openshift_cluster_id__ 的临时集群 ID 源标签。此临时标签由您指定的集群 ID 标签名称替换。
        2
        指定发送到远程写入存储的指标的集群 ID 标签名称。如果您使用指标已存在的标签名称,则该值会使用这个集群 ID 标签的名称覆盖。对于标签名称,不要使用 __tmp_openshift_cluster_id__。最后重新标记步骤会删除使用此名称的标签。
        3
        replace write relabel 操作,将临时标签替换为传出指标的目标标签。这个操作是默认行为,如果没有指定任何操作,则会被应用。
    • 为用户定义的项目指标创建集群 ID 标签:

      1. openshift-user-workload-monitoring 项目中编辑 user-workload-monitoring-config ConfigMap 对象:

        $ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
      2. 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
        1
        为您要发送到远程端点的指标添加写入重新标记配置列表。
        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
        1
        系统最初应用名为 __tmp_openshift_cluster_id__ 的临时集群 ID 源标签。此临时标签由您指定的集群 ID 标签名称替换。
        2
        指定发送到远程写入存储的指标的集群 ID 标签名称。如果您使用指标已存在的标签名称,则该值会使用这个集群 ID 标签的名称覆盖。对于标签名称,不要使用 __tmp_openshift_cluster_id__。最后重新标记步骤会删除使用此名称的标签。
        3
        replace write relabel 操作,将临时标签替换为传出指标的目标标签。这个操作是默认行为,如果没有指定任何操作,则会被应用。
  2. 保存文件以将更改应用到 ConfigMap 对象。受更新的配置影响的 pod 会自动重启。

    警告

    保存对监控 ConfigMap 对象的更改可能会重新部署相关项目中的 pod 和其他资源。保存更改还可能在该项目中重新启动正在运行的监控进程。

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.