5.4. UI 插件故障排除
Cluster Observability Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
OpenShift Container Platform 版本 4.16+ 的故障排除 UI 插件提供可观察信号关联,由开源 Korrel8r 项目提供支持。使用 Observe
当您安装故障排除 UI 插件时,名为 korrel8r
的 Korrel8r 服务会部署到同一命名空间中,并且能够从其关联引擎中查找相关的可观察信号和 Kubernetes 资源。
Korrel8r 的输出以 OpenShift Container Platform Web 控制台中的交互式节点图的形式显示。图中的节点代表资源类型或信号,而边缘代表关系。当您点节点时,您可以使用该节点的具体信息自动重定向到对应的 web 控制台页面,如 metric、log、pod。
5.4.1. 安装 Cluster Observability Operator Troubleshooting 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 :
apiVersion: observability.openshift.io/v1alpha1 kind: UIPlugin metadata: name: troubleshooting-panel spec: type: TroubleshootingPanel
5.4.2. 使用 Cluster Observability Operator 对 UI 插件进行故障排除
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问 OpenShift Container Platform 集群。如果集群版本是 4.17+,您可以从 Application Launcher 访问 UI 面板。 - 已登陆到 OpenShift Container Platform Web 控制台。
- 如果要视觉化关联的日志,则已安装 OpenShift Container Platform Logging。
- 如果要视觉化关联了 netflows,则已安装 OpenShift Container Platform Network Observability。
- 已安装 Cluster Observability Operator。
已安装 Cluster Observability Operator 故障排除 UI 插件。
注意故障排除面板依赖于集群中安装的可观察信号存储。Kuberenetes 资源、警报和指标在 OpenShift Container Platform 集群中始终可用。其他信号类型需要安装可选组件:
- 日志 : 由红帽提供的 Red Hat Openshift Logging (集合)和 Loki Operator (存储)
- 网络事件: 红帽提供的网络可观察性(集合)和 Loki Operator (存储)
流程
在 Web 控制台的 admin 视角中,导航到 Observe
Alerting,然后选择警报。如果警报关联了项目,则会在警报详情页面的图表上方显示 Troubleshooting Panel 链接。 单击 Troubleshooting Panel 链接以显示面板。
-
面板由查询详情和查询结果的拓扑图组成。所选警报转换为 Korrel8r 查询字符串,并发送到
korrel8r
服务。结果显示为一个图形网络,连接返回的信号和资源。这是一个邻居图形,从当前资源开始,包括从起点到 3 个步骤的相关对象。点图中的节点会进入相应的 web 控制台页面。 您可以使用故障排除面板查找与所选警报相关的资源。
注意点某个节点有时可能会显示比图形上指示要少的结果。这是一个已知问题,将在以后的发行版本中解决。
-
警报(1): 此节点是图中的起点,代表 web 控制台中显示的
KubeContainerWaiting
警报。 -
容器集(1) :此节点表示与此警报关联的单个
Pod
资源。单击此节点将打开控制台搜索,直接显示相关的 pod。 - 事件(2) :与 pod 关联的两个 Kuberenetes 事件。点此节点查看事件。
- 日志(74): 此 pod 具有 74 行的日志行,您可以通过点这个节点来访问这些日志。
- Metrics (105): 与 pod 关联的多个指标。
-
网络(6): 有网络事件,即 pod 通过网络通信。图中的其余节点代表 pod 进行通信的服务、
Deployment
和DaemonSet
资源。 - 关注 : 点此按钮更新图形。默认情况下,当您点图形中的节点时,图形本身不会改变。相反,主 Web 控制台页面会改变,然后使用页面上的链接导航到其他资源,而故障排除面板本身则保持打开且保持不变。要强制更新故障排除面板中的图形,请单击oc us。这将使用 web 控制台中的当前资源作为起点来绘制新的图形。
show Query: 点这个按钮启用一些实验性功能:
- 隐藏 Query 隐藏了实验性功能。
- 标识图形起点的查询。查询语言是用于创建图形的 Korrel8r 关联引擎的一部分,是实验性的,可能会在以后有所变化。该查询由 Focus 按钮更新,以对应于主 Web 控制台窗口中的资源。
Neighbourhood depth 用于显示一个较小的或大于邻居的深度。
注意如果结果太大,在大型集群中设置较大的值可能会导致查询失败。
目标类 会导致目标定向搜索而不是邻居搜索。目标定向搜索显示从起点到目标类的所有路径,该类表示资源类型或信号。目标类的格式是实验性的,可能会改变。目前,以下目标有效:
-
k8s:RESOURCE[VERSION.[GROUP]]
可识别种类 kuberenetes 资源。例如k8s:Pod
或k8s:Deployment.apps.v1
。 -
alert:
alerting any alert。 -
metric:metric
代表任何指标。 -
NetFlow: 网络
代表任何网络可观察性网络事件。 -
log:LOG_TYPE
代表存储的日志,其中LOG_TYPE
必须是应用程序
、infrastructure
或audit
之一。
-
-
警报(1): 此节点是图中的起点,代表 web 控制台中显示的
5.4.3. 创建示例警报
要触发警报作为在故障排除 UI 面板中使用的起点,您可以部署有意错误配置的容器。
流程
使用以下 YAML (从命令行或 web 控制台中)在系统命名空间中创建损坏的部署:
apiVersion: apps/v1 kind: Deployment metadata: name: bad-deployment namespace: default 1 spec: selector: matchLabels: app: bad-deployment template: metadata: labels: app: bad-deployment spec: containers: 2 - name: bad-deployment image: quay.io/openshift-logging/vector:5.8
查看警报:
前往 Observe
Alerting,再单击 清除所有过滤器。查看 Pending
警报。重要第一次显示处于
Pending
状态的警报。它们不会在容器崩溃一段时间后才会启动Firing
。通过查看Pending
警报,您不必等待很长时间才能看到它们。-
选择
KubeContainerWaiting
、KubePodCrashLooping
或KubePodNotReady
警报之一,然后点击链接来打开故障排除面板。或者,如果面板已经打开,点 "Focus" 按钮来更新图形。