×

集群可观测性操作符仅为技术预览功能。技术预览功能不受Red Hat生产服务等级协议(SLA)的支持,并且可能功能不完整。Red Hat不建议在生产环境中使用它们。这些功能可让客户提前访问即将推出的产品功能,从而能够在开发过程中测试功能并提供反馈。

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

OpenShift Container Platform 4.16+版本的故障排除UI插件提供了由开源Korrel8r项目支持的可观测性信号关联。使用可在观察警报下访问的故障排除面板,您可以轻松地跨不同数据存储关联指标、日志、警报、网络流量和其他可观测性信号和资源。OpenShift Container Platform 4.17+的用户还可以从应用程序启动器应用程序启动器访问故障排除UI面板。

安装故障排除UI插件后,会在同一命名空间中部署一个名为korrel8rKorrel8r服务,该服务能够从其关联引擎中定位相关的可观察性信号和Kubernetes资源。

Korrel8r的输出以OpenShift Container Platform Web控制台中交互式节点图的形式显示。图中的节点表示一种资源或信号类型,而边表示关系。单击节点时,您将自动重定向到相应的Web控制台页面,其中包含该节点的特定信息,例如指标、日志、Pod。

安装集群可观察性操作员故障排除UI插件

先决条件
  • 您作为具有cluster-admin集群角色的用户可以访问集群。

  • 您已登录到OpenShift Container Platform Web控制台。

  • 您已安装集群可观察性操作员。

步骤
  1. 在OpenShift Container Platform Web控制台中,单击**操作符** → **已安装的操作符**,然后选择集群可观察性操作员。

  2. 选择**UI插件**选项卡(位于选项卡列表的最右侧),然后按**创建UIPlugin**。

  3. 选择**YAML视图**,输入以下内容,然后按**创建**。

    apiVersion: observability.openshift.io/v1alpha1
    kind: UIPlugin
    metadata:
      name: troubleshooting-panel
    spec:
      type: TroubleshootingPanel

使用集群可观察性操作员故障排除UI插件

先决条件
  • 您作为具有cluster-admin集群角色的用户可以访问OpenShift Container Platform集群。如果您的集群版本为4.17或更高版本,您可以从应用程序启动器app launcher访问故障排除UI面板。

  • 您已登录到OpenShift Container Platform Web控制台。

  • 如果您想可视化关联日志,则已安装OpenShift Container Platform日志记录。

  • 如果您想可视化关联网络流,则已安装OpenShift Container Platform网络可观察性。

  • 您已安装集群可观察性操作员。

  • 您已安装集群可观察性操作员故障排除UI插件。

    故障排除面板依赖于在您的集群中安装的可观察性信号存储。Kubernetes资源、警报和指标在OpenShift Container Platform集群中始终默认可用。其他信号类型需要安装可选组件。

    • 日志:Red Hat OpenShift日志记录(收集)和Red Hat提供的Loki Operator(存储)

    • 网络事件:Red Hat提供的网络可观察性(收集)和Red Hat提供的Loki Operator(存储)

    步骤
    1. 在Web控制台的管理员视角中,导航到**观察** → **警报**,然后选择一个警报。如果警报有相关项目,则警报详细信息页面上的图表上方会出现**故障排除面板**链接。

      Troubleshooting Panel link

      单击**故障排除面板**链接以显示面板。

    2. 该面板包含查询详细信息和查询结果的拓扑图。所选警报将转换为Korrel8r查询字符串并发送到korrel8r服务。结果显示为连接返回信号和资源的图形网络。这是一个邻域图,从当前资源开始,包括距起点最多3步远的相关对象。单击图中的节点将带您到这些资源的相应Web控制台页面。

    3. 您可以使用故障排除面板查找与所选警报相关的资源。

      单击节点有时显示的结果可能少于图中所示。这是一个已知问题,将在未来的版本中解决。

      Troubleshooting panel
      1. 警报 (1):此节点是图中的起点,表示在Web控制台中显示的KubeContainerWaiting警报。

      2. Pod (1):此节点表示与此警报关联的单个Pod资源。单击此节点将打开一个控制台搜索,直接显示相关的Pod。

      3. 事件 (2):与Pod关联有两个Kubernetes事件。单击此节点以查看事件。

      4. 日志 (74):此Pod有74行日志,您可以单击此节点访问这些日志。

      5. 指标 (105):与Pod关联许多指标。

      6. 网络 (6):存在网络事件,这意味着Pod已通过网络进行通信。图中的其余节点表示Pod已与其通信的ServiceDeploymentDaemonSet资源。

      7. 焦点:单击此按钮将更新图表。默认情况下,当您单击图表中的节点时,图表本身不会更改。相反,主Web控制台页面会更改,然后您可以使用页面上的链接导航到其他资源,而故障排除面板本身保持打开且不变。要强制更新故障排除面板中的图表,请单击**焦点**。这将绘制一个新图表,使用Web控制台中的当前资源作为起点。

      8. 显示查询:单击此按钮启用一些实验性功能。

        Experimental features
        1. 隐藏查询隐藏实验性功能。

        2. 标识图表起点的查询。用于创建图表的Korrel8r关联引擎的一部分查询语言是实验性的,将来可能会更改。查询将通过**焦点**按钮更新,以对应于主Web控制台窗口中的资源。

        3. 邻域深度用于显示较小或较大的邻域。

          如果结果数量太大,则在大型集群中设置较大的值可能会导致查询失败。

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

          • k8s:RESOURCE[VERSION.[GROUP]]标识一种Kubernetes资源。例如k8s:Podk8s:Deployment.apps.v1

          • alert:alert表示任何警报。

          • metric:metric表示任何指标。

          • netflow:network表示任何网络可观察性网络事件。

          • log:LOG_TYPE表示存储的日志,其中LOG_TYPE必须是applicationinfrastructureaudit之一。

创建示例警报

要触发警报作为故障排除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. 转到**观察** → **警报**并单击**清除所有筛选器**。查看待处理警报。

      告警最初显示为待处理状态。只有当容器崩溃一段时间后,才会开始触发。通过查看待处理告警,您可以无需等待太长时间就能看到告警的发生。

    2. 选择一个KubeContainerWaitingKubePodCrashLoopingKubePodNotReady告警,然后点击链接打开故障排除面板。或者,如果面板已经打开,请点击“关注”按钮以更新图表。