排除一个工作流

InsightConnect中的工作流故障可能起源于许多地方,从工作流中的错误到工作流所依赖的服务的临时中断。将错误放在上下文中是确定故障来源的必要步骤。

故障诊断概述

InsightConnect工作流可以通过3种方式触发:

  • 通过测试施工按钮
  • 在活动工作流页面上手动
  • 以响应工作流的触发器

在后两种情况下(通过工作流的触发器或从Active workflow页面手动),作业将在Jobs页面上创建。但是,当从构建器测试工作流时,不会创建作业记录。

无论工作流是如何触发的,可用来进行故障诊断的数据都是相同的,但是从构建器运行的工作流测试不会持久保存,因此在故障诊断期间必须保持页面,以便您可以引用数据。

从生成器测试工作流

在工作流被激活之前,会自动执行许多检查。这些测试确保工作流在内部是一致的,并且所有步骤都已完全配置。如果一个步骤没有通过检查,它会在构建器界面中变成橙色。

当这些内部检查失败时,您可以在构建器中测试工作流。如果执行了配置错误的步骤,将导致测试失败。

如果您在构建器中使用测试功能,请在执行以下步骤之前确保所有步骤都是绿色的。

工作流在过去是工作的,但现在每个作业都失败了

如果工作流没有改变,但它已经开始持续失败,那么问题很可能是在工作流之外。采取以下步骤:

  1. 检查协调器是否正常设置>协调器.如果协调器不正常,请参见排除一个协调器进一步说明的文档。
  2. 检查工作流正在使用的凭据。下运行连接测试>插件和工具用于工作流所利用的所有连接。
  3. 按照说明故障排除

工作流没有被触发(没有创建任何作业)

如果工作流根本没有触发,那么一定是触发器出了问题。根据触发器的类型,故障排除步骤也有所不同。

InsightIDR和InsightVM平台触发器

InsightIDR和InsightVM触发器分别在各自的产品中配置。首先要检查的是这些接口中的触发器配置是否正确。这并包含InsightVM插件触发器。对于InsightVM插件触发器,请参考插件触发器部分解决。

InsightIDR工作流的可见性

具有InsightIDR触发器的自定义工作流只有在InsightConnect中激活时才会出现在InsighIDR中。如果您创建了一个没有显示的InsightIDR工作流,请确保它是活动的。

如果工作流触发,但预期的数据丢失,这意味着InsightIDR或InsightVM没有将数据发送到InsightConnect。触发工作流的警报很可能配置错误。

插件触发器(包括基于InsightVM插件的触发器)

基于插件的触发器在协调器上运行。它们连接到远程系统或服务,并监视特定的条件。当条件满足时,它们会触发工作流。

排除基于插件的触发器故障的步骤:

必须访问Orchestrator

您需要访问协调器才能访问基于插件的触发器的日志。一旦验证了触发器的配置,就需要访问协调器(使用SSH或虚拟机控制台)。强烈建议您熟悉Linux和Docker。

  1. 检查下面的协调器的运行状况设置-如果协调器没有显示为“健康的”,那么协调器本身有问题。使用排除一个协调器使协调器进入健康状态的文档。
  2. 控件上的3点菜单在插件上运行连接测试插件&工具页面下设置.解决任何指示的错误。
  3. 验证工作流中的触发器配置是否正确。错误通常是由于配置导致触发器监视错误的数据(例如错误的邮箱)或丢弃您希望它触发的事件。
  4. 连接到协调器(使用SSH或虚拟机控制台)。
  5. 触发器作为协调器上的Docker容器运行。运行Sudo docker ps - |grep触发器查看活动触发器容器。
  6. 根据显示的数据识别触发器(窗口越宽,越容易)。如果您无法识别触发器,请尝试停用工作流,等待大约2分钟,然后重新激活它。这将重新启动触发器。在列出活动触发器时,您将在容器的正常运行时间中看到这一点。
  7. 使用容器ID(输出中的第一列)检查带有的触发器的日志Sudo docker日志<容器id>.容器日志是来自触发器的诊断输出。你可以添加——遵循标记实时观看他们(Sudo docker日志——遵循<容器id>

日志是复杂的-支持可以帮助!

查看原始触发器日志可能是一项具有挑战性的任务。如果您对查看日志感到不舒服,或者只是需要另一双眼睛,请立即联系Rapid7支持。

如果触发器容器不存在,请参考排除一个协调器文档,并联系Rapid7支持。

工作流正在连续或间歇地生成失败的作业

工作流是基于某些假设构建的:触发器包含某些数据,它可以在其他系统和服务中查找数据,等等。当一个作业间歇地生成一个失败的作业时,这意味着这些假设没有得到满足。通常情况下,但并非总是如此,这意味着必须修改工作流,以考虑导致其失败的条件。

并非所有失败的步骤都是致命的

有些工作流的步骤被设计为偶尔会失败。这些步骤被设置为“失败时继续”,并且不会终止工作流。这些工作流是专门为适应失败的步骤而设计的。在寻找导致任务失败的步骤时,确保您正在查看任务中最后失败的步骤。

  1. 工作,选择失败的作业。
  2. 选择所有输出选项卡。
  3. 找到作业中失败的步骤。
  4. 检查输入步骤输出的TAB。验证输入是你和插件所期望的。一个常见的问题是缺少或不正确的输入。
  5. 如果输入不正确,请检查工作流并确定输入来自何处。不正确的输入通常意味着前一个步骤返回了意外的数据。
  6. 检查日志步骤输出的TAB。此日志包含与失败相关的诊断信息,例如从底层服务返回的错误消息。
  7. 如果日志显示权限问题,请在>插件和工具页并验证凭据是正确的。如果连接测试成功,但是由于权限问题,步骤仍然失败,那么很可能插件没有正确的权限来执行操作。
  8. 如果日志显示超时问题,则可能存在基础服务的服务中断或协调器与基础服务的连接出现困难。

如果您没有看到任何错误,或有错误您无法修复,请截屏您的输入和日志,并联系Rapid7支持