Azure Blob Storage:设备停止覆盖Blob时的邮件通知方案咨询
针对Azure Blob Storage单个Blob更新超时的监控告警方案
以下是无需改动设备软件的Azure端解决方案,针对单Blob长时间未覆盖的场景设计:
方案一:存储日志 + Log Analytics + Azure Monitor 告警
利用存储日志记录Blob修改事件,通过Log Analytics分析单Blob的最后更新时间,触发超时告警。
- 开启存储日志记录:
进入目标存储账户的诊断设置,添加新诊断设置,勾选StorageWrite事件,将日志发送到指定Log Analytics工作区。 - 编写Log Analytics查询(替换占位符):
StorageBlobLogs | where AccountName == "你的存储账户名" | where ContainerName == "目标容器名" | where BlobName startswith "device-" // 匹配设备专属Blob的命名规则,或指定单个Blob名 | where OperationName == "PutBlob" | summarize LastUpdate = max(EventTime) by BlobName | extend TimeElapsed = now() - LastUpdate | where TimeElapsed > time(5m) // 设置超时阈值,示例为5分钟 - 创建告警规则:
基于上述查询创建Azure Monitor告警,触发条件设为“查询返回结果数大于0”。配置动作组添加邮件接收人,触发时自动发送包含超时Blob名称的通知。可针对单个Blob创建独立规则,或通过查询批量监控所有设备Blob。
方案二:Event Grid + Logic Apps 超时检查
通过Event Grid捕获Blob覆盖事件,用Logic Apps记录更新时间戳,定期检查超时情况。
- 配置Event Grid订阅:
进入存储账户的事件网格,创建订阅,事件类型选择BlobCreated(覆盖操作会触发该事件),目标端点选择Logic Apps。 - 搭建Logic Apps工作流:
- 接收Event Grid事件,提取
BlobName和当前时间,将记录存入Azure Table Storage(以BlobName为键)。 - 添加定期触发器(如每分钟执行一次),遍历Table中的所有Blob记录,计算当前时间与最后更新时间的差值。
- 对超过阈值的Blob,通过Office 365 Outlook或SendGrid连接器发送邮件通知。
- 接收Event Grid事件,提取
- 优势:无代码可视化配置,易于扩展至短信、Teams等多渠道通知,无需维护查询语句。
方案选择建议
- 若需精确批量监控且熟悉Kusto查询,优先选方案一;
- 若偏好无代码快速搭建、灵活扩展通知方式,选方案二。
内容的提问来源于stack exchange,提问作者cdsara
相关产品推荐
相关产品推荐

