Cluster Observability Operator
在 OpenShift Container Platform 中配置和使用 Cluster Observability Operator
摘要
第 1 章 Cluster Observability Operator 发行注记 复制链接链接已复制到粘贴板!
Cluster Observability Operator (COO) 是一个可选的 OpenShift Container Platform Operator,它可让管理员创建独立监控堆栈,供不同的服务和用户使用。
COO 补充 OpenShift Container Platform 的内置监控功能。您可以使用由 Cluster Monitoring Operator (CMO) 管理的默认平台和用户工作负载监控堆栈并行部署它。
本发行注记介绍了 OpenShift Container Platform 中 Cluster Observability Operator 的开发。
下表提供了有关根据 Cluster Observability Operator 和 OpenShift Container Platform 版本提供哪些功能的信息:
COO 版本 | OCP 版本 | 分布式追踪 | 日志记录 | 故障排除面板 | ACM 警报 | 事件检测 |
---|---|---|---|---|---|---|
1.1+ | 4.12 - 4.14 | ✔ | ✔ | ✘ | ✘ | ✘ |
1.1+ | 4.15 | ✔ | ✔ | ✘ | ✔ | ✘ |
1.1+ | 4.16 - 4.18 | ✔ | ✔ | ✔ | ✔ | ✘ |
1.2+ | 4.19+ | ✔ | ✔ | ✔ | ✔ | ✔ |
1.1. Cluster Observability Operator 1.2.2 复制链接链接已复制到粘贴板!
以下公告可用于 Cluster Observability Operator 1.2.2:
1.1.1. 程序错误修复 复制链接链接已复制到粘贴板!
在此次更新之前,安装事件检测功能可能会间歇性失败。症状包括事件检测 UI 会被显示,但没有包括任何数据。另外,health-analyzer
ServiceMonitor
资源处于失败状态,错误信息tls: failed to verify certificate: x509
。在这个版本中,事件检测功能会被正确安装。(COO-1062)如果您要从包括这个程序错误的 1.2.1 升级,您必须重新创建监控 UI 插件来解决这个问题。
1.1.2. 已知问题 复制链接链接已复制到粘贴板!
Cluster Observability Operator 1.2.2 中已知的问题:
安装版本 1.2.2 或从版本 1.0 升级时,监控插件的
UIPlugin
资源可能会损坏。当您也部署了分布式追踪、故障排除面板和 Advance Cluster Management (ACM) 以及监控 UI 插件时,会出现这种情况。您可以通过重新创建 UI 插件来解决这个问题。(COO-1051)如果您之前已在 1.2.1 中解决了这个问题,然后升级到 1.2.2,这个问题不会重新出现。
1.2. Cluster Observability Operator 1.2.1 复制链接链接已复制到粘贴板!
以下公告可用于 Cluster Observability Operator 1.2.1:
1.2.1. 程序错误修复 复制链接链接已复制到粘贴板!
- 在此次更新之前,在 Operator 版本 1.2 升级过程中会保留旧的版本标签 matcher。这会导致 Perses 仪表板不可用。在这个版本中,版本标签会被删除,Perses 仪表板会被正确协调。
1.2.2. 已知问题 复制链接链接已复制到粘贴板!
Cluster Observability Operator 1.2.1 中已知的问题:
-
事件检测功能的安装可能会间歇性失败。症状包括事件检测 UI 会被显示,但没有包括任何数据。另外,health-analyzer
ServiceMonitor
资源处于失败状态,错误信息tls: failed to verify certificate: x509
。您可以通过升级到 1.2.2 并重新创建监控 UI 插件来解决这个问题。(COO-1062) -
安装版本 1.2.1 或从版本 1.0 升级时,监控插件的
UIPlugin
资源可能会损坏。当您也部署了分布式追踪、故障排除面板和 Advance Cluster Management (ACM) 以及监控 UI 插件时,会出现这种情况。您可以通过重新创建 UI 插件来解决这个问题。(COO-1051)
1.3. Cluster Observability Operator 1.2 复制链接链接已复制到粘贴板!
以下公告可用于 Cluster Observability Operator 1.2:
1.3.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
- 除了之前支持的 ViaQ 方案外,日志记录 UI 插件还支持 OTEL 格式。(COO-816)
- 在安装监控 UI 插件时,会默认部署加速器仪表板。(COO-942)
- 现在,为 Korrel8r 显示每个图形节点的多个结果。(COO-785)
- 现在,在事件检测面板中可以直接进入单个事件详情,这启用了 Red Hat Advanced Cluster Management (RHACM) 2.14 中的事件概述功能。(COO-977,ACM-18751)
- 高级过滤功能已添加到追踪视图中。(COO-979)
- 分布式追踪 UI 插件的状态现在是正式发布 (GA),支持 Patternfly 4, 5 和 6。(COO-873)
1.3.2. 程序错误修复 复制链接链接已复制到粘贴板!
1.3.3. 已知问题 复制链接链接已复制到粘贴板!
Cluster Observability Operator 1.2.0 中已知的问题:
- 当从 COO 1.1.1 升级到 COO 1.2 时,Perses 仪表板不会被正确协调,这需要重新安装监控 UI 插件。(COO-978)
1.4. Cluster Observability Operator 1.1.1 复制链接链接已复制到粘贴板!
1.4.1. 程序错误修复 复制链接链接已复制到粘贴板!
-
在以前的版本中,在从 Cluster Observability Operator 1.0 升级时,许多集群中的
observability-operator
和perses-operator
pod 因OutOfMemory
错误而进入CrashLoopBackOff
状态,。此发行版本解决了这个问题。(COO-784)
1.5. Cluster Observability Operator 1.1 复制链接链接已复制到粘贴板!
以下公告可用于 Cluster Observability Operator 1.1:
1.5.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
1.5.2. 已知问题 复制链接链接已复制到粘贴板!
Cluster Observability Operator 1.1.0 中已知的问题:
在从 Cluster Observability Operator 1.0 升级后,
observability-operator
和perses-operator
pod 会因为OutOfMemory
错误进入CrashLoopBackOff
状态。知识库文章 ClusterObservability and perses operator pod in CrashLoopBackOff due to OOMKilled in RHOCP4 中提供了一个临时解决方案。
这个问题在 COO-784 中跟踪。
1.5.3. 程序错误修复 复制链接链接已复制到粘贴板!
- 在以前的版本中,日志记录 UI 插件不支持设置自定义 LokiStack 名称或命名空间。此发行版本解决了这个问题。(COO-332)
1.6. Cluster Observability Operator 1.0 复制链接链接已复制到粘贴板!
1.6.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
-
现在,您可以在 Prometheus CR 中配置 Alertmanager
scheme
和tlsConfig
字段。(COO-219)
对于故障排除面板的扩展技术预览,增加了对与 Kubernetes 资源定位 trace 的支持,并直接使用其他可观察信号,包括日志、警报、指标和网络事件。(COO-450)
-
当进入到追踪页时,您可以通过点 web 控制台中的 Observe → Tracing 来选择 Tempo 实例和租户。预览故障排除面板仅适用于
openshift-tracing / platform
实例和platform
租户。 - 故障排除面板在 Administrator 视角中有最佳效果。由于某些后端中的授权问题,它在 Developer 视角中具有有限的功能,特别是 Prometheus 用于指标和警报。这将在以后的发行版本中解决。
-
当进入到追踪页时,您可以通过点 web 控制台中的 Observe → Tracing 来选择 Tempo 实例和租户。预览故障排除面板仅适用于
下表提供了有关根据 Cluster Observability Operator 和 OpenShift Container Platform 版本提供哪些功能的信息:
COO 版本 | OCP 版本 | 分布式追踪 | 日志记录 | 平面故障排除 |
---|---|---|---|---|
1.0 | 4.12 - 4.15 | ✔ | ✔ | ✘ |
1.0 | 4.16+ | ✔ | ✔ | ✔ |
1.6.2. CVE 复制链接链接已复制到粘贴板!
1.6.3. 程序错误修复 复制链接链接已复制到粘贴板!
-
在以前的版本中,COO 安装的默认命名空间是
openshift-operators
。在这个版本中,defaullt 命名空间会更改为openshift-cluster-observability-operator
。(COO-32) -
在以前的版本中,
korrel8r
只能解析时间序列选择器表达式。在这个版本中,korrel8r
可以解析任何有效的 PromQL 表达式,以提取用于关联性的时间序列选择器。(COO-558) - 在以前的版本中,当从分布式 Tracing UI 插件查看 Tempo 实例时,scatter 图表图表显示 trace 持续时间无法正确呈现。bubble 大小太大,并在 x 和 y 轴间有重叠。在这个版本中,图形可以被正确呈现。(COO-319)
1.7. 较旧的、技术预览版本中这个功能可用 复制链接链接已复制到粘贴板!
下表提供了有关根据 Cluster Observability Operator 和 OpenShift Container Platform 版本提供哪些功能的信息:
COO 版本 | OCP 版本 | 仪表板 | 分布式追踪 | 日志记录 | 平面故障排除 |
---|---|---|---|---|---|
0.2.0 | 4.11 | ✔ | ✘ | ✘ | ✘ |
0.3.0+, 0.4.0+ | 4.11 - 4.15 | ✔ | ✔ | ✔ | ✘ |
0.3.0+, 0.4.0+ | 4.16+ | ✔ | ✔ | ✔ | ✔ |
1.8. Cluster Observability Operator 0.4.1 复制链接链接已复制到粘贴板!
以下公告可用于 Cluster Observability Operator 0.4.1:
1.8.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
- 现在,您可以为 Prometheus 和 Alertmanager 配置 WebTLS。
1.8.2. CVE 复制链接链接已复制到粘贴板!
1.8.3. 程序错误修复 复制链接链接已复制到粘贴板!
-
在以前的版本中,当您删除仪表板 UI 插件时,
consoles.operator.openshift.io
资源仍然会包含console-dashboards-plugin
。此发行版本解决了这个问题。(COO-152) - 在以前的版本中,Web 控制台没有显示 Red Hat COO 的正确图标。此发行版本解决了这个问题。(COO-353)
- 在以前的版本中,当您从 web 控制台安装 COO 时,support 部分会包含无效的链接。此发行版本解决了这个问题。(COO-354)
- 在以前的版本中,用于 COO 的集群服务版本 (CSV)链接到文档的非官方版本。此发行版本解决了这个问题。(COO-356)
1.9. Cluster Observability Operator 0.4.0 复制链接链接已复制到粘贴板!
以下公告可用于 Cluster Observability Operator 0.4.0:
1.9.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
1.9.1.1. UI 插件故障排除 复制链接链接已复制到粘贴板!
- UI 面板的故障排除已被改进,您现在可以选择并专注于特定的启动信号。
- 通过选择深度选项,可以对 Korrel8r 查询有更多了解。
-
OpenShift Container Platform 版本 4.17+ 的用户可从 Application Launcher
访问故障排除 UI 面板。另外,在 4.16+ 版本中,您可以点 Observe → Alerting 在 web 控制台中访问它。
如需更多信息,请参阅 UI 插件故障排除。
1.9.1.2. 分布式追踪 UI 插件 复制链接链接已复制到粘贴板!
- 分布式追踪 UI 插件已被改进,现在可以使用 Gantt chart 探索 trace。
如需更多信息,请参阅分布式追踪 UI 插件。
1.9.2. 程序错误修复 复制链接链接已复制到粘贴板!
- 在以前的版本中,普通用户无法通过点 Observe → Logs 在 web 控制台的 Developer 视角中访问指标。此发行版本解决了这个问题。(COO-288)
- 在以前的版本中,故障排除 UI 插件使用了错误的过滤用于网络观察性。此发行版本解决了这个问题。(COO-299)
- 在以前的版本中,故障排除 UI 插件生成一个不正确的 URL 用于 pod 标签搜索。此发行版本解决了这个问题。(COO-298)
-
在以前的版本中,分布式追踪 UI 插件中有一个授权漏洞。此发行版本解决了这个问题,并且仅使用多租户
TempoStack
和TempoMonolithic
实例进一步强化分布式追踪 UI 插件。
1.10. Cluster Observability Operator 0.3.2 复制链接链接已复制到粘贴板!
以下公告可用于 Cluster Observability Operator 0.3.2:
1.10.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
-
在这个版本中,您可以使用带有
MonitoringStack
组件的容限和节点选择器。
1.10.2. 程序错误修复 复制链接链接已复制到粘贴板!
-
在以前的版本中,日志记录 UIPlugin 没有处于
Available
状态,当在一个特定版本的 OpenShift Container Platform 上安装时,日志记录 pod 不会被创建。此发行版本解决了这个问题。(COO-260)
1.11. Cluster Observability Operator 0.3.0 复制链接链接已复制到粘贴板!
以下公告可用于 Cluster Observability Operator 0.3.0:
1.11.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
- 在这个版本中,Cluster Observability Operator 添加了对将来的 OpenShift Container Platform observability Web 控制台 UI 插件和可观察性组件的后端支持。
1.12. Cluster Observability Operator 0.2.0 复制链接链接已复制到粘贴板!
以下公告可用于 Cluster Observability Operator 0.2.0 :
1.12.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
- 在这个版本中,Cluster Observability Operator 支持为 OpenShift Container Platform Web 控制台界面(UI)安装和管理与可观察性相关的插件。(COO-58)
1.13. Cluster Observability Operator 0.1.3 复制链接链接已复制到粘贴板!
以下公告可用于 Cluster Observability Operator 0.1.3:
1.13.1. 程序错误修复 复制链接链接已复制到粘贴板!
-
在以前的版本中,如果您试图访问
http://<prometheus_url>:9090/graph
的 Prometheus web 用户界面(UI),会显示以下出错信息:Error open React index.html: open web/ui/static/react/index.html: no such file or directory
。此发行版本解决了这个问题,Prometheus Web UI 现在可以正确显示。(COO-34)
1.14. Cluster Observability Operator 0.1.2 复制链接链接已复制到粘贴板!
以下公告可用于 Cluster Observability Operator 0.1.2:
1.14.1. CVE 复制链接链接已复制到粘贴板!
1.14.2. 程序错误修复 复制链接链接已复制到粘贴板!
- 在以前的版本中,某些集群服务版本 (CSV) 注解没有包括在 COO 的元数据中。由于这些缺少的注解,某些 COO 功能没有出现在软件包清单或 OperatorHub 用户界面中。此发行版本添加了缺少的注解,从而解决了这个问题。(COO-11)
- 在以前的版本中,COO 的自动更新无法正常工作,Operator 的较新版本不会自动替换旧版本,即使 OperatorHub 中提供了更新的版本。此发行版本解决了这个问题。(COO-12)
-
在以前的版本中,Thanos Querier 只侦听 127.0.0.1 的端口 9090 (
localhos
)上的网络流量,如果您试图访问 Thanos Querier 服务,这会导致502 Bad Gateway
错误。在这个版本中,Thanos Querier 配置已被更新,因此组件现在侦听默认端口(10902),从而解决了这个问题。现在,您还可以通过服务器端应用(SSA)修改端口,并在需要时添加代理链。(COO-14)
1.15. Cluster Observability Operator 0.1.1 复制链接链接已复制到粘贴板!
以下公告可用于 Cluster Observability Operator 0.1.1:
1.15.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
此发行版本更新了 Cluster Observability Operator,以支持在受限网络中或断开连接的环境中安装 Operator。
1.16. Cluster Observability Operator 0.1 复制链接链接已复制到粘贴板!
此发行版本在 OperatorHub 上提供了 Cluster Observability Operator 的技术预览版本。
第 2 章 Cluster Observability Operator 概述 复制链接链接已复制到粘贴板!
Cluster Observability Operator (COO)是 OpenShift Container Platform 的可选组件,旨在创建和管理高度可自定义的监控堆栈。它使集群管理员能够广泛地自动配置和管理监控需求,与默认的 OpenShift Container Platform 监控系统相比,为每个命名空间提供更定制和详细视图。
COO 部署以下监控组件:
- Prometheus - 一个高度可用的 Prometheus 实例,可以使用远程写入将指标发送到外部端点。
- Thanos Querier (可选)- 启用从中央位置查询 Prometheus 实例。
- Alertmanager (可选)- 为不同服务提供警报配置功能。
- UI 插件 (可选)- 通过插件增强可观察功能,用于监控、日志记录、分布式追踪和故障排除。
- Korrel8r (可选)- 提供可观察性信号相关性,由开源 Korrel8r 项目提供支持。
2.1. COO 与默认监控堆栈相比 复制链接链接已复制到粘贴板!
COO 组件独立于默认的集群内监控堆栈(由 Cluster Monitoring Operator (CMO) 部署和管理)。两个 Operator 部署的监控堆栈不会冲突。除了 CMO 部署的默认平台监控组件外,您还可以使用 COO 监控堆栈。
COO 和默认集群监控堆栈之间的主要区别显示在下表中:
功能 | COO | 默认监控堆栈 |
---|---|---|
范围和集成 | 提供全面的监控和分析,满足企业级需求,涵盖集群和工作负载性能。 但是,它缺少与 OpenShift Container Platform 的直接集成,通常需要外部 Grafana 实例进行仪表板。 | 仅限于集群中的核心组件,如 API 服务器和 etcd,以及特定于 OpenShift 的命名空间。 在控制台中有与 OpenShift Container Platform 的深度集成,包括控制台仪表板和警报管理。 |
配置和自定义 | 更广泛的配置选项,包括数据保留周期、存储方法和收集的数据类型。 COO 可以使用 Server-Side Apply (SSA) 将自定义资源中单个可配置字段的所有权委派给用户,从而增强自定义。 | 带有有限自定义选项的内置配置。 |
数据保留和存储 | 长期数据保留,支持历史分析和容量规划 | 数据保留时间短,专注于短期监控和实时检测。 |
2.2. 使用 COO 的主要优点 复制链接链接已复制到粘贴板!
部署 COO 可帮助您解决难以使用默认监控堆栈实现的监控要求。
2.2.1. 可扩展性 复制链接链接已复制到粘贴板!
- 用户可以在 COO 部署的监控堆栈中添加更多指标,该堆栈无法在没有丢失支持的情况下进行核心平台监控。
- 您可以通过联邦从核心平台监控接收特定于集群的指标。
- COO 支持高级监控场景,如趋势预测和异常检测。
2.2.2. 多租户支持 复制链接链接已复制到粘贴板!
- 您可以为每个用户命名空间创建监控堆栈。
- 您可以为每个命名空间部署多个堆栈,或为多个命名空间部署单个堆栈。
- COO 为不同团队启用独立的警报和接收器配置。
2.2.3. 可扩展性 复制链接链接已复制到粘贴板!
- 在单个集群中支持多个监控堆栈。
- 通过手动分片启用对大型集群的监控。
- 解决指标超过单个 Prometheus 实例功能的情况。
2.2.4. 灵活性 复制链接链接已复制到粘贴板!
- 与 OpenShift Container Platform 发行周期分离。
- 更快的发行迭代,并对更改要求进行快速响应。
- 独立管理警报规则。
2.3. COO 的目标用户 复制链接链接已复制到粘贴板!
COO 非常适合需要高定制性、可扩展性和长期数据保留的用户,特别是在复杂的多租户企业环境中。
2.3.1. 企业级用户和管理员 复制链接链接已复制到粘贴板!
企业用户需要深入的 OpenShift Container Platform 集群监控功能,包括高级性能分析、长期数据保留、趋势预测和历史分析。这些功能可帮助企业更好地理解资源使用、防止性能问题并优化资源分配。
2.3.2. 多租户环境中的操作团队 复制链接链接已复制到粘贴板!
通过多租户支持,COO 允许不同的团队为其项目和应用程序配置监控视图,使其适合具有灵活的监控需求的团队。
2.3.3. 开发和运维团队 复制链接链接已复制到粘贴板!
COO 提供精细的监控和可自定义的观察视图,以便在开发和操作期间进行深入故障排除、异常检测和性能调节。
2.4. 使用 Server-ide Apply 自定义 Prometheus 资源 复制链接链接已复制到粘贴板!
服务器端应用是一种支持协作管理 Kubernetes 资源的功能。control plane 跟踪不同的用户和控制器如何管理 Kubernetes 对象中的字段。它引入了字段管理器的概念并跟踪字段的所有权。这种集中控制提供了冲突检测和解决方案,并降低意外覆盖的风险。
与 Client-Side Apply 相比,它更具声明性,并跟踪字段管理,而不是最后应用的状态。
- 服务器端应用
- 通过更新资源的状态来声明配置管理,而无需删除并重新创建它。
- 字段管理
- 用户可以指定要更新的资源哪些字段,而不影响其他字段。
- 受管字段
-
Kubernetes 存储元数据,提供有关在 metadata 中的
managedFields
字段中管理对象的每个字段的元数据。 - Conflicts
- 如果多个管理器尝试修改同一字段,则会出现冲突。申请者可以选择覆盖、恢复控制或共享管理。
- 合并策略
- 基于管理它们的参与者,server-ide Apply merges 字段。
流程
使用以下配置添加
MonitoringStack
资源:MonitoringStack
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow coo-demo
命名空间中生成了一个名为sample-monitoring-stack
的 Prometheus 资源。运行以下命令,检索生成的 Prometheus 资源的受管字段:oc -n coo-demo get Prometheus.monitoring.rhobs -oyaml --show-managed-fields
$ oc -n coo-demo get Prometheus.monitoring.rhobs -oyaml --show-managed-fields
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
检查
metadata.managedFields
值,并观察metadata
和spec
中的一些字段是否由MonitoringStack
资源管理。 修改不是由
MonitoringStack
资源控制的字段:更改
spec.enforcedSampleLimit
,这是MonitoringStack
资源未设置的字段。创建prom-spec-edited.yaml
文件:prom-spec-edited.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用 YAML:
oc apply -f ./prom-spec-edited.yaml --server-side
$ oc apply -f ./prom-spec-edited.yaml --server-side
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您必须使用
--server-side
标志。获取更改的 Prometheus 对象,并注意,
managedFields
中有多个部分,其spec.enforcedSampleLimit
:oc get prometheus -n coo-demo
$ oc get prometheus -n coo-demo
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
修改由
MonitoringStack
资源管理的字段:使用以下 YAML 配置更改
spec.LogLevel
,它是由MonitoringStack
资源管理的字段:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 添加了
spec.logLevel
运行以下命令来应用 YAML:
oc apply -f ./prom-spec-edited.yaml --server-side
$ oc apply -f ./prom-spec-edited.yaml --server-side
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
请注意,无法使用 Server-Side Apply 更改字段
spec.logLevel
,因为它已经由observability-operator
管理。 使用
--force-conflicts
标志来强制更改。oc apply -f ./prom-spec-edited.yaml --server-side --force-conflicts
$ oc apply -f ./prom-spec-edited.yaml --server-side --force-conflicts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
prometheus.monitoring.rhobs/sample-monitoring-stack serverside-applied
prometheus.monitoring.rhobs/sample-monitoring-stack serverside-applied
Copy to Clipboard Copied! Toggle word wrap Toggle overflow with-force-conflicts
标志,字段可以被强制更改,但因为同一字段也由MonitoringStack
资源管理,所以 Observability Operator 会检测到更改,并将其恢复到MonitoringStack
资源设置的值。注意MonitoringStack
资源生成的一些 Prometheus 字段受到MonitoringStack
spec
小节中的字段的影响,如logLevel
。可以通过更改MonitoringStack
spec
来更改它们。要更改 Prometheus 对象中的
logLevel
,请应用以下 YAML 以更改MonitoringStack
资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要确认已进行了更改,请运行以下命令来查询日志级别:
oc -n coo-demo get Prometheus.monitoring.rhobs -o=jsonpath='{.items[0].spec.logLevel}'
$ oc -n coo-demo get Prometheus.monitoring.rhobs -o=jsonpath='{.items[0].spec.logLevel}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
info
info
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果 Operator 的新版本生成了一个之前由参与者生成和控制的字段,则行动者设置的值将被覆盖。
例如,您正管理一个由
MonitoringStack
资源生成的enforcedSampleLimit
字段。如果升级了 Observability Operator,Operator 的新版本会为enforcedSampleLimit
生成值,这会覆盖之前设置的值。-
MonitoringStack
资源生成的Prometheus
对象可能包含一些由监控堆栈未明确设置的字段。此时会出现这些字段,因为它们有默认值。
第 3 章 安装 Cluster Observability Operator 复制链接链接已复制到粘贴板!
作为集群管理员,您可以使用 OpenShift Container Platform Web 控制台从 OperatorHub 安装或删除 Cluster Observability Operator (COO)。OperatorHub 是一个用户界面,可与 Operator Lifecycle Manager (OLM) 结合使用,它在集群中安装和管理 Operator。
3.1. 在 web 控制台中安装 Cluster Observability Operator 复制链接链接已复制到粘贴板!
使用 OpenShift Container Platform Web 控制台从 OperatorHub 安装 Cluster Observability Operator (COO)。
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问集群。 - 已登陆到 OpenShift Container Platform Web 控制台。
流程
- 在 OpenShift Container Platform Web 控制台中,点击 Operators → OperatorHub。
-
在 Filter by keyword 框中键入
cluster observability operator
。 - 在结果列表中点 Cluster Observability Operator。
阅读 Operator 信息并配置以下安装设置:
- Update channel → stable
- 版本 → 1.0.0 或更高版本
- Installation mode → All namespaces on the cluster (default)
- Installed Namespace → Operator recommended Namespace: openshift-cluster-observability-operator
- 选择 Enable Operator recommended cluster monitoring on this Namespace
- Update approval → Automatic
- 可选: 您可以更改安装设置以满足您的要求。例如,您可以选择订阅不同的更新频道,安装一个旧的 Operator 发行版本,或者需要手动批准对 Operator 的新版本进行更新。
- 点 Install。
验证
- 进入 Operators → Installed Operators,并验证 Cluster Observability Operator 条目是否出现在列表中。
其他资源
3.2. 使用 Web 控制台卸载 Cluster Observability Operator 复制链接链接已复制到粘贴板!
如果使用 OperatorHub 安装 Cluster Observability Operator (COO),您可以在 OpenShift Container Platform Web 控制台中卸载它。
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问集群。 - 已登陆到 OpenShift Container Platform Web 控制台。
流程
- 进入 Operators → Installed Operators。
- 在列表中找到 Cluster Observability Operator 条目。
-
在这个条目中点
并选择 Uninstall Operator。
验证
- 进入 Operators → Installed Operators,验证 Cluster Observability Operator 条目是否不再出现在列表中。
第 4 章 配置 Cluster Observability Operator 以监控服务 复制链接链接已复制到粘贴板!
您可以通过配置由 Cluster Observability Operator (COO) 管理的监控堆栈来监控服务的指标。
要测试监控服务,请按照以下步骤执行:
- 部署定义服务端点的示例服务。
-
创建一个
ServiceMonitor
对象,用于指定服务如何被 COO 监控。 -
创建
MonitoringStack
对象来发现ServiceMonitor
对象。
4.1. 为 Cluster Observability Operator 部署示例服务 复制链接链接已复制到粘贴板!
此配置会在用户定义的 ns1-coo
项目中部署一个名为 prometheus-coo-example-app
的示例服务。该服务会公开自定义 version
指标。
先决条件
-
您可以使用具有
cluster-admin
集群角色或具有命名空间管理权限的用户身份访问集群。
流程
创建名为
prometheus-coo-example-app.yaml
的 YAML 文件,其中包含命名空间、部署和服务的以下配置详情:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存该文件。
运行以下命令,将配置应用到集群:
oc apply -f prometheus-coo-example-app.yaml
$ oc apply -f prometheus-coo-example-app.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证 pod 是否正在运行,并观察输出:
oc -n ns1-coo get pod
$ oc -n ns1-coo get pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE prometheus-coo-example-app-0927545cb7-anskj 1/1 Running 0 81m
NAME READY STATUS RESTARTS AGE prometheus-coo-example-app-0927545cb7-anskj 1/1 Running 0 81m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. 指定 Cluster Observability Operator 如何监控服务 复制链接链接已复制到粘贴板!
要使用您在 "Deploying a sample service for Cluster Observability Operator" 部分创建的样本服务公开的指标,您必须将监控组件配置为从 /metrics
端点中提取指标。
您可以使用一个 ServiceMonitor
对象来创建此配置,指定如何监控该服务,或指定如何监控 pod 的 PodMonitor
对象。ServiceMonitor
对象需要一个 Service
对象。PodMonitor
对象不需要,它允许 MonitoringStack
对象直接从 Pod 公开的指标端点中提取指标。
此流程演示了如何在 ns1-coo
命名空间中为名为 prometheus-coo-example-app
的示例服务创建 ServiceMonitor
对象。
先决条件
-
您可以使用具有
cluster-admin
集群角色或具有命名空间管理权限的用户身份访问集群。 - 已安装 Cluster Observability Operator。
您已在
ns1-coo
命名空间中部署了prometheus-coo-example-app
示例服务。注意prometheus-coo-example-app
示例服务不支持 TLS 身份验证。
流程
创建名为
example-coo-app-service-monitor.yaml
的 YAML 文件,其中包含以下ServiceMonitor
对象配置详情:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此配置定义
MonitoringStack
对象将引用的ServiceMonitor
对象,以提取由prometheus-coo-example-app
示例服务公开的指标数据。运行以下命令,将配置应用到集群:
oc apply -f example-coo-app-service-monitor.yaml
$ oc apply -f example-coo-app-service-monitor.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令并验证
ServiceMonitor
资源是否已创建并观察输出:oc -n ns1-coo get servicemonitors.monitoring.rhobs
$ oc -n ns1-coo get servicemonitors.monitoring.rhobs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME AGE prometheus-coo-example-monitor 81m
NAME AGE prometheus-coo-example-monitor 81m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
要提取目标 prometheus-coo-example-app
服务公开的指标数据,请创建一个 MonitoringStack
对象,该对象引用您在"指定如何监控 Cluster Observability Operator"部分中创建的 ServiceMonitor
对象。然后,此 MonitoringStack
对象可以发现服务并从中提取公开的指标数据。
先决条件
-
您可以使用具有
cluster-admin
集群角色或具有命名空间管理权限的用户身份访问集群。 - 已安装 Cluster Observability Operator。
-
您已在
ns1-coo
命名空间中部署了prometheus-coo-example-app
示例服务。 -
您已在
ns1-coo
命名空间中创建一个名为prometheus-coo-example-monitor
的ServiceMonitor
对象。
流程
-
为
MonitoringStack
对象配置创建一个 YAML 文件。在本例中,将文件命名为example-coo-monitoring-stack.yaml
。 添加以下
MonitoringStack
对象配置详情:MonitoringStack
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
MonitoringStack
对象:oc apply -f example-coo-monitoring-stack.yaml
$ oc apply -f example-coo-monitoring-stack.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令并检查输出,验证
MonitoringStack
对象是否可用:oc -n ns1-coo get monitoringstack
$ oc -n ns1-coo get monitoringstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME AGE example-coo-monitoring-stack 81m
NAME AGE example-coo-monitoring-stack 81m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下 comand,以从 Prometheus 检索有关活动目标的信息,并过滤输出以仅列出标有
app=prometheus-coo-example-app
的目标。这会验证被发现哪些目标,并由 Prometheus 使用这个特定标签主动监控。oc -n ns1-coo exec -c prometheus prometheus-example-coo-monitoring-stack-0 -- curl -s 'http://localhost:9090/api/v1/targets' | jq '.data.activeTargets[].discoveredLabels | select(.__meta_kubernetes_endpoints_label_app=="prometheus-coo-example-app")'
$ oc -n ns1-coo exec -c prometheus prometheus-example-coo-monitoring-stack-0 -- curl -s 'http://localhost:9090/api/v1/targets' | jq '.data.activeTargets[].discoveredLabels | select(.__meta_kubernetes_endpoints_label_app=="prometheus-coo-example-app")'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意上面的示例使用
jq
命令行 JSON 处理器来格式化输出,以方便使用。
4.4. 验证监控堆栈 复制链接链接已复制到粘贴板!
要验证监控堆栈是否正常工作,请访问 example 服务,然后查看收集的指标。
先决条件
-
您可以使用具有
cluster-admin
集群角色或具有命名空间管理权限的用户身份访问集群。 - 已安装 Cluster Observability Operator。
-
您已在
ns1-coo
命名空间中部署了prometheus-coo-example-app
示例服务。 -
您已在
ns1-coo
命名空间中创建一个名为prometheus-coo-example-monitor
的ServiceMonitor
对象。 -
您已在
ns1-coo
命名空间中创建一个名为example-coo-monitoring-stack
的MonitoringStack
对象。
流程
创建一个路由,以公开
prometheus-coo-example-app
服务示例。在终端中运行以下命令:oc expose svc prometheus-coo-example-app -n ns1-coo
$ oc expose svc prometheus-coo-example-app -n ns1-coo
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 从浏览器或命令行访问路由,以生成指标。
在 Prometheus pod 上执行查询,以返回总 HTTP 请求指标:
oc -n ns1-coo exec -c prometheus prometheus-example-coo-monitoring-stack-0 -- curl -s 'http://localhost:9090/api/v1/query?query=http_requests_total'
$ oc -n ns1-coo exec -c prometheus prometheus-example-coo-monitoring-stack-0 -- curl -s 'http://localhost:9090/api/v1/query?query=http_requests_total'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例(为方便起见使用
jq
进行格式化)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. 在多个命名空间中 Scrape 目标 复制链接链接已复制到粘贴板!
要在多个命名空间中 Scrape 目标,请在 MonitoringStack
对象中设置命名空间和资源选择器。
先决条件
-
您可以使用具有
cluster-admin
集群角色或具有命名空间管理权限的用户身份访问集群。 - 已安装 Cluster Observability Operator。
流程
部署以下命名空间对象和
MonitoringStack
YAML 文件:MonitoringStack
示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在命名空间
ns1-coo
中部署示例应用程序,其中包含始终会触发的警报:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在标有
monitoring.rhobs/stack: multi-ns
的另一个命名空间中部署相同的示例应用程序:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证 Prometheus 实例是否已添加新目标,以及警报是否已触发。使用 port-forward 命令公开 Prometheus 或
Monitoringstack
实例部署的 Alertmanager 用户界面。Prometheus
oc port-forward -n ns1-coo pod/prometheus-example-coo-monitoring-stack-0 9090
$ oc port-forward -n ns1-coo pod/prometheus-example-coo-monitoring-stack-0 9090
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Alertmanager
oc port-forward -n ns1-coo pod/alertmanager-example-coo-monitoring-stack-0 9093
$ oc port-forward -n ns1-coo pod/alertmanager-example-coo-monitoring-stack-0 9093
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
通过浏览
http://localhost:9090/targets
或http://localhost:9093/#/alerts
来验证目标是否已被 scrape。
第 5 章 Observability UI 插件 复制链接链接已复制到粘贴板!
5.1. Observability UI 插件概述 复制链接链接已复制到粘贴板!
您可以使用 Cluster Observability Operator (COO) 来安装和管理 UI 插件,以增强 OpenShift Container Platform Web 控制台的可观察性功能。该插件扩展默认功能,提供新的 UI 功能,用于故障排除、分布式追踪和集群日志记录。
5.1.1. 监控 复制链接链接已复制到粘贴板!
监控 UI 插件为 Advance Cluster Management (ACM) 视角在 OpenShift Web 控制台中添加监控相关的 UI 功能。
- ACM : Cluster Observability Operator (COO) 中的监控插件允许它在 Red Hat Advanced Cluster Management (RHACM) 环境中使用,为 ACM 提供与 OpenShift Container Platform 相同的监控功能。
如需更多信息,请参阅监控 UI 插件页。
5.1.2. 集群日志记录 复制链接链接已复制到粘贴板!
日志记录 UI 插件在 Observe → Logs 页的 web 控制台中提供日志数据。您可以指定过滤器、查询、时间范围和刷新率。结果显示折叠日志列表,然后扩展以显示每个日志的详细信息。
如需更多信息,请参阅日志记录 UI 插件页。
5.1.3. 故障排除 复制链接链接已复制到粘贴板!
Cluster Observability Operator 故障排除面板 UI 插件只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
OpenShift Container Platform 版本 4.16+ 的故障排除面板 UI 插件提供了可观察信号关联,由开源 Korrel8r 项目提供支持。您可以使用 Observe → Alerting 页中的故障排除面板在不同数据存储中轻松关联指标、日志、警报、网络流和其他可观察信号和资源。OpenShift Container Platform 版本 4.17+ 的用户可从 Application Launcher
访问故障排除 UI 面板。
Korrel8r 的输出显示为交互式节点图。当您点节点时,会使用该节点的具体信息自动重定向到对应的 web 控制台页,如指标、日志或 pod。
如需更多信息,请参阅 UI 插件故障排除页。
5.1.4. 分布式追踪 复制链接链接已复制到粘贴板!
分布式追踪 UI 插件在 Observe → Traces 页的 web 控制台中添加与追踪相关的功能。您可以跟踪通过前端和微服务后端的请求,帮助您识别分布式系统中的代码错误和性能瓶颈。您可以选择在集群中运行的 TempoStack
或 TempoMonolithic
多租户实例,并设置时间范围和查询来查看 trace 数据。
如需更多信息,请参阅分布式追踪 UI 插件页。
5.2. 监控 UI 插件 复制链接链接已复制到粘贴板!
Cluster Observability Operator 监控 UI 插件只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
监控 UI 插件将监控功能添加到 OpenShift Web 控制台的 Administrator 视角中。
- RHACM: Cluster Observability Operator (COO) 中的监控插件允许它在 Red Hat Advanced Cluster Management (RHACM) 环境中使用,为 ACM 提供与 OpenShift Container Platform 相同的警报功能。您可以将插件配置为从 RHACM Alertmanager 后端获取警报。这可以通过协调 RHACM 和 OpenShift Container Platform 监控工作流来实现无缝集成和用户体验。
5.2.1. 安装 Cluster Observability Operator 监控 UI 插件 复制链接链接已复制到粘贴板!
监控 UI 插件为 Advance Cluster Management (ACM) 视角在 OpenShift Web 控制台中添加监控相关的 UI 功能。
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问集群。 - 已登陆到 OpenShift Container Platform Web 控制台。
- 已安装 Cluster Observability Operator
流程
- 在 OpenShift Container Platform web 控制台中,点 Operators → Installed Operators 并选择 Cluster Observability Operator
- 选择 UI Plugin 选项卡(在选项卡列表的最右侧),然后按 Create UIPlugin
选择 YAML 视图,输入以下内容,然后按 Create :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 启用 RHACM 功能。您必须配置 Alertmanager 和 ThanosQuerier Service 端点。
5.3. Logging UI 插件 复制链接链接已复制到粘贴板!
logging UI 插件会在 OpenShift Container Platform web 控制台的 Observe → Logs 页中显示日志数据。您可以指定过滤条件、查询、时间范围和刷新率,其结果显示为一个折叠的日志列表,您可以扩展它来显示每个日志的更多详细信息。
当您在 OpenShift Container Platform 版本 4.16+ 上部署 Troubleshooting UI 插件时,它会连接到 Korrel8r 服务,并添加来自 Administration 视角的直接链接(从 Observe → Logs 页添加到 Observe → Metrics 页并带有关联的 PromQL 查询)。它还会添加一个来自 Administration 视角警报详情 的 See Related Logs 链接(从 Observe → Alerting 添加到 Observe → Logs 页,并带有所选的相关过滤集。
插件的功能可以归类为:
- dev-console
- 将日志记录视图添加到 Developer 视角。
- alerts
- 将 Web 控制台警报与 Loki 规则器中定义的基于日志的警报合并。在警报详情视图中添加基于日志的指标图表。
- dev-alerts
- 将 Web 控制台警报与 Loki 规则器中定义的基于日志的警报合并。在 Developer 视角的警报详情视图中添加基于日志的指标图。
对于 Cluster Observability Operator (COO) 版本,下表显示了对 OpenShift Container Platform 版本中的这些功能的支持信息:
COO 版本 | OCP 版本 | 功能 |
---|---|---|
0.3.0+ | 4.12 |
|
0.3.0+ | 4.13 |
|
0.3.0+ | 4.14+ |
|
5.3.1. 安装 Cluster Observability Operator 日志记录 UI 插件 复制链接链接已复制到粘贴板!
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 - 已登陆到 OpenShift Container Platform Web 控制台。
- 已安装 Cluster Observability Operator。
-
在集群中有一个
LokiStack
实例。
流程
- 在 OpenShift Container Platform web 控制台中,点 Operators → Installed Operators 并选择 Cluster Observability Operator。
- 选择 UI Plugin 选项卡(位于选项卡列表的最右侧),然后点 Create UIPlugin。
选择 YAML 视图,输入以下内容,然后点 Create :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
schema
是otel
,viaq
, 或select
之一。如果没有指定值,则默认为viaq
。在选择select
时,您可以在运行查询时在 UI 中选择模式。
注意日志记录 UI 插件的已知问题 - 如需更多信息,请参阅 OU-587。
-
schema
功能只在 OpenShift Container Platform 4.15 及更新的版本中被支持。在早期版本的 OpenShift Container Platform 中,日志记录 UI 插件将仅使用viaq
属性,忽略可能设置的任何其他值。 -
非管理员用户无法使用带有 Red Hat OpenShift 版本 5.8 到 6.2 日志记录的
otel
属性查询日志。这个问题将在以后的日志记录发行版本中解决。(LOG-6589) -
在 Red Hat OpenShift 版本 5.9 中,未设置
severity_text
Otel 属性。
5.4. 分布式追踪 UI 插件 复制链接链接已复制到粘贴板!
分布式追踪 UI 插件将与追踪相关的功能添加到 OpenShift Web 控制台的 Administrator 视角中,位于 Observe → Traces。您可以跟踪通过前端和微服务后端的请求,帮助您识别分布式系统中的代码错误和性能瓶颈。
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问集群。 - 已登陆到 OpenShift Container Platform Web 控制台。
- 已安装 Cluster Observability Operator
流程
- 在 OpenShift Container Platform web 控制台中,点 Operators → Installed Operators 并选择 Cluster Observability Operator
- 选择 UI Plugin 选项卡(在选项卡列表的最右侧),然后按 Create UIPlugin
选择 YAML 视图,输入以下内容,然后按 Create :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问集群。 - 已登陆到 OpenShift Container Platform Web 控制台。
- 已安装 Cluster Observability Operator。
- 已安装 Cluster Observability Operator distributed tracing UI 插件。
-
在集群中有一个
TempoStack
或TempoMonolithic
多租户实例。
流程
- 在 OpenShift Container Platform Web 控制台的 Administrator 视角中,点 Observe → Traces。
选择
TempoStack
或TempoMonolithic
多租户实例,并为要加载的 trace 设置时间范围和查询。trace 显示在 scatter-plot 中,显示 trace 开始时间、持续时间和 span 数量。在 scatter 图表下,有一个跟踪列表,显示
Trace Name
、Spans
的数量和Duration
等信息。点一个 trace 名称链接。
所选 trace 的 trace 详情页包括了 trace 中所有范围的 Gantt 图表。选择一个 span 来显示配置的属性的分类。
5.5. UI 插件故障排除 复制链接链接已复制到粘贴板!
Cluster Observability Operator 故障排除面板 UI 插件只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
OpenShift Container Platform 版本 4.16+ 的故障排除 UI 插件提供可观察信号关联,由开源 Korrel8r 项目提供支持。使用 Observe → Alerting 下的故障排除面板,您可以在不同的数据存储中轻松关联指标、日志、警报、网络流和其他可观察信号和资源。OpenShift Container Platform 版本 4.17+ 的用户可从 Application Launcher
访问故障排除 UI 面板。
当您安装故障排除 UI 插件时,名为 korrel8r
的 Korrel8r 服务会部署到同一命名空间中,并且能够从其关联引擎中查找相关的可观察信号和 Kubernetes 资源。
Korrel8r 的输出以 OpenShift Container Platform Web 控制台中的交互式节点图的形式显示。图中的节点代表资源类型或信号,而边缘代表关系。当您点节点时,会使用该节点的具体信息自动重定向到对应的 web 控制台页,如指标、日志或 pod。
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问集群。 - 已登陆到 OpenShift Container Platform Web 控制台。
- 已安装 Cluster Observability Operator
流程
- 在 OpenShift Container Platform web 控制台中,点 Operators → Installed Operators 并选择 Cluster Observability Operator
- 选择 UI Plugin 选项卡(在选项卡列表的最右侧),然后按 Create UIPlugin
选择 YAML 视图,输入以下内容,然后按 Create :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.2. 使用 Cluster Observability Operator 对 UI 插件进行故障排除 复制链接链接已复制到粘贴板!
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问 OpenShift Container Platform 集群。如果集群版本是 4.17+,您可以从 Application Launcher访问 UI 面板。
- 已登陆到 OpenShift Container Platform Web 控制台。
- 已安装 OpenShift Container Platform Logging,如果要视觉化关联的日志。
- 已安装 OpenShift Container Platform Network Observability,如果要视觉化关联的 netflows。
- 已安装 Cluster Observability Operator。
已安装 Cluster Observability Operator 故障排除 UI 插件。
注意故障排除面板依赖于集群中安装的可观察信号存储。Kuberenetes 资源、警报和指标在 OpenShift Container Platform 集群中始终可用。其他信号类型需要安装可选组件:
- Logs: 由红帽提供的 Red Hat Openshift Logging (集合)和 Loki Operator (存储)
- Network events: 红帽提供的网络可观察性(集合)和 Loki Operator (存储)
流程
在 Web 控制台的 admin 视角中,进入到 Observe → Alerting,然后选择警报。如果警报关联了项目,则会在警报详情页的图表上方显示 Troubleshooting Panel 链接。
点 Troubleshooting Panel 链接以显示面板。
-
面板由查询详情和查询结果的拓扑图组成。所选警报转换为 Korrel8r 查询字符串,并发送到
korrel8r
服务。结果显示为一个连接了返回的信号和资源的图形网络。这是一个 neighbourhood 图形,从当前资源开始,包括了从起点开始的 3 个步骤的相关对象。点图中的节点会进入相应的 web 控制台页面。 您可以使用故障排除面板查找与所选警报相关的资源。
注意点某个节点有时可能会显示比图形上指示要少的结果。这是一个已知问题,将在以后的发行版本中解决。
-
Alert (1): 此节点是图中的起点,代表 web 控制台中显示的
KubeContainerWaiting
警报。 -
Pod (1): 此节点表示与此警报关联的单个
Pod
资源。点此节点将打开控制台搜索,直接显示相关的 pod。 - Event (2): 与 pod 关联的两个 Kuberenetes 事件。点此节点查看事件。
- Logs (74): 此 pod 具有 74 行日志,您可以通过点这个节点来访问这些日志。
- Metrics (105): 与 pod 关联的多个指标。
-
Network (6): 网络事件,代表 pod 通过网络进行通信。图中的其余节点代表 pod 与其进行通信的
Service
,Deployment
和DaemonSet
资源。 - Focus:点此按钮更新图形。默认情况下,当您点图形中的节点时,图形本身不会改变。相反,主 Web 控制台页会改变,然后使用页面上的链接导航到其他资源,而故障排除面板本身则保持打开且没有变化。要强制更新故障排除面板中的图形,请点 Focus。这将使用 web 控制台中的当前资源作为起点来绘制新的图形。
Show Query: 点这个按钮启用一些实验性功能:
- Hide Query 隐藏实验性功能。
- 标识图形起点的查询。查询语言是用于创建图形的 Korrel8r 关联引擎的一部分,是实验性的,可能会在以后有所变化。该查询由 Focus 按钮更新,以对应于主 Web 控制台窗口中的资源。
Neighbourhood depth 用于显示一个较小的或较大的邻居。
注意在大型集群中设置较大的值可能会因为结果太大导致查询失败。
目标类 会导致目标定向搜索而不是邻居搜索。目标定向搜索显示从起点到目标类的所有路径,该类表示资源类型或信号。目标类的格式是实验性的,可能会改变。当前,以下目标有效:
-
k8s:RESOURCE[VERSION.[GROUP]]
识别 kuberenetes 资源的 kind。例如k8s:Pod
或k8s:Deployment.apps.v1
。 -
alert:alert
代表任何警报。 -
metric:metric
代表任何指标。 -
netflow:network
代表任何网络可观察网络事件。 -
log:LOG_TYPE
代表存储的日志,其中LOG_TYPE
需要是application
,infrastructure
或audit
之一。
-
-
Alert (1): 此节点是图中的起点,代表 web 控制台中显示的
5.5.3. 创建示例警报 复制链接链接已复制到粘贴板!
要触发警报作为在故障排除 UI 面板中使用的起点,您可以有意部署一个有配置错误的容器。
流程
使用以下 YAML (通过命令行或在 web 控制台中),在系统命名空间中创建一个有问题的部署:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看警报:
选 Observe → Alerting,再点 clear all filters。查看
Pending
警报。重要警报先显示为
Pending
状态。它们不会立即开始Firing
,而是在容器崩溃一段时间后才会启动 。您可以直接查看Pending
警报,这样就无需等待很长时间才能看到它们。-
选择
KubeContainerWaiting
、KubePodCrashLooping
或KubePodNotReady
警报之一,然后点链接打开故障排除面板。或者,如果面板已经打开,点 "Focus" 按钮来更新图形。
第 6 章 监控 API 参考 复制链接链接已复制到粘贴板!
资源类型是 MonitoringStack
和 ThanosQuerier
。
6.1. MonitoringStack 复制链接链接已复制到粘贴板!
MonitoringStack
是 monitoringstacks API 的 Schema。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
| true |
| string |
| true |
object |
有关 | true | |
object |
| true | |
object |
| false |
6.2. MonitoringStack.spec 复制链接链接已复制到粘贴板!
MonitoringStackSpec
是所需 MonitoringStack
对象的规格。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
object |
定义
默认: | false | |
| enum | 设置配置的组件的日志级别。
Enum:
默认 : | false |
object |
| false | |
|
|
为 | false |
object | 定义 prometheus 配置。
默认: | false | |
object |
| false | |
object |
为
默认: | false | |
| string |
保留数据的时长。字符串必须与正则表达式
默认 : | false |
|
为 | false |
6.3. MonitoringStack.spec.alertmanagerConfig 复制链接链接已复制到粘贴板!
定义 Alertmanager
配置。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 布尔值 |
禁用 默认 :false | false |
object |
为 | false |
为 Alertmanager
web 服务器配置 TLS 选项。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
object | 对 Web 服务器的 TLS 公共证书的引用。 | true | |
object | 引用用于验证 Web 服务器证书的 root 证书颁发机构。 | true | |
object | 对 web 服务器的 TLS 私钥的引用。 | true |
对 Web 服务器的 TLS 公共证书的引用。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 要选择的对象命名空间中的 secret 名称。 | true |
引用用于验证 Web 服务器证书的 root 证书颁发机构。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 要选择的对象命名空间中的 secret 名称。 | true |
对 web 服务器的 TLS 私钥的引用。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 要选择的对象命名空间中的 secret 名称。 | true |
6.8. MonitoringStack.spec.namespaceSelector 复制链接链接已复制到粘贴板!
MonitoringStack
资源的命名空间选择器。
-
要监控所有内容,设置空映射选择器。例如,
namespaceSelector: {}
。 -
要监控创建
MonitoringStack
实例的命名空间中的资源,设置为 null。例如,namespaceSelector:
。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
|
| false | |
|
|
| false |
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
| true |
| string |
| true |
|
|
| false |
6.10. MonitoringStack.spec.prometheusConfig 复制链接链接已复制到粘贴板!
定义 Prometheus 配置。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 布尔值 |
启用 Prometheus,以通过 | false |
| 布尔值 |
启用 Prometheus 作为 Prometheus 远程写入协议的接收器。默认值为 | false |
|
|
为 Prometheus 定义 | false |
object | 为 Prometheus 定义持久性卷声明。 | false | |
| 为 Prometheus 定义远程写入。 | false | |
| 整数 | 为 Prometheus 部署部署的副本数。 格式 :int32 默认 :2 最小: 0 | false |
| string | 提取之间的默认间隔。 | false |
object | 为 Prometheus web 服务器配置 TLS 选项。 | false |
为 Prometheus 定义持久性卷声明。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
|
|
| false |
object |
如果置备程序或外部控制器可以支持特定的数据源,它将根据指定数据源的内容创建新卷。
当启用 | false | |
object |
如果需要非空卷,则
当指定对象的类型与某些安装的卷填充或动态置备程序匹配时,卷绑定才会成功。此字段将替换
为了向后兼容,当没有在
Beta :使用此字段需要启用
Alpha: 使用 | false | |
object |
如果启用了 如需更多信息,请参阅 Kubernetes 文档 | false | |
object |
| false | |
| string |
| false |
| string |
如果指定,CSI 驱动程序将使用对应的
如果未指定,并且 如需更多信息,请参阅 Kubernetes 文档
Beta: 使用此字段需要启用 | false |
| string |
| false |
| string |
| false |
dataSource
字段可用于指定:
-
一个现有的
VolumeSnapshot
对象 (snapshot.storage.k8s.io/VolumeSnapshot
) - 一个现有的 PVC (PersistentVolumeClaim)
如果置备程序或外部控制器可以支持特定的数据源,它将根据指定数据源的内容创建新卷。当启用 AnyVolumeDataSource
功能门时,dataSource
内容将复制到 dataSourceRef
中,如果未指定 dataSourceRef.namespace
,dataSourceRef
内容将复制到 dataSource
中。如果指定了命名空间,则不会将 dataSourceRef
复制到 dataSource
中。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
| true |
| string |
| true |
| string |
| false |
如果需要非空卷,则 dataSourceRef
指定要使用数据填充卷的对象。这可以是来自非空 API 组(非核心对象)或 PersistentVolumeClaim
对象的任何对象。当指定对象的类型与某些安装的卷填充或动态置备程序匹配时,卷绑定才会成功。
此字段将替换 dataSource
字段的功能,如果两个字段都不是空的,则它们必须具有相同的值。为了向后兼容,当 namespace
没有在 dataSourceRef
中指定时,如果其中一个为空,则两个字段 (dataSource
和 dataSourceRef
) 都会自动设置为相同的值,另一个是非空的。当在 dataSourceRef
中指定了 namespace
时,dataSource
不会设置为相同的值,且必须为空。
dataSource
和 dataSourceRef
之间有三个重要区别:
-
虽然
dataSource
只允许两种特定类型的对象,但dataSourceRef
允许任何 non-core 对象和PersistentVolumeClaim
对象。 -
虽然
dataSource
忽略了禁止的值(丢弃它们),dataSourceRef
保留所有值,并在指定禁止的值时生成错误。 -
虽然
dataSource
只允许本地对象,但dataSourceRef
允许任何命名空间中的对象。
Beta :使用此字段需要启用 AnyVolumeDataSource
功能门。
Alpha: 使用 dataSourceRef
的 namespace 字段需要启用 CrossNamespaceVolumeDataSource
功能门。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
| true |
| string |
| true |
| string |
如果没有指定 | false |
| string |
请注意,当指定命名空间时,引用命名空间中需要一个
Alpha: 此字段需要启用 | false |
resources
代表卷应具有的最小资源。
如果启用了 RecoverVolumeExpansionFailure
功能,用户可以指定小于之前值的资源要求,但仍必须高于声明的 status 字段中记录的容量。
如需更多信息,请参阅 Kubernetes 文档
Name | 类型 | 描述 | 必填 |
---|---|---|---|
|
|
如需更多信息,请参阅 Kubernetes 文档 | false |
|
|
如果容器省略了 如需更多信息,请参阅 Kubernetes 文档 | false |
selector
是要考虑绑定的卷的标签查询。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
|
| false | |
|
|
| false |
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
| true |
| string |
| true |
|
|
如果运算符是 | false |
RemoteWriteSpec
定义将示例从 Prometheus 写入远程端点的配置。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 将示例发送到的端点的 URL。 | true |
object | URL 的授权部分。
| false | |
object | 用于 URL 的 AzureAD。
| false | |
object | URL 的 BasicAuth 配置。
| false | |
| string |
警告:不应使用此字段,因为令牌值会以明文形式出现。首选使用 弃用:这会在以后的版本中删除。 | false |
| string | 从中读取 URL 的 bearer 令牌的文件。
弃用:这会在以后的版本中删除。首选使用 | false |
| 布尔值 | 是否启用 HTTP2。 | false |
| 布尔值 | 配置 HTTP 请求是否遵循 HTTP 3xx 重定向。 它需要 Prometheus >= v2.26.0。 | false |
|
| 要与每个远程写入请求一起发送的自定义 HTTP 标头。请注意,由 Prometheus 本身设置的标头无法覆盖。 它需要 Prometheus >= v2.25.0。 | false |
| enum | Remote Write 消息的版本在写入端点时使用。
Enum: | false |
object |
| false | |
| string | 远程写入队列的名称,如果指定,它必须是唯一的。名称用于指标并登录以区分队列。 它需要 Prometheus >= v2.15.0。 | false |
| string |
它需要 Prometheus >= v2.43.0 或 Alertmanager >= 0.25.0。 | false |
object | URL 的 OAuth2 配置。
| false | |
|
它需要 Prometheus >= v2.43.0 或 Alertmanager >= 0.25.0。 | false | |
| 布尔值 |
是否使用环境变量 ( 它需要 Prometheus >= v2.43.0 或 Alertmanager >= 0.25.0。 | false |
| string |
| false |
object |
| false | |
| string | 对远程写入端点的请求超时。 | false |
| 布尔值 |
启用通过远程写入发送 exemplars。请注意,必须使用 它需要 Prometheus >= v2.27.0。 | false |
| 布尔值 | 启用发送原生直方图,也称为通过远程写入的稀疏直方图。 它需要 Prometheus >= v2.40.0。 | false |
object |
| false | |
object | 用于 URL 的 TLS 配置。 | false | |
| 远程写入重新标记配置的列表。 | false |
URL 的授权部分。
- 它需要 Prometheus >= v2.26.0。
-
无法同时设置
sigv4
、basicAuth
、oauth2
或azureAd
。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
object | 选择命名空间中包含用于身份验证的凭证的 Secret 的键。 | false | |
| string |
从中读取 secret 的文件,与 | false |
| string | 定义身份验证类型。该值不区分大小写。 "Basic" 是不支持的值。 默认:"Bearer" | false |
选择命名空间中包含用于身份验证的凭证的 Secret 的键。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
用于 URL 的 AzureAD。
- 它需要 Prometheus >= v2.45.0。
-
不能与
authorization
,basicAuth
,oauth2
, 或sigv4
同时设置。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| enum | Azure Cloud。选项为 'AzurePublic'、'AzureChina' 或 'AzureGovernment'。
Enum: | false |
object |
| false | |
object |
| false | |
object |
| false |
ManagedIdentity 定义 Azure User-assigned Managed 身份。
-
不能与
oauth
或sdk
同时设置。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 客户端 ID | true |
OAuth
定义用于验证的 oauth 配置。
-
不可与
managedIdentity
或sdk
同时设置。 - 它需要 Prometheus >= v2.48.0。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
| true |
object |
| true | |
| string |
| true |
clientSecret
指定包含用于身份验证的 Azure Active Directory 应用程序的客户端 secret 的 Secret 密钥。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
SDK
定义用于验证的 Azure SDK 配置。
如需更多信息,请参阅 Azure SDK 身份验证。
-
不可与
oauth
或managedIdentity
同时设置。 - 它需要 Prometheus >= 2.52.0。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
| false |
URL 的 BasicAuth 配置。
-
不能同时设置
sigv4
、authorization
、oauth2
或azureAd
。
password
指定包含用于身份验证的密码的 Secret 的键。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
username
指定包含用于身份验证的用户名的 Secret 的键。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
metadataConfig
配置将一系列元数据发送到远程存储。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 布尔值 | 定义是否将指标元数据发送到远程存储。 | false |
| string | 定义如何将指标元数据发送到远程存储的频率。 | false |
URL 的 OAuth2 配置。
- 它需要 Prometheus >= v2.27.0。
-
不能与
sigv4
,authorization
,basicAuth
, 或azureAd
同时设置。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
object |
| true | |
object |
| true | |
| string |
| true |
|
|
| false |
| string |
它需要 Prometheus >= v2.43.0 或 Alertmanager >= 0.25.0。 | false |
|
它需要 Prometheus >= v2.43.0 或 Alertmanager >= 0.25.0。 | false | |
| 布尔值 |
是否使用环境变量 ( 它需要 Prometheus >= v2.43.0 或 Alertmanager >= 0.25.0。 | false |
| string |
| false |
|
|
| false |
object | 连接到 OAuth2 服务器时要使用的 TLS 配置。 它需要 Prometheus >= v2.43.0。 | false |
clientId
指定包含 OAuth2 客户端 ID 的 Secret 或 ConfigMap 的键。
包含用于目标的数据的 ConfigMap。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要选择的密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 ConfigMap 或是其键 | false |
包含用于目标的数据的 secret。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
clientSecret
指定包含 OAuth2 客户端 secret 的 Secret 的密钥。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
SecretKeySelector 选择 Secret 的密钥。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
连接到 OAuth2 服务器时要使用的 TLS 配置。
- 它需要 Prometheus >= v2.43.0。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
object | 验证服务器证书时使用的证书颁发机构。 | false | |
object | 执行 client-authentication 时要出现的客户端证书。 | false | |
| 布尔值 | 禁用目标证书验证。 | false |
object | 包含目标客户端密钥文件的 secret。 | false | |
| enum | 最大可接受的 TLS 版本。 它需要 Prometheus >= v2.41.0。
Enum: | false |
| enum | 最低可接受的 TLS 版本。 它需要 Prometheus >= v2.35.0。
Enum: | false |
| string | 用于验证目标的主机名。 | false |
验证服务器证书时使用的证书颁发机构。
包含用于目标的数据的 ConfigMap。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要选择的密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 ConfigMap 或是其键 | false |
包含用于目标的数据的 secret。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
执行 client-authentication 时要出现的客户端证书。
包含用于目标的数据的 ConfigMap。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要选择的密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 ConfigMap 或是其键 | false |
包含用于目标的数据的 secret。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
包含目标客户端密钥文件的 secret。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
SecretKeySelector 选择 Secret 的密钥。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
QueueConfig 允许调整远程写入队列参数。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
| false |
| 整数 |
| false |
| string |
| false |
| 整数 |
| false |
| 整数 |
| false |
| 整数 |
| false |
| string |
| false |
| 整数 |
| false |
| 布尔值 | 从远程写入存储中接收到 429 状态代码时重试。 这是一个 实验性功能,它可能会以中断的方式改变任何即将推出的版本。 | false |
| string |
它需要 Prometheus >= v2.50.0。 | false |
Sigv4 允许为 URL 配置 AWS 的 Signature Verification 4。
- 它需要 Prometheus >= v2.26.0。
-
不能与
authorization
,basicAuth
,oauth2
, 或azureAd
同时设置。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
object |
| false | |
| string |
| false |
| string |
| false |
| string |
| false |
object |
| false |
AccessKey
是 AWS API 密钥。如果没有指定,则使用环境变量 AWS_ACCESS_KEY_ID
。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
SecretKey
是 AWS API secret。如果没有指定,则使用环境变量 AWS_SECRET_ACCESS_KEY
。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
用于 URL 的 TLS 配置。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
object | 验证服务器证书时使用的证书颁发机构。 | false | |
| string | Prometheus 容器中用于目标的 CA 证书的路径。 | false |
object | 执行 client-authentication 时要出现的客户端证书。 | false | |
| string | 目标的 Prometheus 容器中客户端证书文件的路径。 | false |
| 布尔值 | 禁用目标证书验证。 | false |
| string | 目标的 Prometheus 容器中客户端密钥文件的路径。 | false |
object | 包含目标客户端密钥文件的 secret。 | false | |
| enum | 最大可接受的 TLS 版本。 它需要 Prometheus >= v2.41.0。
Enum: | false |
| enum | 最低可接受的 TLS 版本。 它需要 Prometheus >= v2.35.0。
Enum: | false |
| string | 用于验证目标的主机名。 | false |
验证服务器证书时使用的证书颁发机构。
包含用于目标的数据的 ConfigMap。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要选择的密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 ConfigMap 或是其键 | false |
包含用于目标的数据的 secret。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
执行 client-authentication 时要出现的客户端证书。
包含用于目标的数据的 ConfigMap。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要选择的密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 ConfigMap 或是其键 | false |
包含用于目标的数据的 secret。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
包含目标客户端密钥文件的 secret。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 引用的名称。需要此字段,但因为向后兼容的目的,它可以为空。具有空值的此类实例几乎肯定是错误的。 如需更多信息,请参阅 Kubernetes 文档 | false |
| 布尔值 | 指定是否必须定义 Secret 或其密钥 | false |
RelabelConfig 允许为目标、警报、提取示例和远程写入示例动态重写标签。
如需更多信息,请参阅 Prometheus Docs
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| enum | 根据正则表达式匹配要执行的操作。
Enum:
默认 : | false |
| 整数 | modulus 采用 source 标签值的哈希。
仅在操作为 格式 :int64 | false |
| string | 匹配提取值的正则表达式。 | false |
| string | 如果正则表达式匹配,则执行 replace 操作的替换值。 正则表达式捕获组可用。 | false |
| string |
| false |
|
| source 标签从现有标签中选择值。其内容使用配置的 Separator 连接,并与配置的正则表达式匹配。 | false |
| string | 生成的字符串写入替换标签。
对于 正则表达式捕获组可用。 | false |
6.57. MonitoringStack.spec.prometheusConfig.webTLSConfig 复制链接链接已复制到粘贴板!
为 Prometheus web 服务器配置 TLS 选项。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
object | 对 Web 服务器的 TLS 公共证书的引用。 | true | |
object | 引用用于验证 Web 服务器证书的 root 证书颁发机构。 | true | |
object | 对 web 服务器的 TLS 私钥的引用。 | true |
对 Web 服务器的 TLS 公共证书的引用。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 要选择的对象命名空间中的 secret 名称。 | true |
引用用于验证 Web 服务器证书的 root 证书颁发机构。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 要选择的对象命名空间中的 secret 名称。 | true |
对 web 服务器的 TLS 私钥的引用。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 要选择的对象命名空间中的 secret 名称。 | true |
6.61. MonitoringStack.spec.resourceSelector 复制链接链接已复制到粘贴板!
MonitoringStack
资源的标签选择器。
-
要监控所有内容,设置空映射选择器。例如,
resourceSelector: {}
。 -
要禁用服务发现,设置为 null。例如,
resourceSelector:
。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
|
| false | |
|
|
| false |
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
| true |
| string |
| true |
|
|
| false |
6.63. MonitoringStack.spec.resources 复制链接链接已复制到粘贴板!
为 MonitoringStack
Pod 定义资源请求和限值。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
|
这是一个 alpha 字段,需要启用 此字段不可变。它只能为容器设置。 | false | |
|
|
如需更多信息,请参阅 Kubernetes 文档 | false |
|
|
如需更多信息,请参阅 Kubernetes 文档 | false |
6.64. MonitoringStack.spec.resources.claims[index] 复制链接链接已复制到粘贴板!
ResourceClaim
引用 PodSpec.ResourceClaims
中的一个条目。
Name | 类型 | 描述 | 必需 |
---|---|---|---|
| string |
| true |
| string |
| false |
6.65. MonitoringStack.spec.tolerations[index] 复制链接链接已复制到粘贴板!
此 Toleration
附加到的 pod,它可以容限与 <key,value,effect>
匹配的任何污点(使用匹配 operator <operator>
)
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
| false |
| string |
| false |
| string |
| false |
| 整数 |
格式 :int64 | false |
| string |
| false |
6.66. MonitoringStack.status 复制链接链接已复制到粘贴板!
MonitoringStackStatus
定义 MonitoringStack
实例的观察状态。它应该始终从集群和/或外界的状态重建。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
|
| true |
6.67. MonitoringStack.status.conditions[index] 复制链接链接已复制到粘贴板!
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
格式:date-time | true |
| string |
| true |
| string |
| true |
| enum | 条件的状态
Enum: | true |
| string |
在 CamelCase 或在 | true |
| 整数 |
格式 :int64 最小: 0 | false |
6.68. ThanosQuerier 复制链接链接已复制到粘贴板!
ThanosQuerier 概述了由此堆栈管理的 Thanos querier 组件
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
| true |
| string |
| true |
object |
有关 | true | |
object |
| false | |
| object |
| false |
6.69. ThanosQuerier.spec 复制链接链接已复制到粘贴板!
ThanosQuerierSpec
定义了一个单个的 Thanos Querier 实例。这意味着选择 MonitoringStack
实例要查询的标签选择器,以及可选的命名空间选择器和用于重复数据删除的副本标签列表。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
object | 选择要统一的监控堆栈的选择器。 | true | |
object |
选择要从中发现 | false | |
|
| false | |
object | 为 Thanos web 服务器配置 TLS 选项。 | false |
6.70. ThanosQuerier.spec.selector 复制链接链接已复制到粘贴板!
选择要统一的监控堆栈的选择器。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
|
| false | |
|
|
| false |
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string |
| true |
| string |
| true |
|
|
| false |
6.72. ThanosQuerier.spec.namespaceSelector 复制链接链接已复制到粘贴板!
选择要从中发现 MonitoringStack
对象的命名空间选择器。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 布尔值 | 布尔值描述是否都选择了所有命名空间,而不是使用一个列表来限制它们。 | false |
|
| 命名空间名称列表。 | false |
6.73. ThanosQuerier.spec.webTLSConfig 复制链接链接已复制到粘贴板!
为 Thanos web 服务器配置 TLS 选项。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
object | 对 Web 服务器的 TLS 公共证书的引用。 | true | |
object | 引用用于验证 Web 服务器证书的 root 证书颁发机构。 | true | |
object | 对 web 服务器的 TLS 私钥的引用。 | true |
6.74. ThanosQuerier.spec.webTLSConfig.certificate 复制链接链接已复制到粘贴板!
对 Web 服务器的 TLS 公共证书的引用。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 要选择的对象命名空间中的 secret 名称。 | true |
引用用于验证 Web 服务器证书的 root 证书颁发机构。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| string | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 要选择的对象命名空间中的 secret 名称。 | true |
6.76. ThanosQuerier.spec.webTLSConfig.privateKey 复制链接链接已复制到粘贴板!
对 web 服务器的 TLS 私钥的引用。
Name | 类型 | 描述 | 必填 |
---|---|---|---|
| 字符串 | 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 | true |
| string | 要选择的对象命名空间中的 secret 名称。 | true |
Legal Notice
复制链接链接已复制到粘贴板!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.