5.4. UI 插件故障排除


重要

Cluster Observability Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

OpenShift Container Platform 版本 4.16+ 的故障排除 UI 插件提供可观察信号关联,由开源 Korrel8r 项目提供支持。使用 Observe Alerting 下的故障排除面板,您可以在不同的数据存储中轻松关联指标、日志、警报、网络流和其他可观察信号和资源。OpenShift Container Platform 版本 4.17+ 的用户可从 Application Launcher app launcher 访问故障排除 UI 面板。

当您安装故障排除 UI 插件时,名为 korrel8rKorrel8r 服务会部署到同一命名空间中,并且能够从其关联引擎中查找相关的可观察信号和 Kubernetes 资源。

Korrel8r 的输出以 OpenShift Container Platform Web 控制台中的交互式节点图的形式显示。图中的节点代表资源类型或信号,而边缘代表关系。当您点节点时,会使用该节点的具体信息自动重定向到对应的 web 控制台页,如指标、日志或 pod。

5.4.1. 安装 Cluster Observability Operator Troubleshooting UI 插件

先决条件

  • 您可以使用具有 cluster-admin 集群角色的用户身份访问集群。
  • 已登陆到 OpenShift Container Platform Web 控制台。
  • 已安装 Cluster Observability Operator

流程

  1. 在 OpenShift Container Platform web 控制台中,点 Operators Installed Operators 并选择 Cluster Observability Operator
  2. 选择 UI Plugin 选项卡(在选项卡列表的最右侧),然后按 Create UIPlugin
  3. 选择 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 app 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 (存储)

    流程

    1. 在 Web 控制台的 admin 视角中,进入到 Observe Alerting,然后选择警报。如果警报关联了项目,则会在警报详情页的图表上方显示 Troubleshooting Panel 链接。

      故障排除面板链接

      Troubleshooting Panel 链接以显示面板。

    2. 面板由查询详情和查询结果的拓扑图组成。所选警报转换为 Korrel8r 查询字符串,并发送到 korrel8r 服务。结果显示为一个连接了返回的信号和资源的图形网络。这是一个 neighbourhood 图形,从当前资源开始,包括了从起点开始的 3 个步骤的相关对象。点图中的节点会进入相应的 web 控制台页面。
    3. 您可以使用故障排除面板查找与所选警报相关的资源。

      注意

      点某个节点有时可能会显示比图形上指示要少的结果。这是一个已知问题,将在以后的发行版本中解决。

      故障排除面板
      1. Alert (1): 此节点是图中的起点,代表 web 控制台中显示的 KubeContainerWaiting 警报。
      2. Pod (1): 此节点表示与此警报关联的单个 Pod 资源。点此节点将打开控制台搜索,直接显示相关的 pod。
      3. Event (2): 与 pod 关联的两个 Kuberenetes 事件。点此节点查看事件。
      4. Logs (74): 此 pod 具有 74 行日志,您可以通过点这个节点来访问这些日志。
      5. Metrics (105): 与 pod 关联的多个指标。
      6. Network (6): 网络事件,代表 pod 通过网络进行通信。图中的其余节点代表 pod 与其进行通信的 Service, DeploymentDaemonSet 资源。
      7. Focus:点此按钮更新图形。默认情况下,当您点图形中的节点时,图形本身不会改变。相反,主 Web 控制台页会改变,然后使用页面上的链接导航到其他资源,而故障排除面板本身则保持打开且没有变化。要强制更新故障排除面板中的图形,请点 Focus。这将使用 web 控制台中的当前资源作为起点来绘制新的图形。
      8. Show Query: 点这个按钮启用一些实验性功能:

        实验性功能
        1. Hide Query 隐藏实验性功能。
        2. 标识图形起点的查询。查询语言是用于创建图形的 Korrel8r 关联引擎的一部分,是实验性的,可能会在以后有所变化。该查询由 Focus 按钮更新,以对应于主 Web 控制台窗口中的资源。
        3. Neighbourhood depth 用于显示一个较小的或较大的邻居。

          注意

          在大型集群中设置较大的值可能会因为结果太大导致查询失败。

        4. 目标类 会导致目标定向搜索而不是邻居搜索。目标定向搜索显示从起点到目标类的所有路径,该类表示资源类型或信号。目标类的格式是实验性的,可能会改变。当前,以下目标有效:

          • k8s:RESOURCE[VERSION.[GROUP]] 识别 kuberenetes 资源的 kind。例如 k8s:Podk8s:Deployment.apps.v1
          • alert:alert 代表任何警报。
          • metric:metric 代表任何指标。
          • netflow:network 代表任何网络可观察网络事件。
          • log:LOG_TYPE 代表存储的日志,其中 LOG_TYPE 需要是 application, infrastructureaudit 之一。

5.4.3. 创建示例警报

要触发警报作为在故障排除 UI 面板中使用的起点,您可以有意部署一个有配置错误的容器。

流程

  1. 使用以下 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
    1
    部署必须位于一个系统命名空间中(如 default)才能造成所需的警报。
    2
    这个容器会有意尝试启动一个没有配置文件的 vector 服务器。服务器会记录一些消息,然后退出并显示错误。或者,您可以部署一个有配置错误的容器,使它触发警报。
  2. 查看警报:

    1. Observe Alerting,再点 clear all filters。查看 Pending 警报。

      重要

      警报先显示为 Pending 状态。它们不会立即开始 Firing,而是在容器崩溃一段时间后才会启动 。您可以直接查看 Pending 警报,这样就无需等待很长时间才能看到它们。

    2. 选择 KubeContainerWaitingKubePodCrashLoopingKubePodNotReady 警报之一,然后点链接打开故障排除面板。或者,如果面板已经打开,点 "Focus" 按钮来更新图形。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.