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

如何在Azure VM停止状态下记录网络流量以触发入站请求自动开机

Azure VM空闲检测+关机状态入站请求唤醒方案

你之前调研的结论是正确的:NSG流日志、VM层面数据包捕获仅会对运行状态的VM生成记录,VM进入停止(解除分配)状态后,网卡未关联运行的计算资源,上述能力无法采集流量。你可以通过在VM入站链路前增加前置流量代理/转发资源实现需求,具体可行方案如下:

方案1:Application Gateway(适合同区域公网/私网访问场景)

  • 把目标VM加入Application Gateway(AGW)后端池,所有RDP、Web入站流量统一通过AGW转发
  • AGW的访问日志不受后端VM运行状态影响,只要有请求到达AGW就会生成全量记录
  • 空闲检测逻辑:将AGW日志导出到Log Analytics,配置查询规则统计连续1小时内无匹配RDP、自定义Web端口的请求时,触发自动化Runbook调用Azure API关停VM,对应的Log Analytics查询示例如下:
AzureDiagnostics 
| where ResourceType == "APPLICATIONGATEWAYS" 
| where DestinationPort_d in (3389, 80, 443) // 替换为你需要统计的业务端口
| where TimeGenerated > ago(1h) 
| where backendServerIp_s == "<你的VM私网IP>"

如果查询返回结果为空,即可判定为符合空闲关机条件。

  • 开机触发逻辑:配置定时Runbook(最短1分钟间隔)或实时日志警报,检测到AGW日志中存在对应VM的入站请求、且VM当前为停止状态时,调用API启动VM

方案2:Azure Front Door(适合跨区域公网访问场景)

  • 所有公网入站流量先接入Azure Front Door,后端源指向VM的公网访问入口
  • Front Door的访问日志全量记录所有入站请求,不受后端VM状态影响
  • 空闲检测逻辑:基于Front Door日志的时间窗口查询,连续1小时无有效请求时触发VM关机
  • 开机触发逻辑:配置Log Analytics警报规则,匹配到入站请求后触发Azure Function执行VM开机操作,延迟可控制在1分钟以内

方案3:标准SKU负载均衡(适合纯私网访问场景)

  • 如果VM仅需私网访问,可使用标准SKU的Azure负载均衡器做流量转发
  • 标准SKU LB的流日志无需后端VM处于运行状态即可生成,导出到Log Analytics后可按前述逻辑实现空闲检测、入站请求唤醒能力

成本优化提示

如果不需要极低的唤醒延迟,可将定时Runbook的执行间隔设置为5~10分钟,大幅降低自动化任务的运行成本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:36:05