监控和排查规则执行问题

编辑

有几种工具可以帮助您深入了解检测规则的性能

  • 规则监控选项卡 — 所有检测规则的当前状态及其最近的执行情况。转到规则监控选项卡,概览哪些规则正在运行、运行时间以及是否遇到任何问题。
  • 执行结果 — 单个检测规则在一段时间内的执行历史数据。查阅执行结果,了解特定规则的运行情况,以及是否正在创建您期望的告警。
  • 检测规则监控仪表板 — 可视化视图,帮助您监控 Elastic 安全检测规则的整体运行状况和性能。查阅此仪表板,了解规则是否正在成功运行,以及运行、搜索数据和创建告警所花费的时间。

请参阅下面的排查丢失的告警部分,了解在规则未创建预期告警时调整规则的策略。

规则监控选项卡

编辑

要查看所有规则执行的摘要,包括最近的失败和执行时间,请在规则页面上选择规则监控选项卡。要访问此选项卡,请在导航菜单中找到检测规则 (SIEM),或者使用全局搜索字段搜索“检测规则 (SIEM)”,然后转到规则监控选项卡。

monitor table

规则监控选项卡上,您可以像在已安装规则选项卡上一样排序和筛选规则

要对规则列表进行排序,请单击任何列标题。要按降序排序,请再次单击列标题。

要获取有关规则、其生成的告警和相关错误的详细信息,请单击表格中的规则名称。这还允许您执行与已安装规则选项卡上相同的操作,例如修改或删除规则、激活或停用规则、导出或导入规则以及复制预构建规则。

执行结果

编辑

每次检测规则的执行都会被记录,包括执行类型、执行的成功或失败、任何警告或错误消息、搜索数据、创建告警和完成所花费的时间。这可以帮助您排查特定规则(例如,如果它没有创建告警或运行时间过长)的行为异常问题。

要访问规则的执行日志,请单击规则名称以打开其详细信息,然后向下滚动并选择执行结果选项卡。在“执行日志”表格中,您可以单击某行末尾的箭头以展开较长的警告或错误消息。

Execution log table on the rule execution results tab

您可以将鼠标悬停在每个列标题上,以显示有关该列数据的工具提示。单击列标题,按该列对表格进行排序。

使用这些控件来筛选日志表格中包含的内容

  • 运行类型下拉列表按规则执行类型筛选表格

    • 已计划:自动、计划的规则执行。
    • 手动手动启动的规则执行。
  • 状态下拉列表按规则执行状态筛选表格

    • 已成功:规则已完成其定义的搜索。这并不一定意味着它生成了告警,只是意味着它运行没有错误。
    • 已失败:规则遇到阻止其运行的错误。例如,机器学习规则的相应机器学习作业未运行。
    • 警告:没有任何内容阻止规则运行,但它可能返回了意外的结果。例如,自定义查询规则尝试搜索在 Elasticsearch 中找不到的索引模式。
  • 日期和时间选择器设置表格中包含的规则执行时间范围。这与规则详细信息页面顶部的全局日期和时间选择器分开。
  • 源事件时间范围按钮切换与手动运行时间范围有关的数据的显示。
  • 显示指标列切换开关在表格中包含更多或更少的数据,与每次规则执行的计时有关。
  • 操作列允许您显示从给定规则执行生成的告警。单击筛选器图标 (筛选器图标) 以基于规则执行的 ID 值创建全局搜索筛选器。这将替换任何先前应用的筛选器,将全局日期和时间范围更改为规则执行前后 24 小时,并显示确认通知。您可以通过单击通知中的还原之前的筛选器来还原此操作。

手动运行表格

编辑

此功能处于 Beta 测试阶段,可能会发生更改。设计和代码不如正式 GA 功能成熟,并且按原样提供,不提供任何保证。Beta 功能不受正式 GA 功能的支持 SLA 约束。

每次手动运行都可以产生多个规则执行,具体取决于运行的时间范围和规则的执行计划。这些详细信息显示在“手动运行”表格中。

要访问该表格,请导航到检测规则页面,单击规则名称以打开其详细信息,然后向下滚动并选择执行结果选项卡。再次向下滚动以查找“手动运行”表格。

要停止活动的运行,请转到相应的行,然后单击操作列中的停止运行。每次手动运行的已完成规则执行都记录在“执行日志”表格中。

Manual rule runs table on the rule execution results tab

“手动运行”表格显示重要的详细信息,例如

  • 每次手动运行的状态

    • 待定:规则尚未运行。
    • 正在运行:规则正在您指定的时间范围内执行。某些规则(例如,指标匹配规则)可能需要较长时间才能运行。
    • 错误:规则的配置阻止其正确运行。例如,无法验证规则的条件。
  • 手动运行开始的时间以及它将运行的时间
  • 手动运行的失败、待定、正在运行和已完成的规则执行次数
  • 手动运行发生的规则执行总数

排查丢失的告警

编辑

当规则未能接近其计划时间运行时,可能会丢失一些告警。有多种方法可以尝试解决此问题

您还可以使用 Kibana 中的任务管理器来排查可能与丢失的告警相关的后台任务和进程

排查最大告警警告

编辑

当规则在单次规则执行期间达到它可以生成的最大告警数量时,规则的详细信息页面和规则执行日志中会出现以下警告:此规则达到了规则执行的最大告警限制。未创建某些告警。

如果您收到此警告,请转到规则的告警选项卡并检查是否有任何意外情况。意外的告警可能是由数据源问题或范围过大的查询创建的。要进一步减少告警量,您还可以添加规则例外抑制告警

排查差距

编辑

如果您在“规则监控”表格或“规则详细信息”页面中看到少数规则的“差距”列中的值,则可以编辑这些规则并增加其额外的回溯时间。

建议将额外的回溯时间设置为至少 1 分钟。这可以确保在规则未准确在其计划时间运行时不会丢失告警。

Elastic 安全可防止重复。在额外的回溯时间期间发现的任何重复告警都不会被创建。

如果出现差距的规则是指标匹配规则,请参阅如何调整指标匹配规则。另请注意,Elastic 安全对指标匹配规则提供有限支持

如果您看到多个规则出现差距

  • 如果您在激活许多规则时重新启动了 Kibana,请尝试停用这些规则,然后在交错的间隔以小批量方式重新激活它们。这可以确保 Kibana 不会尝试同时运行所有规则。
  • 考虑向您的环境中添加另一个 Kibana 实例。

排查数据采集管道延迟

编辑

即使您的规则在其计划时间运行,如果您的数据采集管道延迟大于您的规则间隔 + 额外的回溯时间,仍可能会丢失告警。在 Elastic Stack 版本 >=7.11.0 中,预构建规则的最小间隔 + 额外回溯时间为 6 分钟。为了避免预构建规则的告警丢失,请谨慎操作,以确保数据采集管道延迟保持在 6 分钟以下。

此外,在创建自定义规则计划时,请谨慎操作,以确保指定的间隔 + 额外的回溯时间大于部署的数据采集管道延迟。

您可以通过在规则创建或编辑期间在高级设置中将时间戳覆盖字段值指定为event.ingested,从而减少因数据采集管道延迟而导致的告警丢失数量。检测引擎在执行规则时使用event.ingested字段中的值作为时间戳。

例如,假设一个事件在 10:00 发生,但由于采集管道延迟,直到 10:10 才被摄入到 Elasticsearch 中。如果您创建一个规则来检测该事件,该规则的间隔时间 + 额外回溯时间为 6 分钟,并且该规则在 10:12 执行,那么它仍然会检测到该事件,因为 event.ingested 时间戳是 10:10 的,仅比规则执行时间早 2 分钟,完全在规则的 6 分钟间隔时间 + 额外回溯时间之内。

timestamp override

排查机器学习作业的警报缺失问题

编辑

机器学习检测规则使用机器学习作业,这些作业依赖于 Beats 和 Elastic Agent 集成填充的数据字段。在 Elastic Stack 8.3 版本中,发布了新的机器学习作业(带有 v3 前缀),用于处理当时可用的 ECS 字段。

如果您在 Elastic Stack 8.3 或更高版本中使用 8.2 或更早版本的 Beats 或 Elastic Agent,您可能需要在更新 Elastic 预构建规则之前复制预构建规则或创建新的自定义规则。一旦您更新了预构建规则,它们将仅使用 v3 机器学习作业。在更新预构建规则之前复制相关的预构建规则,可以通过允许您继续使用 v1v2 作业(在复制的规则中)同时运行新的 v3 作业(在更新的预构建规则中),来确保持续覆盖。

  • 复制的规则可能会导致重复的异常检测和警报。
  • 请确保相关的 v3 机器学习作业在您更新 Elastic 预构建规则之前正在运行。
  • 如果您只有 8.3 或更高版本的 Beats 和 Elastic Agent:您可以下载或更新您的预构建规则,并使用最新的 v3 机器学习作业。无需执行其他操作。
  • 如果您只有 8.2 或更早版本的 Beats 或 Elastic Agent,或者 新旧版本混合使用:要继续使用预 8.3 预构建检测规则指定的 v1v2 机器学习作业,您必须在将受影响的预构建规则更新到最新规则版本之前复制它们。复制的规则可以继续使用相同的 v1v2 机器学习作业,而更新后的预构建机器学习规则将使用新的 v3 机器学习作业。
  • 如果您有 一个收集 ECS 兼容事件的非 Elastic 数据发送器:只要您的数据发送器使用最新的 ECS 规范,您就可以使用最新的 v3 机器学习作业,无需执行其他操作。但是,如果您要从使用 v1/v2 作业的机器学习规则迁移,请确保在更新 Elastic 预构建规则之前启动相关的 v3 作业。

以下 Elastic 预构建规则使用新的 v3 机器学习作业生成警报。如果您需要 v1/v2 机器学习作业的持续覆盖,请在更新它们之前复制其相关的 v1/v2 预构建规则