我尝试使用 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/