×

默认情况下,Red Hat OpenShift GitOps Operator 会自动检测在您定义的命名空间(例如 `openshift-gitops`)中安装的 Argo CD 实例,并将其连接到集群的监控堆栈,以提供与应用不同步的警报。

先决条件

  • 您可以访问具有 `cluster-admin` 权限的集群。

  • 您可以访问 OpenShift Container Platform Web 控制台。

  • 您已在集群中安装 Red Hat OpenShift GitOps Operator。

  • 您已在定义的命名空间(例如 `openshift-gitops`)中安装了 Argo CD 应用程序。

使用 Prometheus 指标监控 Argo CD 健康状况

您可以通过对 Argo CD 应用程序运行 Prometheus 指标查询来监控其运行状况。

步骤
  1. 在 Web 控制台的**开发人员**视图中,选择安装 Argo CD 应用程序的命名空间,然后导航到**观察** → **指标**。

  2. 选择查询下拉列表中,选择自定义查询

  3. 要检查 Argo CD 应用程序的运行状况,请在表达式字段中输入类似于以下示例的 Prometheus 查询语言 (PromQL) 查询

    示例
    sum(argocd_app_info{dest_namespace=~"<your_defined_namespace>",health_status!=""}) by (health_status) (1)
    
    1 <your_defined_namespace>变量替换为您定义的命名空间的实际名称,例如openshift-gitops

禁用 Argo CD 实例的指标自动抓取

默认情况下,Red Hat OpenShift GitOps Operator 会自动抓取所有 Argo CD 实例的指标以衡量性能。因此,Operator 会在安装 Argo CD 实例的命名空间中创建以下资源和标签

  • gitops-operator-argocd-alerts Prometheus 规则

  • <argocd_namespace>-read 角色

  • <argocd_name><argocd_name>-repo-server<argocd_name>-server 服务监控器

  • <argocd_namespace>-prometheus-k8s-read-binding 角色绑定

  • openshift.io/cluster-monitoring=true 标签

在集群中抓取多个 Argo CD 实例的指标可能会导致存储使用量过大。作为预防措施,请使用 Web 控制台的 YAML 视图并配置ArgoCD自定义资源 (CR) 以禁用 Argo CD 实例的指标自动抓取。

作为集群管理员,通过禁用单个实例的指标抓取,您可以为用户提供更好的控制、灵活性和稳定性来管理他们定义的命名空间。

步骤
  1. 登录到 OpenShift Container Platform Web 控制台。

  2. 在 Web 控制台的管理员视角中,单击Operators已安装的 Operators

  3. 项目列表中,选择安装用户定义的 Argo CD 实例的项目。

  4. 从已安装的 Operators 列表中选择Red Hat OpenShift GitOps,然后转到Argo CD选项卡。

  5. 单击您用户定义的 Argo CD 实例。

  6. 配置用户定义的 Argo CD 实例的ArgoCD CR 以禁用指标的自动抓取

    1. 单击YAML选项卡并编辑ArgoCD CR 的 YAML 文件。

    2. ArgoCD CR 中,将spec.monitoring.disableMetrics字段值设置为true

      ArgoCD CR 示例
      apiVersion: argoproj.io/v1beta1
      kind: ArgoCD
      metadata:
       name: example  (1)
       namespace: spring-petclinic (2)
      spec:
       monitoring:
         disableMetrics: true
      1 用户定义的 Argo CD 实例的名称。
      2 您要运行用户定义的 Argo CD 实例的命名空间。

      或者,使用以下命令在 Red Hat OpenShift GitOps argocd CLI 中禁用指标的自动抓取

      命令示例
      $ oc patch argocd example -n spring-petclinic --type='json' -p='[{"op": "replace", "path": "/spec/monitoring/disableMetrics", "value": true}]'
      输出示例
      argocd.argoproj.io/example patched
  7. 验证 Operator 是否已将openshift.io/cluster-monitoring=false标签添加到您定义的命名空间

    1. 转到管理命名空间

      命名空间页面显示已创建的命名空间。

    2. 单击您定义的命名空间,转到YAML选项卡,然后验证在metadata.labels部分下,Operator 是否添加了openshift.io/cluster-monitoring=false标签。

  8. 验证 Operator 是否已从您定义的命名空间中删除以下资源

    1. 转到主页搜索

    2. 资源列表中,选择PrometheusRule角色角色绑定服务监控器

      搜索页面显示选定的资源。

    3. 搜索页面中,验证在PrometheusRule部分下是否已删除gitops-operator-argocd-alerts Prometheus 规则。

    4. 角色部分下,从筛选器列表中选择命名空间角色

    5. 验证是否已删除<argocd_namespace>-read角色。

    6. 角色绑定部分下,从筛选器列表中选择命名空间角色绑定

    7. 验证是否已删除<argocd_namespace>-prometheus-k8s-read-binding角色绑定。

    8. 验证在服务监控器部分下是否已删除<argocd_name><argocd_name>-repo-server<argocd_name>-server服务监控器。

您可以通过将spec.monitoring.disableMetrics字段值修改为false来启用实例的指标。然后,Operator 将创建所需的角色、角色绑定和服务监控器,并将openshift.io/cluster-monitoring=true标签添加到您定义的命名空间。