10.7. 监控 Zero Trust Workload Identity Manager
默认情况下,Zero Trust Workload Identity Manager 的 SPIRE Server 和 SPIRE Agent 组件会发出指标。您可以使用 Prometheus Operator 格式将 OpenShift Monitoring 配置为收集这些指标。
10.7.1. 启用用户工作负载监控 复制链接链接已复制到粘贴板!
您可以通过在集群中配置用户工作负载监控来启用对用户定义的项目的监控。
先决条件
-
您可以使用具有
cluster-admin集群角色的用户身份访问集群。
流程
创建
cluster-monitoring-config.yaml文件来定义和配置ConfigMap:apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | enableUserWorkload: true运行以下命令来应用
ConfigMap:$ oc apply -f cluster-monitoring-config.yaml
验证
验证用户工作负载的监控组件是否在
openshift-user-workload-monitoring命名空间中运行:$ oc -n openshift-user-workload-monitoring get pod输出示例
NAME READY STATUS RESTARTS AGE prometheus-operator-6cb6bd9588-dtzxq 2/2 Running 0 50s prometheus-user-workload-0 6/6 Running 0 48s prometheus-user-workload-1 6/6 Running 0 48s thanos-ruler-user-workload-0 4/4 Running 0 42s thanos-ruler-user-workload-1 4/4 Running 0 42s
prometheus-operator、prometheus-user-workload 和 thanos-ruler-user-workload 等 Pod 的状态必须是 Running。
10.7.2. 使用服务监控器为 SPIRE 服务器配置指标集合 复制链接链接已复制到粘贴板!
SPIRE 服务器操作对象默认在 /metrics 端点的端口 9402 上公开指标。您可以通过创建一个 ServiceMonitor 自定义资源 (CR) 来为 SPIRE 服务器配置指标集合,以便 Prometheus Operator 收集自定义指标。
先决条件
-
您可以使用具有
cluster-admin集群角色的用户身份访问集群。 - 已安装 Zero Trust Workload Identity Manager。
- 您已在集群中部署了 SPIRE 服务器操作对象。
- 您已启用了用户工作负载监控。
流程
创建
ServiceMonitorCR:创建定义
ServiceMonitorCR 的 YAML 文件:servicemonitor-spire-server文件示例apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app.kubernetes.io/name: server app.kubernetes.io/instance: spire name: spire-server-metrics namespace: zero-trust-workload-identity-manager spec: endpoints: - port: metrics interval: 30s path: /metrics selector: matchLabels: app.kubernetes.io/name: server app.kubernetes.io/instance: spire namespaceSelector: matchNames: - zero-trust-workload-identity-manager运行以下命令来创建
ServiceMonitorCR:$ oc create -f servicemonitor-spire-server.yaml创建
ServiceMonitorCR 后,用户工作负载 Prometheus 实例从 SPIRE 服务器开始指标集合。收集的指标带有job="spire-server"标签。
验证
-
在 OpenShift Container Platform web 控制台中进入到 Observe
Targets。 在 Label 过滤字段中,输入以下标签来过滤指标目标:
$ service=spire-server-
确认 Status 列显示
spire-server-metrics条目的Up。
10.7.3. 使用服务监控器为 SPIRE 代理配置指标集合 复制链接链接已复制到粘贴板!
SPIRE Agent 操作对象默认在 /metrics 端点的端口 9402 上公开指标。您可以通过创建一个 ServiceMonitor 自定义资源 (CR) 来配置 SPIRE Agent 的指标集合,以便 Prometheus Operator 收集自定义指标。
先决条件
-
您可以使用具有
cluster-admin集群角色的用户身份访问集群。 - 已安装 Zero Trust Workload Identity Manager。
- 您已在集群中部署了 SPIRE Agent 操作对象。
- 您已启用了用户工作负载监控。
流程
创建
ServiceMonitorCR:创建定义
ServiceMonitorCR 的 YAML 文件:servicemonitor-spire-agent.yaml文件示例apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app.kubernetes.io/name: agent app.kubernetes.io/instance: spire name: spire-agent-metrics namespace: zero-trust-workload-identity-manager spec: endpoints: - port: metrics interval: 30s path: /metrics selector: matchLabels: app.kubernetes.io/name: agent app.kubernetes.io/instance: spire namespaceSelector: matchNames: - zero-trust-workload-identity-manager运行以下命令来创建
ServiceMonitorCR:$ oc create -f servicemonitor-spire-agent.yaml创建
ServiceMonitorCR 后,用户工作负载 Prometheus 实例从 SPIRE 代理开始收集指标。收集的指标标有job="spire-agent"。
验证
-
在 OpenShift Container Platform web 控制台中进入到 Observe
Targets。 在 Label 过滤字段中,输入以下标签来过滤指标目标:
$ service=spire-agent-
确认
spire-agent-metrics条目的 Status 显示为Up。
10.7.4. 查询 Zero Trust Workload Identity Manager 的指标 复制链接链接已复制到粘贴板!
作为集群管理员,或者作为具有查看所有命名空间权限的用户,您可以使用 OpenShift Container Platform Web 控制台或命令行查询 SPIRE Agent 和 SPIRE Server 指标。查询检索从与指定作业标签匹配的 SPIRE 组件收集的所有指标。
先决条件
-
您可以使用具有
cluster-admin角色的用户访问集群。 - 已安装 Zero Trust Workload Identity Manager。
- 您已在集群中部署了 SPIRE 服务器和 SPIRE Agent 操作对象。
-
您已通过创建
ServiceMonitor对象来启用监控和指标集合。
流程
-
在 OpenShift Container Platform web 控制台中进入到 Observe
Metrics。 在查询字段中,输入以下 PromQL 表达式来查询 SPIRE 服务器指标:
{job="spire-server"}在查询字段中,输入以下 PromQL 表达式来查询 SPIRE Agent 指标。
{job="spire-agent"}