我想构建一个逻辑应用程序,当我的环境中的任何逻辑应用程序失败或连接断开时,它会告诉我。 (逻辑应用程序的手动触发和自动触发)
我发现最接近实现此目的的 KQL 是:
SentinelHealth
| where TimeGenerated > ago(7d)
| where SentinelResourceType == "Automation rule"
| mv-expand TriggeredPlaybooks = ExtendedProperties.TriggeredPlaybooks
| extend runId = tostring(TriggeredPlaybooks.RunId)
| join (AzureDiagnostics
| where OperationName == "Microsoft.Logic/workflows/workflowRunCompleted"
| extend IncidentNumber = toint(extract(@"[a-f0-9]{8}\-[a-f0-9]{4}\-[a-f0-9]{4}\-[a-f0-9]{4}\-[a-f0-9]{12}\_(\d+)", 1, correlation_clientTrackingId_s))
| project
IncidentNumber,
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,
IncidentNumber
这是我现在的工作流程: 查询运行并输出到 html 表,该表通过电子邮件发送给我。
问题是我知道我的环境中有几个逻辑应用程序具有失败的操作或断开连接的操作,这些操作未被我的逻辑应用程序+ kql捕获。
如何解决逻辑应用程序失败时(完全失败和特定操作失败时)的检测和通知问题
Azure 逻辑应用:如果逻辑应用行为连接中断或失败,如何收到通知
一种方法是检查如下:
另一种方法是在每个操作后添加并行操作,如下所示:
如果警报失败,否则如果为真,则下一步操作如下:
要使上述步骤生效,您需要添加如下代码:
runAfter to failed
Output:
因此,像这样,对于每个操作,您需要添加并行操作(我只对操作 parsejson 进行了操作,以了解如何执行操作),并且对于该操作,您需要将 runafter 更改为失败,然后您会收到警报。
另请参阅 SO-Thread1 和 SO-Thread2