如何监控Azure子网IP分配并查询已用/空闲IP地址数量
查看Azure子网IP使用情况的方法
你在Virtual Networks->Subnets路径下看到的是子网总可分配IP基数(已扣除Azure系统预留的5个IP:子网网段前4个、最后1个),要查看实时已用/剩余IP数,可通过以下3种方式操作:
1. Azure门户直接查看
进入目标虚拟网络详情页,按以下路径操作:
- 左侧菜单找到子网,点击你需要查询的目标子网名称,进入子网详情页
- 概览区域直接显示
已使用IP数、可用IP数两个实时统计值,数据包含所有已绑定到资源(虚拟机、负载均衡器、容器组、私有终结点等)的IP - 也可在虚拟网络左侧菜单选择IP地址管理,批量查看当前VNet下所有子网的IP使用率、已用/剩余IP数值
2. Azure CLI命令查询
执行以下命令直接输出统计结果,替换尖括号内的参数为你的实际资源名即可:
az network vnet subnet show \ --resource-group <你的资源组名称> \ --vnet-name <你的虚拟网络名称> \ --name <目标子网名称> \ --query "{已用IP数:ipConfigurationProfiles.length, 总可分配IP数:length(addressPrefix) - 5, 剩余可用IP数:length(addressPrefix) - ipConfigurationProfiles.length - 5}" \ -o table
3. PowerShell命令查询
在Azure PowerShell环境中执行以下脚本:
# 替换为你的实际资源参数 $rgName = "<你的资源组名称>" $vnetName = "<你的虚拟网络名称>" $subnetName = "<目标子网名称>" $vnet = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName $subnet = Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $vnet $prefixLength = [int]$subnet.AddressPrefix.Split('/')[1] $totalAssignable = [math]::Pow(2, 32 - $prefixLength) - 5 $usedIP = $subnet.IpConfigurationProfiles.Count $availableIP = $totalAssignable - $usedIP Write-Host "已用IP数:$usedIP 剩余可用IP数:$availableIP"
子网IP使用率监控配置
可以直接通过Azure Monitor配置监控和告警,无需额外第三方工具:
- 进入目标虚拟网络详情页,左侧菜单选择监视分类下的指标
- 指标命名空间选择
虚拟网络,可选指标有两个:- 子网可用IP计数:对应子网实时剩余可用IP数
- 子网IP使用率:对应已用IP占总可分配IP的百分比
- 点击「新建告警规则」即可设置阈值触发条件:比如剩余可用IP小于5个、使用率超过90%时,触发邮件、短信、工作通知等告警动作
注意:监控指标的统计口径和子网详情页的数值一致,自动排除Azure系统预留IP,统计的是实际可分配给用户资源的IP使用情况
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

