监视自动化规则和 playbook 的运行状况

为了确保 Microsoft Sentinel 服务中安全业务流程、自动化和响应操作的正常运行和性能,请通过监视自动化规则和 playbook 的执行日志来跟踪自动化规则和 playbook 的运行状况。

为相关利益干系人设置运行状况事件通知,以便其随后可以采取措施。 例如,定义并发送电子邮件,在票证系统中创建新票证等等。

本文介绍如何使用 Microsoft Sentinel 的运行状况监视功能在 Microsoft Sentinel 中跟踪自动化规则和 playbook 的运行状况。

总结

  • Microsoft Sentinel 自动化运行状况日志:

    • 此日志捕获记录自动化规则运行的事件,以及这些运行的最终结果:成功还是失败,以及失败的原因。 日志记录规则中操作启动的总体成功或失败情况,并列出规则调用的 playbook。
    • 日志还捕获记录按需(手动或基于 API)触发 playbook 的事件,包括触发它们的标识、它们是成功还是失败以及失败的原因。
    • 此日志不包含 playbook 内容的执行记录,仅包含 playbook 启动成功或失败的记录。 有关 playbook 中执行的操作的日志,请参阅下面的下一个列表。
    • 这些日志收集在 Log Analytics 的 SentinelHealth 表中。

    重要

    SentinelHealth 数据表目前仅提供预览版。 请参阅 Azure 预览版的补充使用条款,了解适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的其他法律条款。

  • Azure 逻辑应用诊断日志:

    • 这些日志捕获 playbook(也称为逻辑应用工作流)的运行结果及其中的操作。
    • 这些日志与自动化运行状况日志配合使用时,可提供自动化运行状况的完整信息。
    • 这些日志收集在 Log Analytics 的 AzureDiagnostics 表中。

使用 SentinelHealth 数据表(公共预览版)

若要从 SentinelHealth 数据表中获取自动化运行状况数据,必须先为工作区启用 Microsoft Sentinel 运行状况功能。 有关详细信息,请参阅为 Microsoft Sentinel 启用运行状况监视

启用运行状况功能后,会在为自动化规则和 playbook 生成的第一个成功或失败事件时创建 SentinelHealth 数据表。

了解 SentinelHealth 表事件

SentinelHealth 表中记录以下类型的自动化运行状况事件:

  • Automation rule run。 每当满足自动化规则的条件并导致其运行时,记录此事件。 除了基本 SentinelHealth 表中的字段外,这些事件还将包括运行自动化规则所特有的扩展属性,包括规则调用的 playbook 列表。 以下示例查询将显示这些事件:

    SentinelHealth
    | where OperationName == "Automation rule run"
    
  • Playbook was triggered。 每当从门户或通过 API 手动触发事件的 playbook 时,记录此事件。 除了基本 SentinelHealth 表中的字段外,这些事件还将包括手动触发 playbook 所特有的扩展属性。 以下示例查询将显示这些事件:

    SentinelHealth
    | where OperationName == "Playbook was triggered"
    

有关详细信息,请参阅 SentinelHealth 表列架构

状态、错误和建议的步骤

对于“Automation rule run”,可能显示以下状态:

  • Success:规则已成功执行,触发所有操作。
  • Partial success:规则已执行并触发了至少一个操作,但有些操作失败了。
  • 失败:由于以下其中一个原因,自动化规则未运行任何操作:
    • 条件评估失败。
    • 条件满足,但第一个操作失败。

对于“Playbook was triggered”,可能显示以下状态:

  • Success:已成功触发 playbook。
  • Failure:无法触发 playbook。

    注意

    “Success”仅表示自动化规则已成功触发 playbook。 但不会告知 playbook 何时开始或结束、playbook 中操作的结果或 playbook 的最终结果。 若要查找此信息,请查询逻辑应用诊断日志(请参阅本文后面的说明)。

错误说明和建议的操作

错误说明 建议的操作
Could not add task: <TaskName>
找不到事件/警报。
确保事件/警报存在,然后重试。
Could not modify property: <PropertyName>
找不到事件/警报。
确保事件/警报存在,然后重试。
Could not modify property: <PropertyName>
请求过多,超出限制。
Could not trigger playbook: <PlaybookName>
找不到事件/警报。
如果在尝试按需触发 playbook 时发生错误,请确保事件/警报存在,然后重试。
Could not trigger playbook: <PlaybookName>
找不到 playbook,或者 Microsoft Sentinel 缺少对其的权限。
编辑自动化规则,在其新位置查找并选择 playbook,然后保存。 确保 Microsoft Sentinel 有权运行此 playbook
Could not trigger playbook: <PlaybookName>
包含不受支持的触发器类型。
确保 playbook 以正确的逻辑应用触发器开头:Microsoft Sentinel 事件或 Microsoft Sentinel 警报。
Could not trigger playbook: <PlaybookName>
订阅已禁用并标记为只读。 在重新启用订阅之前,无法运行此订阅中的 playbook。
重新启用 playbook 所在的 Azure 订阅。
Could not trigger playbook: <PlaybookName>
Playbook 已禁用。
在 Microsoft Sentinel 的“自动化”下的“活动 playbook”选项卡中,或在逻辑应用资源页中,启用 playbook。
Could not trigger playbook: <PlaybookName>
模板定义无效。
playbook 定义中存在错误。 转到逻辑应用设计器以解决问题,然后保存 playbook。
Could not trigger playbook: <PlaybookName>
访问控制配置限制 Microsoft Sentinel。
逻辑应用配置允许限制对触发 playbook 的访问。 此限制对该 playbook 有效。 请删除此限制,以便不阻止 Microsoft Sentinel。 了解详细信息
Could not trigger playbook: <PlaybookName>
Microsoft Sentinel 缺少运行权限。
Microsoft Sentinel 需要运行 playbook 的权限
Could not trigger playbook: <PlaybookName>
Playbook 未迁移到新权限模型。 请向 Microsoft Sentinel 授予运行此 playbook 的权限并重新保存规则。
请向 Microsoft Sentinel 授予运行此 playbook 的权限并重新保存规则。
Could not trigger playbook: <PlaybookName>
请求过多,超出工作流限制。
等待的工作流运行数已超过允许的最大限制。 请尝试增加触发器并发配置'maximumWaitingRuns' 的值。
Could not trigger playbook: <PlaybookName>
请求过多,超出限制。
详细了解订阅和租户限制
Could not trigger playbook: <PlaybookName>
访问被禁止。 托管标识缺少配置或已设置逻辑应用网络限制。
如果 playbook 使用托管标识,请确保为托管标识分配了权限。 该 playbook 可能具有阻止其触发的网络限制规则,因为这些规则会阻止 Microsoft Sentinel 服务。
Could not trigger playbook: <PlaybookName>
订阅或资源组已锁定。
请移除锁定以允许 Microsoft Sentinel 在锁定范围内触发 playbook。 详细了解锁定的资源
Could not trigger playbook: <PlaybookName>
调用方缺少对 playbook 所需的 playbook 触发权限,或者 Microsoft Sentinel 缺少对其的权限。
尝试按需触发 playbook 的用户缺少对 playbook 的逻辑应用参与者角色或无法触发 playbook。 了解详细信息
Could not trigger playbook: <PlaybookName>
连接凭据无效。
在 Azure 门户的“API 连接”服务中检查连接使用的凭据
Could not trigger playbook: <PlaybookName>
Playbook ARM ID 无效。

全面了解自动化

Microsoft Sentinel 的运行状况监视表可跟踪 playbook 的触发,但若要监视 playbook 内部发生的情况及其运行时的结果,还必须在 Azure 逻辑应用中启用诊断以将以下事件引入到 AzureDiagnostics 表:

  • {操作名称} 开始
  • {操作名称} 结束
  • 工作流(playbook)开始
  • 工作流(playbook)结束

这些添加的事件将使你更深入地了解 playbook 中正在执行的操作。

启用 Azure 逻辑应用诊断

对于你有兴趣监视的每个 playbook,请为逻辑应用启用 Log Analytics。 确保选择“发送到 Log Analytics 工作区”作为日志目标,然后选择你的 Microsoft Sentinel 工作区。

关联 Microsoft Sentinel 和 Azure 逻辑应用日志

现在,你已经有了自动化规则和 playbook 的日志,以及工作区中各个逻辑应用工作流的日志,可以将它们关联起来以获取完整情况。 请考虑以下示例查询:

SentinelHealth 
| where SentinelResourceType == "Automation rule"
| mv-expand TriggeredPlaybooks = ExtendedProperties.TriggeredPlaybooks
| extend runId = tostring(TriggeredPlaybooks.RunId)
| join (AzureDiagnostics 
    | where OperationName == "Microsoft.Logic/workflows/workflowRunCompleted"
    | project
        resource_runId_s,
        playbookName = resource_workflowName_s,
        playbookRunStatus = status_s)
    on $left.runId == $right.resource_runId_s
| project
    RecordId,
    TimeGenerated,
    AutomationRuleName= SentinelResourceName,
    AutomationRuleStatus = Status,
    Description,
    workflowRunId = runId,
    playbookName,
    playbookRunStatus

使用“运行状况监视”工作簿

“自动化运行状况”工作簿可帮助你可视化运行状况数据,以及我们刚才提到的两种日志类型之间的相关性。 工作簿包含以下内容:

  • 自动化规则运行状况和详细信息
  • Playbook 触发器运行状况和详细信息
  • Playbook 运行的运行状况和详细信息(需要在 playbook 级别启用 Azure 诊断)
  • 每个事件的自动化详细信息

Screenshot shows the opening panel of the automation health workbook.

选择“通过自动化规则运行的 playbook”选项卡,查看 playbook 活动。

Screenshot shows a list of the playbooks called by automation rules.

选择一个 playbook,在下面的向下钻取图表中查看其运行列表。

Screenshot shows a list of runs of the chosen playbook.

选择特定的运行以查看 playbook 中操作的结果。

Screenshot shows the actions taken in a given run of this playbook.

后续步骤