用于获取 Azure 监视器警报规则的 Powershell 命令不起作用
Posted
技术标签:
【中文标题】用于获取 Azure 监视器警报规则的 Powershell 命令不起作用【英文标题】:Powershell command to fetch Azure monitor alert rules is not working 【发布时间】:2019-09-02 21:19:26 【问题描述】:我已创建警报规则并将其与 VM 关联。现在尝试通过 Powershell 获取警报规则,但为空。这段代码有什么问题?
Get-AzAlertRule -ResourceGroupName 'pacbldnew'
see the alert rule powershell code returning null
【问题讨论】:
【参考方案1】:这只是一个警告。该命令应该可以工作,请确保警报规则存在。
更新1:
试试下面的命令来得到你想要的。
Get-AzResource -ResourceGroupName joywebapp -ResourceType microsoft.insights/metricAlerts
更新2:
如果您想获取详细信息,请尝试以下脚本。
$names = (Get-AzResource -ResourceGroupName joywebapp -ResourceType microsoft.insights/metricAlerts).Name
foreach($name in $names)
Get-AzResource -ResourceGroupName joywebapp -Name $name -ResourceType microsoft.insights/metricAlerts | ConvertTo-Json
【讨论】:
@SouravKarmakarGet-AzAlertRule
命令只是获取经典警报,其资源类型为microsoft.insights/alertrules
,要获取microsoft.insights/metricAlerts
,您可以尝试此link 中的方式。它使用旧的 AzureRM 模块,只需转换为 Az,它应该可以工作。
@SouravKarmakar 你能明白吗?有关更多详细信息,请参阅我的更新。如果有帮助,请采纳为答案,谢谢。
是的,我明白了。但我的要求略有不同。我想获取有关警报规则的详细信息。
@SouravKarmakar 实际上,详细信息应该包含在响应中,只需对输出进行一些操作以显示它们。我现在不能给你测试,你可以先自己试试,如果你不能得到,我会在星期一给你测试。
@SouravKarmakar 如果您想了解详细信息,请参阅我的更新2。【参考方案2】:
Joy 的正确之处在于 cmdlet 仍应执行,因为您看到的只是一个警告。但是,这可能会发生,因为 Powershell 对更新的指标警报的支持仍在进行中,正如官方 docs 中提到的那样。
此外,作为替代方案,如果有帮助,您可以使用 Azure CLI 到 list newer Metric Alerts,因为它现在支持获取属于 Microsoft.Insights/metricAlerts 资源类型的查询的详细结果。
例如:
az monitor metrics alert list -g <Resource group name> --output yaml
结果如下所示:
您还可以从 Az CLI 提供的众多 output formats(json、jsonc、yaml、table、tsv)中进行选择。
希望这会有所帮助!
【讨论】:
【参考方案3】:转到Azure-家庭安全中心和设置过滤并提取所有规则
【讨论】:
以上是关于用于获取 Azure 监视器警报规则的 Powershell 命令不起作用的主要内容,如果未能解决你的问题,请参考以下文章