首页 > 解决方案 > 使用 ARM 模板成功创建 Azure 日志警报规则,但未显示在门户中

问题描述

我创建了一些用于部署 Azure 指标警报规则的 ARM 模板,但我现在需要部署日志警报规则(即基于 Application Insights 查询而不是平台指标的规则)。

我已经按照此处的示例编写了模板脚本(这表明我需要创建一个类型为 的资源Microsoft.Insights/scheduledQueryRules)并使用 Azure 门户的模板部署服务进行部署,如此处所述

Azure 报告部署成功,活动日志为我提供部署结果,包括我的新资源的 ID,例如/subscriptions/[subscription-id]/resourcegroups/[alerts-resource-group]/providers/Microsoft.Insights/scheduledQueryRules/Custom errors spike alert.

但是,当我导航到订阅 [subscription-id] 中的 Monitor 刀片并按资源组 [alerts-resource-group] 进行过滤时,我看不到我的新警报。

作为健全性检查,我使用针对相同 App Insights 资源的相同进程创建了一个指标警报,这个警报确实显示在 Monitor 刀片中。

我想我的问题是,我对基于日志的警报规则有误解吗?例如,类型的 Azure“资源”是否Microsoft.Insights/scheduledQueryRules等同于Monitor / Alerts / Manage alert rules中的信号类型日志搜索的警报规则?我确信我的模板是正确的,因为它通过了验证并成功完成。但我对警报规则的最终结果感到困惑!

我应该提到的一件事是,我正在与 App Insights 实例本身不同的资源组中创建警报规则,但指标警报也是如此,因此假设这并不重要。

标签: azureazure-devopsarm-templateazure-monitoring

解决方案


事实证明,日志警报需要一个指向他们正在监控的资源的隐藏链接。否则,它们会被创建,但不会在门户中的任何位置列出。

就我而言,我在模板中添加了以下变量:

"linkToAiResource" : "[concat('hidden-link:', resourceId('microsoft.insights/components', parameters('appInsightsResourceName')))]"

然后将其作为标签包含在资源定义中,如下所示:

"tags": {
    "[variables('linkToAiResource')]": "Resource"
}

重新部署后,警报规则将出现在门户的 Monitor 边栏选项卡中。


推荐阅读