重要
注意:所有 Microsoft Sentinel 功能将根据 世纪互联发布的公告 于 2026年8月18日 在中国地区的 Azure 正式停用。
为了确保 Microsoft Sentinel 服务中安全编排、自动化和响应操作的正常运行和性能,请通过监控自动化规则和剧本的执行日志来跟踪其运行状况。
为相关利益干系人设置健康事件通知,以便其可以采取措施。 例如,定义并发送电子邮件,在票证系统中创建新票证等等。
本文介绍如何使用Microsoft Sentinel的运行状况监视功能,在Microsoft Sentinel中监控自动化规则和playbook的运行状况。 有关详细信息,请参阅 Microsoft Sentinel 中的审计和健康监控。
使用 SentinelHealth 数据表
若要从 SentinelHealth 数据表获取自动化运行状况数据,请先为工作区启用Microsoft Sentinel运行状况功能。 有关详细信息,请参阅 启用 Microsoft Sentinel 的运行状况监视。
启用运行状况功能后,会在为自动化规则和 playbook 生成的第一个成功或失败事件时创建 SentinelHealth 数据表。
了解 SentinelHealth 表事件
SentinelHealth 表中记录以下类型的自动化健康事件:
Automation rule run。 每当自动化规则的条件得到满足并导致其执行时,该事件将被记录。 除基本 SentinelHealth 表中的字段之外,这些事件还将包括专用于自动化规则运行的扩展属性,以及规则所调用的剧本列表。 以下示例查询将显示这些事件:
SentinelHealth | where OperationName == "Automation rule run"自动化计划已触发。 每当手动从门户或通过 API 触发用于事件的 playbook 时,都会记录该事件。 除了基本 SentinelHealth 表中的字段外,这些事件还将包括手动触发 playbook 所特有的扩展属性。 以下示例查询将显示这些事件:
SentinelHealth | where OperationName == "Playbook was triggered"
有关详细信息,请参阅 SentinelHealth 表列架构。
状态、错误和建议的步骤
对于自动化规则运行状态,您可能会看到以下状态:
成功:规则已成功执行,触发所有操作。
部分成功:规则已执行并触发了至少一个操作,但有些操作失败了。
失败:由于以下原因之一,自动化规则未运行任何操作:
- 条件评估失败。
- 条件满足,但第一个操作失败。
对于“Playbook 已被触发”的状态,您可能会看到以下状态:
成功:已成功触发 playbook。
失败:无法触发playbook。
注意
“成功”仅表示自动化规则已成功触发一个剧本或播放手册。 该系统不会告知 playbook 何时开始或结束,以及在 playbook 中的各项操作结果和最终结果。
若要查找此信息,请查询逻辑应用诊断日志。 有关详细信息,请参阅获取完整的自动化图片。
错误说明和建议的操作
| 错误说明 | 建议的操作 |
|---|---|
|
无法添加任务:<任务名称>。 找不到事件/警报。 |
确保事件/警报存在,然后重试。 |
|
无法添加任务:<任务名称>。 事件已包含允许的最大任务数。 |
如果需要此任务,请查看是否有任何可以删除或合并的任务,然后重试。 |
|
无法修改属性:<PropertyName>。 找不到事件/警报。 |
确保事件/警报存在,然后重试。 |
|
无法修改属性:<PropertyName>。 请求过多,超出流量限制。 |
|
|
无法触发剧本:<PlaybookName>。 找不到事件/警报。 |
如果在尝试按需触发工作手册时发生错误,请确保事件或警报存在,并重试。 |
|
无法触发剧本:<PlaybookName>。 找不到脚本,或者 Microsoft Sentinel 缺少对它的权限。 |
编辑自动化规则,在其新位置查找并选择 playbook,然后保存。 请确保 Microsoft Sentinel 具有 权限来运行此 playbook。 |
|
无法触发剧本:<PlaybookName>。 包含不受支持的触发器类型。 |
请确保 playbook 以 正确的 Logic Apps 触发器开头:Microsoft Sentinel 事件或 Microsoft Sentinel 警报。 |
|
无法触发剧本:<PlaybookName>。 订阅已禁用并标记为只读。 在重新启用订阅之前,无法运行此订阅下的剧本。 |
重新激活 playbook 所在的 Azure 订阅。 |
|
无法触发剧本:<PlaybookName>。 手册已禁用。 |
在 Microsoft Sentinel 中的自动化部分的“活动 Playbooks”选项卡或“逻辑应用资源”页面中启用您的 playbook。 |
|
无法触发剧本:<PlaybookName>。 模板定义无效。 |
playbook 定义中存在错误。 进入 Logic Apps 设计器中修复问题并保存 playbook。 |
|
无法触发剧本:<PlaybookName>。 访问控制配置限制Microsoft Sentinel。 |
逻辑应用配置允许限制对触发操作手册的访问。 此限制对该操作手册有效。 请删除此限制,以便不会阻止Microsoft Sentinel。 了解详细信息 |
|
无法触发剧本:<PlaybookName>。 Microsoft Sentinel缺少运行它的权限。 |
Microsoft Sentinel需要 权限才能运行剧本。 |
|
无法触发剧本:<PlaybookName>。 Playbook 未迁移到新的权限模型。 授予 Microsoft Sentinel 权限以运行该播放脚本,并重新保存该规则。 |
授予 Microsoft Sentinel权限以运行此 playbook并重新保存此规则。 |
|
无法触发剧本:<PlaybookName>。 请求过多,超出工作流限流限制。 |
等待的工作流运行数已超过允许的最大限制。 尝试在'maximumWaitingRuns'中增加的值。 |
|
无法触发剧本:<PlaybookName>。 请求过多,超出流量限制。 |
详细了解限流限制。 |
|
无法触发剧本:<PlaybookName>。 访问被禁止。 托管标识缺少配置或已设置逻辑应用网络限制。 |
如果 playbook 使用托管标识,请确保为托管标识分配了权限。 该 playbook 可能有网络限制规则,这些规则会阻止 Microsoft Sentinel 服务,从而防止 playbook 被触发。 |
|
无法触发剧本:<PlaybookName>。 订阅或资源组已锁定。 |
删除锁定以允许 Microsoft Sentinel 在已锁定的范围内触发剧本。 详细了解锁定的资源。 |
|
无法触发剧本:<PlaybookName>。 调用方缺少触发工作簿所需的权限,或者 Microsoft Sentinel 缺少相应的访问权限。 |
试图按需触发 playbook 的用户缺少 playbook 或触发 playbook 所需的 Logic Apps 贡献者角色。 了解详细信息 |
|
无法触发剧本:<PlaybookName>。 连接凭据无效。 |
在 Azure 门户中的 API 连接服务中检查连接正在使用的凭据。 |
|
无法触发剧本:<PlaybookName>。 Playbook ARM ID 无效。 |
掌握自动化的完整图景
Microsoft Sentinel 的健康监测表允许您跟踪 playbook 何时被触发,但要监控 playbook 内部发生的情况及其运行结果,还需在 Azure Logic Apps 中启用诊断,将以下事件导入 AzureDiagnostics 表中:
- {操作名称} 开始
- {操作名称} 结束
- 工作流(剧本)开始
- 工作流(剧本)结束
这些新增事件可提供更深入的了解关于您的手册(或任务计划)中正在执行的操作。
启用 Azure Logic Apps 诊断
对于想要监视的每个 playbook,为您的逻辑应用启用 Log Analytics。 请确保选择发送到 Log Analytics 工作区作为您的日志目标,然后选择您的 Microsoft Sentinel 工作区。
关联Microsoft Sentinel和Azure Logic Apps日志
现在,你已经有了自动化规则和 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
有关上述示例中使用的以下项目的详细信息,请参阅 Kusto 文档:
有关 KQL 的更多信息,请参阅 Kusto 查询语言 (KQL) 概述。
其他资源:
后续步骤
- 了解在 Microsoft Sentinel 中的审核和运行状况监视。
- 在Microsoft Sentinel中启用审核和运行状况监视。
- 监视数据连接器的运行状况。
- 监视分析规则的运行状况和完整性。
- 请参阅有关 SentinelHealth 和 SentinelAudit 表架构的更多信息。