You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Azure SQL Database设置特定工作日时段的告警?

Azure SQL Database 特定时段/工作日告警的实现方法

Azure原生告警规则本身没有直接的时段/工作日过滤选项,但可以通过以下几种简便方法实现需求,无需使用Event Hub:

方法1:使用Alert Processing Rules(推荐)

这是Azure官方提供的专门用于控制告警生效时段的功能,步骤如下:

  • 先创建常规的Azure SQL Database告警规则(比如针对CPU使用率、连接数等指标),完成触发条件的配置。
  • 进入Azure Monitor → Alert processing rules → 新建规则:
    1. 选择目标:指定刚才创建的SQL Database告警规则作为作用对象。
    2. 配置规则设置:选择**“Suppress alerts”(抑制告警),切换到“Schedule”**标签页:
      • 设置生效时间段(如9:00到17:00)。
      • 勾选生效星期(仅周一至周五)。
    3. 保存规则后,只有在指定时段和工作日内,告警才会触发动作组的通知;非时段内的告警会被自动抑制,不会发送通知。

方法2:在日志告警查询中直接过滤时间

如果你的告警是基于Log Analytics的日志查询(比如针对SQL数据库的慢查询、错误日志等),可以在Kusto查询语句中直接加入时间过滤条件,示例:

AzureDiagnostics
| where ResourceType == "SQLDATABASES"
// 过滤周一至周五(dayofweek返回1=周一,5=周五)
| where dayofweek(TimeGenerated) between (1 .. 5)
// 过滤9:00-17:00
| where hourofday(TimeGenerated) >= 9 and hourofday(TimeGenerated) < 17
// 后续告警条件逻辑
| where ...

查询只会返回指定时段内的日志数据,告警自然只会在该时段触发。

方法3:通过Logic Apps实现时段过滤

如果需要更灵活的通知控制,可以将告警的动作组指向Azure Logic Apps,步骤:

  • 创建Logic Apps,触发条件选择**“When an Azure Monitor alert is triggered”**。
  • 在Logic Apps中添加条件判断:检查当前时间是否处于周一至周五的9:00-17:00。
  • 仅当条件满足时,才执行后续通知动作(如发送邮件、短信、Teams消息等);不满足则直接结束流程,不发送通知。

内容的提问来源于stack exchange,提问作者Dmitri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 02:55:16