5.6. 在单一命名空间中安装 Red Hat Quay Operator 时启用监控
当在一个命名空间中安装 Red Hat Quay Operator 时,监控组件被设置为 unmanaged。要配置监控,您必须为 OpenShift Container Platform 中的用户定义的命名空间启用它。
如需更多信息,请参阅有关 配置监控堆栈 和 为用户定义的项目启用监控 的 OpenShift Container Platform 文档。
以下小节介绍了如何根据 OpenShift Container Platform 文档为 Red Hat Quay 启用监控。
5.6.1. 创建集群监控配置映射
使用以下步骤检查 cluster-monitoring-config ConfigMap 对象是否存在。
步骤
输入以下命令检查
cluster-monitoring-configConfigMap 对象是否存在:$ oc -n openshift-monitoring get configmap cluster-monitoring-config
输出示例
Error from server (NotFound): configmaps "cluster-monitoring-config" not found
可选:如果
ConfigMap对象不存在,请创建一个 YAML 清单。在以下示例中,该文件名为cluster-monitoring-config.yaml。apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: |
可选:如果
ConfigMap对象不存在,请创建ConfigMap对象:$ oc apply -f cluster-monitoring-config.yaml configmap/cluster-monitoring-config created
运行以下命令,确保
ConfigMap对象存在:$ oc -n openshift-monitoring get configmap cluster-monitoring-config
输出示例
NAME DATA AGE cluster-monitoring-config 1 12s
5.6.2. 创建用户定义的工作负载监控 ConfigMap 对象
使用以下步骤检查 user-workload-monitoring-config ConfigMap 对象是否存在。
步骤
输入以下命令检查
user-workload-monitoring-configConfigMap对象是否存在:$ oc -n openshift-user-workload-monitoring get configmap user-workload-monitoring-config
输出示例
Error from server (NotFound): configmaps "user-workload-monitoring-config" not found
如果
ConfigMap对象不存在,请创建一个 YAML 清单。在以下示例中,该文件名为user-workload-monitoring-config.yaml。apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: |
可选:输入以下命令来创建
ConfigMap对象:$ oc apply -f user-workload-monitoring-config.yaml
输出示例
configmap/user-workload-monitoring-config created
5.6.3. 为用户定义的项目启用监控
使用以下步骤为用户定义的项目启用监控。
步骤
输入以下命令检查监控用户定义的项目是否正在运行:
$ oc get pods -n openshift-user-workload-monitoring
输出示例
No resources found in openshift-user-workload-monitoring namespace.
输入以下命令编辑
cluster-monitoring-configConfigMap:$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
在
config.yaml文件中设置enableUserWorkload: true,以便在集群中为用户定义的项目启用监控:apiVersion: v1 data: config.yaml: | enableUserWorkload: true kind: ConfigMap metadata: annotations:输入以下命令保存文件,应用更改并确保适当的 pod 正在运行:
$ oc get pods -n openshift-user-workload-monitoring
输出示例
NAME READY STATUS RESTARTS AGE prometheus-operator-6f96b4b8f8-gq6rl 2/2 Running 0 15s prometheus-user-workload-0 5/5 Running 1 12s prometheus-user-workload-1 5/5 Running 1 12s thanos-ruler-user-workload-0 3/3 Running 0 8s thanos-ruler-user-workload-1 3/3 Running 0 8s
5.6.4. 创建 Service 对象以公开 Red Hat Quay 指标
使用以下步骤创建 Service 对象来公开 Red Hat Quay 指标。
步骤
为 Service 对象创建 YAML 文件:
$ cat <<EOF > quay-service.yaml apiVersion: v1 kind: Service metadata: annotations: labels: quay-component: monitoring quay-operator/quayregistry: example-registry name: example-registry-quay-metrics namespace: quay-enterprise spec: ports: - name: quay-metrics port: 9091 protocol: TCP targetPort: 9091 selector: quay-component: quay-app quay-operator/quayregistry: example-registry type: ClusterIP EOF运行以下命令来创建
Service对象:$ oc apply -f quay-service.yaml
输出示例
service/example-registry-quay-metrics created
5.6.5. 创建 ServiceMonitor 对象
使用以下步骤配置 OpenShift Monitoring,以通过创建 ServiceMonitor 资源来提取指标。
步骤
为
ServiceMonitor资源创建 YAML 文件:$ cat <<EOF > quay-service-monitor.yaml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: quay-operator/quayregistry: example-registry name: example-registry-quay-metrics-monitor namespace: quay-enterprise spec: endpoints: - port: quay-metrics namespaceSelector: any: true selector: matchLabels: quay-component: monitoring EOF运行以下命令来创建
ServiceMonitor资源:$ oc apply -f quay-service-monitor.yaml
输出示例
servicemonitor.monitoring.coreos.com/example-registry-quay-metrics-monitor created
5.6.6. 查看 OpenShift Container Platform 中的指标
您可以在 Monitoring → Metrics 下的 OpenShift Container Platform 控制台中访问指标。在 Expression 字段中,输入 quay_ 以查看可用指标列表:
例如,如果您将用户添加到 registry 中,请选择 quay-users_rows 指标: