2.2. 监控 Argo CD 实例
默认情况下,Red Hat OpenShift GitOps Operator 会自动检测在定义的命名空间中安装的 Argo CD 实例,如 openshift-gitops
,并将其连接到集群的监控堆栈,以便为不同步应用程序提供警报。
2.2.1. 先决条件
-
您可以使用
cluster-admin
权限访问集群。 - 访问 OpenShift Container Platform web 控制台。
- 在集群中安装了 Red Hat OpenShift GitOps Operator。
-
您已在定义的命名空间中安装了 Argo CD 应用程序,如
openshift-gitops
。
2.2.2. 使用 Prometheus 指标监控 Argo CD 健康状况
您可以通过针对它运行 Prometheus metrics 查询来监控 Argo CD 应用程序的健康状况。
流程
-
在 web 控制台的 Developer 视角中,选择安装 Argo CD 应用程序的命名空间,并导航到 Observe
Metrics。 - 从 Select query 下拉列表中,选择 Custom query。
要检查 Argo CD 应用程序的健康状态,请在 Expression 字段中输入类似以下示例的 Prometheus Query Language (PromQL)查询:
Example
sum(argocd_app_info{dest_namespace=~"<your_defined_namespace>",health_status!=""}) by (health_status) 1
- 1
- 将 &
lt;your_defined_namespace
> 变量替换为定义的命名空间的实际名称,如openshift-gitops
。
2.2.3. 为 Argo CD 实例禁用自动提取指标
默认情况下,Red Hat OpenShift GitOps Operator 会自动提取所有 Argo CD 实例的指标来测量性能。因此,Operator 会创建以下资源和标签到安装 Argo CD 实例的命名空间:
-
GITOPS-operator-argocd-alerts
prometheus 规则 -
<argocd_namespace>-read
role -
<argocd_name>
;, <argocd_name>-repo-server
, 和<argocd_name>-server
服务监控器 -
<argocd_namespace>-prometheus-k8s-read-binding
role binding -
openshift.io/cluster-monitoring=true
label
为集群中的多个 Argo CD 实例提取指标可能会导致过量存储使用。作为一种防止度量,使用 Web 控制台的 YAML 视图并配置 ArgoCD
自定义资源(CR)来禁用 Argo CD 实例的指标自动提取。
作为集群管理员,通过为各个实例禁用指标提取,您可以为用户提供更好的控制、灵活性和稳定性,以管理其定义的命名空间。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
-
在 Web 控制台的 Administrator 视角中,点 Operators
Installed Operators。 - 从 Project 列表中,选择安装用户定义的 Argo CD 实例的项目。
- 从安装的 Operator 列表中选择 Red Hat OpenShift GitOps,再进入 Argo CD 选项卡。
- 点用户定义的 Argo CD 实例。
配置用户定义的 Argo CD 实例的
ArgoCD
CR,以禁用自动提取指标:-
点 YAML 选项卡,并编辑
ArgoCD
CR 的 YAML 文件。 在
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
提示另外,使用以下命令在 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
-
点 YAML 选项卡,并编辑
验证 Operator 是否将
openshift.io/cluster-monitoring=false
标签添加到定义的命名空间中:进入 Administration
Namespaces。 Namespaces 页面显示创建的命名空间。
-
点您定义的命名空间,进入 YAML 选项卡,并验证 Operator 的
metadata.labels
部分下是否添加了openshift.io/cluster-monitoring=false
标签。
验证 Operator 是否从定义的命名空间中删除以下资源:
-
前往 Home
Search。 从 Resources 列表中,选择 PrometheusRule,Role,RoleBinding, 和 ServiceMonitor。
Search 页面显示所选资源。
-
在 Search 页面中,验证 PrometheusRule 部分下的
gitops-operator-argocd-alerts
prometheus 规则已被删除。 - 在 Roles 部分的 Filter 列表中,选择 Namespace Roles。
-
验证 <
;argocd_namespace>-read
角色是否已删除。 - 在 RoleBindings 部分下,从 Filter 列表中选择 Namespace RoleBindings。
-
验证 <
;argocd_namespace>-prometheus-k8s-read-binding
角色绑定已被删除。 -
验证在 ServiceMonitors 部分下,<
argocd_name> , &
lt;argocd_name>-repo-server
, 和<argocd_name>-server
服务监控器已被删除。
-
前往 Home
您可以通过将 spec.monitoring.disableMetrics
字段值修改为 false
来为实例启用指标。然后,Operator 会创建所需的角色、角色绑定和服务监控器,并将 openshift.io/cluster-monitoring=true
标签添加到定义的命名空间中。