azure - 使用 azure 命令行工具根据自定义日志创建警报

标签 azure azure-cli azure-monitoring azure-alerts

我尝试使用 az 命令行工具创建基于自定义日志查询的指标警报。到目前为止我所做到的是;

  • 保存自定义日志查询
  • 创建用于发送警报信息的操作组

我没能做到的是使用az监视指标警报创建命令创建警报,以便它基于保存的loq查询返回的结果数。是否可以使用 az 命令行工具创建基于自定义日志查询的指标警报?

最佳答案

如果您知道该命令,帮助消息通常非常有用且详细:

az monitor scheduled-query create --help

这是一个基于对我有用的查询的示例。它假设您已经创建了资源组、工作区和操作组:

RESOURCE_GROUP="ResourceGroupName"
WORKSPACE_NAME="LogAnalyticsWorkspaceName"
ACTION_GROUP_NAME="ActionGroupName"

QUERY='AzureDiagnostics
| where Message contains "Connection successful"
| where TimeGenerated > ago(5m)
| order by TimeGenerated desc'

WORKSPACE_ID=$(az monitor log-analytics workspace show \
    --resource-group $RESOURCE_GROUP \
    --workspace-name $WORKSPACE_NAME \
    --query id --out tsv)

az monitor scheduled-query create \
    --name "TestScheduledQuery" \
    --resource-group $RESOURCE_GROUP \
    --scopes $WORKSPACE_ID \
    --description "Test rule" \
    --action $ACTION_GROUP_NAME \
    --evaluation-frequency 5m \
    --mute-actions-duration PT30M \
    --severity 3 \
    --condition "count 'QRY1' > 0" \
    --condition-query QRY1="$QUERY"

此示例将:

  • 每 5 分钟运行一次(--evaluation-Frequency)
  • 查找适合过去 5 分钟内生成的约束的新诊断 (QUERY)
  • 如果匹配计数大于零(--condition):
    • 它将激活警报(发送邮件等,具体取决于 --action 中的操作组)
    • 一旦警报触发,它将被静音 30 分钟,这样重复的警报就不会向任何人发送垃圾邮件 (--mute-actions-duration)

无论如何,这些设置中的大多数都是默认设置,为了清楚起见,我只是定义了它们。

关于azure - 使用 azure 命令行工具根据自定义日志创建警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64874187/

相关文章:

python - 适用于 Azure CosmosDB 的 Gremlin Python SDK

node.js - Azure Active Directory动态回复URL

azure - 如何使用 Azure Powershell 上传 Azure 管理证书

linux - Linux 上使用 az keyvault 的 Azure secret 下载问题

azure - 用于生成 Azure 函数成功和失败计数线图的 Kusto 查询

Azure - 资源组位置的用途是什么?

Azure 静态网站对唯一客户端进行计数

json - 创建 20 多个带锁的 Azure 资源组

azure - Azure Monitor 'Response time' 和 AppInsights 'Duration' 之间有什么区别?

azure - 如何在 Azure Runbook 上启用警报?