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

监控Azure Blob容器文件:配置未及时处理文件的邮件告警方法

最简实现方案:Azure Monitor 日志告警

当然可以实现这个需求,而且用Azure原生服务就能搞定,最简方案就是利用Azure Monitor + Log Analytics来构建告警规则,不用额外写复杂代码,下面一步步给你讲:

一、先确保存储日志能被Azure Monitor采集

首先得让你的存储账户把Blob操作日志发送到Log Analytics工作区,这样我们才能查询到哪些Blob没被处理:

  • 打开你的Azure存储账户,找到左侧菜单的「诊断设置」,点击「添加诊断设置」
  • 给诊断设置起个名字,勾选「StorageBlobLogs」(Blob相关的操作日志)
  • 目标选择「发送到Log Analytics工作区」,选择你已有的工作区,或者新建一个(新建的话按提示走就行)
  • 保存设置,等10-15分钟让日志开始同步。

二、编写Kusto查询找出未处理的Blob

进入你刚才选的Log Analytics工作区,打开「日志」页面,粘贴下面的Kusto查询(记得替换成你的存储账户名和容器名):

StorageBlobLogs
| where OperationName in ("PutBlob", "PutBlockList") // 匹配Blob创建的操作
| where AccountName == "your-storage-account-name"
| where ContainerName == "your-container-name"
| extend BlobCreatedTime = TimeGenerated
// 左反连接删除操作的日志,筛选出从未被删除的Blob
| join kind=leftanti (
    StorageBlobLogs
    | where OperationName == "DeleteBlob"
    | where AccountName == "your-storage-account-name"
    | where ContainerName == "your-container-name"
    | project BlobName
) on BlobName
// 筛选出创建超过24小时的Blob
| where now() - BlobCreatedTime > 24h
// 提取需要的字段:文件名、创建时间、大小
| project BlobName, BlobCreatedTime, BlobSize = tolong(Properties_s.BlobSize)

运行查询测试一下,看看能不能正确找出留存超过24小时的Blob。

三、基于查询创建邮件告警规则

接下来把这个查询变成告警规则,触发时自动发邮件:

  1. 在Log Analytics工作区的「警报」菜单里,点击「创建 > 警报规则」
  2. 信号逻辑部分:
    • 信号类型选「自定义日志搜索」,然后选择你刚才写的查询
    • 触发条件设为「结果计数 > 0」——也就是只要有未处理的Blob就触发告警
  3. 评估频率:
    • 设置「评估频率」(比如每1小时评估一次),「查找数据范围」设为24小时,确保能覆盖到所有超过24小时的Blob
  4. 操作组:
    • 点击「添加操作组」,新建一个操作组(或者用已有的)
    • 在操作组里添加「电子邮件/短信/推送/语音」操作,填写接收告警的邮箱地址
  5. 告警内容自定义:
    • 在「通知」标签里,你可以自定义邮件主题,比如「⚠️ Blob容器存在未处理文件告警」
    • 要在邮件里显示文件名和大小的话,在「自定义有效负载」里可以引用查询结果的字段,比如用@alertContext.searchResults来包含所有查询到的Blob信息,这样邮件里会列出每个未处理文件的名称、创建时间和大小
  6. 最后保存告警规则就大功告成了!

备选方案:Azure Logic Apps(无代码流程)

如果你不想用Log Analytics,也可以用Logic Apps来实现:

  • 用「 recurrence 触发器」设置每24小时运行一次
  • 添加「列出Blob」操作,指定你的存储账户和容器
  • 添加「筛选数组」操作,筛选出「创建时间」小于当前时间减24小时的Blob
  • 添加「条件判断」,如果筛选后的数组不为空,就触发「发送电子邮件」操作,把Blob的名称和大小作为邮件内容插入进去
    这个方案也是无代码,但相比Monitor的方案,需要手动搭建流程,适合对Logic Apps更熟悉的场景。

总结一下,Azure Monitor + Log Analytics是最简的方案,因为完全利用Azure原生服务集成,配置完成后自动运行,不用维护额外的代码或流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:24:08