监控和排查规则执行

编辑

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

  • 规则监控选项卡 — 所有检测规则及其最近执行的当前状态。转到规则监控选项卡,以概述哪些规则正在运行、运行时间以及是否存在任何问题。
  • 执行结果 — 单个检测规则随时间推移的执行历史数据。查阅执行结果,了解特定规则的运行方式以及它是否创建了您预期的告警。
  • 检测规则监控仪表盘 — 帮助您监控 Elastic Security 检测规则的整体健康状况和性能的可视化工具。查阅此仪表盘,以了解您的规则是否成功运行以及运行、搜索数据和创建告警需要多长时间的高级视图。

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

规则监控选项卡

编辑

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

monitor table

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

要排序规则列表,请单击任何列标题。要以降序排序,请再次单击列标题。

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

执行结果

编辑

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

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

Execution log table on the rule execution results tab

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

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

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

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

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

手动运行表

编辑

此功能处于测试阶段,可能随时更改。其设计和代码不如正式 GA 功能成熟,按现状提供,不提供任何担保。测试版功能不受正式 GA 功能的支持 SLA 的约束。

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

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

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

Manual rule runs table on the rule execution results tab

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

  • 每次手动运行的状态

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

排查缺失告警

编辑

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

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

排查最大告警警告

编辑

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

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

排查间隙

编辑

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

建议将附加回溯时间设置为至少 1 分钟。这确保在规则未完全按计划时间运行时不会出现缺失告警。

Elastic Security 可防止重复。在附加回溯时间期间发现的任何重复告警都不会创建。

如果遇到间隙的规则是指标匹配规则,请参阅如何调整指标匹配规则。另请注意,Elastic Security 对指标匹配规则的支持有限

如果您看到许多规则出现间隙

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

排查摄取管道延迟

编辑

即使您的规则按计划时间运行,如果您的摄取管道延迟大于您的规则间隔 + 附加回溯时间,仍然可能存在缺失告警。在 Elastic Stack 版本 >=7.11.0 中,预构建规则的最小间隔 + 附加回溯时间为 6 分钟。为避免错过预构建规则的告警,请谨慎操作,确保摄取管道延迟保持在 6 分钟以下。

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

您可以通过在创建或编辑规则时,在高级设置中将Timestamp override字段值指定为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字段。

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

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

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