Metodtips för FinOps för nätverk
Den här artikeln beskriver beprövade FinOps-metoder för nätverkstjänster. De fokuserar på kostnadsoptimering, effektivitetsförbättringar och resursinsikter.
Azure Firewall
Följande avsnitt innehåller Azure Resource Graph-frågor (ARG) för Azure Firewall. De här frågorna hjälper dig att få insikter om dina Azure-brandväggsresurser och se till att de är konfigurerade med lämpliga inställningar. Genom att analysera användningsmönster och visa rekommendationer från Azure Advisor kan du optimera dina Azure-brandväggskonfigurationer för kostnadseffektivitet.
Fråga: Analys av Azure-brandväggs- och brandväggsprinciper
Den här ARG-frågan analyserar Azure-brandväggar och deras associerade brandväggsprinciper i din Azure-miljö. Den riktar sig specifikt mot brandväggar med en Premium SKU-nivå och verifierar att konfigurationerna i deras associerade brandväggsprinciper använder premiumfunktionerna.
Kategori
Optimering
Fråga
resources
| where type =~ 'Microsoft.Network/azureFirewalls' and properties.sku.tier=="Premium"
| project FWID=id, firewallName=name, SkuTier=tostring(properties.sku.tier), resourceGroup, location
| join kind=inner (
resources
| where type =~ 'microsoft.network/firewallpolicies'
| mv-expand properties.firewalls
| extend intrusionDetection = tostring(properties.intrusionDetection contains "Alert"
or properties.intrusionDetection contains "Deny")
| extend transportSecurity = tostring(properties.transportSecurity contains "keyVaultSecretId")
| extend FWID = tostring(properties_firewalls.id)
| where intrusionDetection == "False"
and transportSecurity == "False"
| project
PolicyName = name,
PolicySKU = tostring(properties.sku.tier),
intrusionDetection,
transportSecurity,
FWID
) on FWID
Fråga: Azure Firewall och tillhörande undernätsanalys
Den här ARG-frågan analyserar Azure-brandväggar och deras associerade undernät i din Azure-miljö. Den ger insikter om vilka undernät som är associerade med varje Azure-brandväggsinstans. Optimera användningen av Azure-brandväggen genom att ha en central instans av Azure-brandväggen i hubbens virtuella nätverk eller virtual WAN-säker hubb. Dela sedan samma brandvägg i många virtuella ekernätverk som är anslutna till samma hubb från samma region.
Kategori
Optimering
Fråga
resources
| where type =~ 'Microsoft.Network/azureFirewalls' and properties.sku.tier=="Premium"
| project
FWID=id,
firewallName=name,
SkuTier=tostring(properties.sku.tier),
resourceGroup,
location
| join kind=inner (
resources
| where type =~ 'microsoft.network/firewallpolicies'
| mv-expand properties.firewalls
| extend intrusionDetection = tostring(properties.intrusionDetection contains "Alert"
or properties.intrusionDetection contains "Deny")
| extend transportSecurity = tostring(properties.transportSecurity contains "keyVaultSecretId")
| extend FWID=tostring(properties_firewalls.id)
| where intrusionDetection == "False"
and transportSecurity == "False"
| project
PolicyName = name,
PolicySKU = tostring(properties.sku.tier),
intrusionDetection,
transportSecurity,
FWID
) on FWID
Application Gateway
Följande avsnitt innehåller en ARG-fråga för Azure Application Gateway. Det hjälper dig att få insikter om dina Azure Application Gateway-resurser och se till att de är konfigurerade med lämpliga inställningar.
Fråga: Inaktiva programgatewayer
Den här ARG-frågan analyserar programgatewayer och deras associerade serverdelspooler i din Azure-miljö. Den ger insikter om vilka programgatewayer som har tomma serverdelspooler, vilket indikerar att de kan vara inaktiva och potentiellt onödiga.
Kategori
Optimering
Fråga
resources
| where type =~ 'Microsoft.Network/applicationGateways'
| extend
backendPoolsCount = array_length(properties.backendAddressPools),
SKUName = tostring(properties.sku.name),
SKUTier = tostring(properties.sku.tier),
SKUCapacity = properties.sku.capacity,
backendPools = properties.backendAddressPools,
resourceGroup = strcat('/subscriptions/',subscriptionId,'/resourceGroups/',resourceGroup)
| project id, name, SKUName, SKUTier, SKUCapacity, resourceGroup, subscriptionId
| join (
resources
| where type =~ 'Microsoft.Network/applicationGateways'
| mvexpand backendPools = properties.backendAddressPools
| extend backendIPCount = array_length(backendPools.properties.backendIPConfigurations)
| extend backendAddressesCount = array_length(backendPools.properties.backendAddresses)
| extend backendPoolName = backendPools.properties.backendAddressPools.name
| summarize
backendIPCount = sum(backendIPCount),
backendAddressesCount = sum(backendAddressesCount)
by id
) on id
| project-away id1
| where (backendIPCount == 0 or isempty(backendIPCount))
and (backendAddressesCount==0 or isempty(backendAddressesCount))
| order by id asc
ExpressRoute
Följande avsnitt innehåller en ARG-fråga för ExpressRoute. Det hjälper dig att få insikter om dina ExpressRoute-kretsar och se till att de är konfigurerade med lämpliga inställningar.
Fråga: Inaktiva ExpressRoute-kretsar
Den här ARG-frågan analyserar ExpressRoute-kretsar i din Azure-miljö för att identifiera eventuella utan en slutförd krets.
Kategori
Optimering
Fråga
resources
| where type =~ 'Microsoft.Network/expressRouteCircuits'
and properties.serviceProviderProvisioningState == "NotProvisioned"
| extend
ServiceLocation = tostring(properties.serviceProviderProperties.peeringLocation),
ServiceProvider = tostring(properties.serviceProviderProperties.serviceProviderName),
BandwidthInMbps = tostring(properties.serviceProviderProperties.bandwidthInMbps)
| project
ERId = id,
ERName = name,
ERRG = resourceGroup,
SKUName = tostring(sku.name),
SKUTier = tostring(sku.tier),
SKUFamily = tostring(sku.family),
ERLocation = location,
ServiceLocation,
ServiceProvider,
BandwidthInMbps
Load Balancer
Följande avsnitt innehåller en ARG-fråga för Azure Load Balancer. Det hjälper dig att få insikter om dina Azure-lastbalanserare och se till att de är konfigurerade med lämpliga inställningar.
Fråga: Inaktiva lastbalanserare
Den här ARG-frågan analyserar Azure-lastbalanserare och deras associerade serverdelspooler i Din Azure-miljö. Det ger insikter om vilka lastbalanserare som har tomma serverdelspooler, vilket indikerar att de kan vara inaktiva och potentiellt onödiga.
Kategori
Optimering
Fråga
resources
| extend resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| extend SKUName = tostring(sku.name)
| extend SKUTier = tostring(sku.tier)
| extend location,backendAddressPools = properties.backendAddressPools
| where type =~ 'microsoft.network/loadbalancers'
and array_length(backendAddressPools) == 0
and sku.name!='Basic'
| order by id asc
| project
id,
name,
SKUName,
SKUTier,
backendAddressPools,
location,
resourceGroup,
subscriptionId
Privat DNS
Följande avsnitt innehåller en ARG-fråga för Privat DNS. Det hjälper dig att få insikter om dina Privat DNS resurser och se till att de är konfigurerade med lämpliga inställningar.
Fråga: Privat DNS
Den här ARG-frågan analyserar Privat DNS zoner i Din Azure-miljö för att identifiera eventuella utan länkar till virtuella nätverk.
Kategori
Optimering
Fråga
resources
| where type == "microsoft.network/privatednszones"
and properties.numberOfVirtualNetworkLinks == 0
| project id, PrivateDNSName=name,
NumberOfRecordSets = tostring(properties.numberOfRecordSets),
resourceGroup = tostring(strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)),
vNets = tostring(properties.properties.numberOfVirtualNetworkLinks),
subscriptionId
Offentlig IP-adress
Följande avsnitt innehåller ARG-frågor för offentliga IP-adresser. De hjälper dig att få insikter om dina offentliga IP-adressresurser och se till att de är konfigurerade med lämpliga inställningar.
Fråga: Inaktiva offentliga IP-adresser
Den här ARG-frågan analyserar offentliga IP-adresser i Azure. Det ger insikter om vilka offentliga IP-adresser som är inaktiva och potentiellt onödiga.
Kategori
Optimering
Fråga
resources
| where type =~ 'Microsoft.Network/publicIPAddresses'
and isempty(properties.ipConfiguration)
and isempty(properties.natGateway)
and properties.publicIPAllocationMethod =~ 'Static'
| extend
PublicIpId = id,
IPName = name,
AllocationMethod = tostring(properties.publicIPAllocationMethod),
SKUName = sku.name,
Location = location,
resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| project PublicIpId, IPName, SKUName, resourceGroup, Location, AllocationMethod, subscriptionId
| union (
Resources
| where type =~ 'microsoft.network/networkinterfaces'
and isempty(properties.virtualMachine)
and isnull(properties.privateEndpoint)
and isnotempty(properties.ipConfigurations)
| extend IPconfig = properties.ipConfigurations
| mv-expand IPconfig
| extend PublicIpId= tostring(IPconfig.properties.publicIPAddress.id)
| project PublicIpId
| join (
resource
| where type =~ 'Microsoft.Network/publicIPAddresses'
| extend
PublicIpId = id,
IPName = name,
AllocationMethod = tostring(properties.publicIPAllocationMethod),
SKUName = sku.name,
resourceGroup,
Location = location
) on PublicIpId
| project
PublicIpId,
IPName,
SKUName,
resourceGroup,
Location,
AllocationMethod,
subscriptionId
)
Fråga: Identifiera routningsmetod för offentliga IP-adresser
Den här ARG-frågan analyserar offentliga IP-adresser och identifierar routningsmetod, allokeringsmetod och SKU. Den analyserar också annan information om offentliga IP-adresser som är associerade med en IP-konfiguration.
Kategori
Optimering
Fråga
resources
| where type =~ 'Microsoft.Network/publicIPAddresses'
and isnotempty(properties.ipConfiguration)
| where tostring(properties.ipTags) == "[]"
| extend
PublicIpId = id,
RoutingMethod = id,
IPName = name,
AllocationMethod = tostring(properties.publicIPAllocationMethod),
SKUName = sku.name,
Location = location,
resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| project
PublicIpId,
IPName,
RoutingMethod,SKUName,
resourceGroup,
Location,
AllocationMethod,
subscriptionId
Fråga: Kontrollera de offentliga IP-adressernas DDoS-skyddsprincip
Om du behöver skydda färre än 15 offentliga IP-resurser är IP-skyddsnivån det mer kostnadseffektiva alternativet. Men om du har fler än 15 offentliga IP-resurser att skydda blir nätverksskyddsnivån mer kostnadseffektiv.
Kategori
Optimering
Fråga
resources
| where type == "microsoft.network/publicipaddresses"
| project ddosProtection = tostring(properties.ddosSettings), name
| where ddosProtection has "Enabled"
| count
| project TotalIpsProtected = Count
| extend CheckIpsProtected = iff(TotalIpsProtected >= 15, "Enable Network Protection tier", "Enable PIP DDoS Protection")
Virtuell nätverksgateway
Följande avsnitt innehåller ARG-frågor för virtuella nätverksgatewayer. De hjälper dig att få insikter om dina virtuella nätverksgatewayresurser och se till att de är konfigurerade med lämpliga inställningar.
Fråga: Sök efter inaktiv virtuell nätverksgateway
Den här ARG-frågan analyserar virtuella nätverksgatewayer i din Azure-miljö för att identifiera alla som är inaktiva.
Kategori
Optimering
Fråga
resources
| where type == "microsoft.network/virtualnetworkgateways"
| extend resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| project id, GWName=name, resourceGroup, location, subscriptionId
| join kind = leftouter(
resources
| where type == "microsoft.network/connections"
| extend id = tostring(properties.virtualNetworkGateway1.id)
| project id
) on id
| where isempty(id1)
| project
id,
GWName,
resourceGroup,
location,
subscriptionId,
status=id
Fråga: Sök efter inaktiv NAT-gateway
Den här ARG-frågan analyserar NAT-gatewayer i din Azure-miljö för att identifiera alla som är inaktiva.
Kategori
Optimering
Fråga
resources
| where type == "microsoft.network/natgateways" and isnull(properties.subnets)
| project
id,
GWName = name,
SKUName = tostring(sku.name),
SKUTier = tostring(sku.tier),
Location = location,
resourceGroup = tostring(strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)),
subnet = tostring(properties.subnet),
subscriptionId
Letar du efter mer?
Missade vi något? Vill du se något tillagt? Vi vill gärna höra om eventuella frågor, problem eller lösningar som du vill se här. Skapa ett nytt problem med den information som du vill se här.
Relaterat innehåll
Relaterade resurser:
Relaterade lösningar: