第 3 章 为用户定义的项目启用监控

在 OpenShift Container Platform 4.6 中,除了默认的平台监控外,您还可以为用户定义的项目启用监控。现在,您可以监控 OpenShift Container Platform 中的自己的项目,而无需额外的监控解决方案。使用这个新功能可以集中监控核心平台组件和用户定义的项目。

注意

自定义 Prometheus 实例和通过 Operator Lifecycle Manager (OLM) 安装的 Prometheus Operator 可能会导致用户定义的工作负载监控(如果启用)出现问题。自定义 Prometheus 实例在 OpenShift Container Platform 中不受支持。

3.1. 为用户定义的项目启用监控

集群管理员可以通过在集群监控 ConfigMap 中设置 enableUserWorkload: true 字段来为用户定义的项目启用监控。

重要

在 OpenShift Container Platform 4.6 中,要为用户定义的项目启用监控,您必须先删除任何自定义 Prometheus 实例。

注意

您必须可以使用具有 cluster-admin 角色的用户访问集群,才能在 OpenShift Container Platform 中为用户定义的项目启用监控。然后,集群管理员可以选择性地授予用户权限来配置负责监控用户定义的项目的组件。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 已安装 OpenShift CLI(oc)。
  • 您已创建 cluster-monitoring-config ConfigMap 对象。
  • 您已选择性地创建并配置 openshift-user-workload-monitoring 项目中的 user-workload-monitoring-config ConfigMap。您可以在该 ConfigMap 中为监控用户定义的项目的组件添加配置选项。

    注意

    每次您将配置更改保存到 user-workload-monitoring-config ConfigMap 时,都会重新部署 openshift-user-workload-monitoring 项目中的 Pod。有时重新部署这些组件需要花费一段时间。在首次为用户定义的项目启用监控前,您可以创建和配置 ConfigMap,以防止经常重新部署 Pod。

流程

  1. 编辑 cluster-monitoring-config ConfigMap 对象:

    $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
  2. enableUserWorkload: true 添加到 data/config.yaml 下:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    data:
      config.yaml: |
        enableUserWorkload: true 1
    1
    当设置为 true 时,enableUserWorkload 参数为集群中用户定义的项目启用监控。
  3. 保存文件以使改变生效。然后会自动启用对用户定义的项目的监控。

    警告

    将更改保存到 cluster-monitoring-config ConfigMap 对象时,可能会重新部署 openshift-monitoring 项目中的 Pod 和其他资源。该项目中正在运行的监控进程也可能被重启。

  4. 检查 prometheus-operatorprometheus-user-workloadthanos-ruler-user-workload Pod 是否在 openshift-user-workload-monitoring 项目中运行。Pod 启动可能需要片刻时间:

    $ oc -n openshift-user-workload-monitoring get pod

    输出示例

    NAME                                   READY   STATUS        RESTARTS   AGE
    prometheus-operator-6f7b748d5b-t7nbg   2/2     Running       0          3h
    prometheus-user-workload-0             4/4     Running       1          3h
    prometheus-user-workload-1             4/4     Running       1          3h
    thanos-ruler-user-workload-0           3/3     Running       0          3h
    thanos-ruler-user-workload-1           3/3     Running       0          3h