Aanbevolen procedures voor FinOps voor netwerken
In dit artikel vindt u een overzicht van bewezen FinOps-procedures voor netwerkservices. Ze richten zich op kostenoptimalisatie, efficiëntieverbeteringen en resource-inzichten.
Azure Firewall
De volgende secties bevatten ARG-query's (Azure Resource Graph) voor Azure Firewall. Met deze query's krijgt u inzicht in uw Azure Firewall-resources en zorgt u ervoor dat deze zijn geconfigureerd met de juiste instellingen. Door gebruikspatronen te analyseren en aanbevelingen van Azure Advisor op te doen, kunt u uw Azure Firewall-configuraties optimaliseren voor kostenefficiëntie.
Query: Analyse van Azure-firewall- en firewallbeleid
Met deze ARG-query worden Azure-firewalls en het bijbehorende firewallbeleid in uw Azure-omgeving geanalyseerd. Het is specifiek gericht op firewalls met een premium-SKU-laag en controleert of de configuraties in hun bijbehorende firewallbeleid gebruikmaken van de premium-functies.
Categorie
Optimalisatie
Query
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
Query: Analyse van Azure Firewall en bijbehorende subnetten
Met deze ARG-query worden Azure-firewalls en de bijbehorende subnetten in uw Azure-omgeving geanalyseerd. Het biedt inzicht in de subnetten die zijn gekoppeld aan elk Azure Firewall-exemplaar. Optimaliseer het gebruik van Azure Firewall door een centraal exemplaar van Azure Firewall te hebben in het virtuele hubnetwerk of de virtuele WAN-beveiligde hub. Deel vervolgens dezelfde firewall in veel virtuele spoke-netwerken die zijn verbonden met dezelfde hub vanuit dezelfde regio.
Categorie
Optimalisatie
Query
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
De volgende sectie bevat arg-query's voor Azure-toepassing Gateway. Het helpt u inzicht te krijgen in uw Azure-toepassing Gateway-resources en ervoor te zorgen dat ze zijn geconfigureerd met de juiste instellingen.
Query: Niet-actieve toepassingsgateways
Met deze ARG-query worden toepassingsgateways en de bijbehorende back-endpools in uw Azure-omgeving geanalyseerd. Het biedt inzicht in welke toepassingsgateways lege back-endpools hebben, wat aangeeft dat ze inactief en mogelijk onnodig zijn.
Categorie
Optimalisatie
Query
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
De volgende sectie bevat een ARG-query voor ExpressRoute. Hiermee krijgt u inzicht in uw ExpressRoute-circuits en zorgt u ervoor dat deze zijn geconfigureerd met de juiste instellingen.
Query: Niet-actieve ExpressRoute-circuits
Met deze ARG-query worden ExpressRoute-circuits in uw Azure-omgeving geanalyseerd om een circuit zonder voltooid circuit te identificeren.
Categorie
Optimalisatie
Query
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
De volgende sectie bevat een ARG-query voor Azure Load Balancer. Het helpt u inzicht te krijgen in uw Azure Load Balancer-resources en ervoor te zorgen dat ze zijn geconfigureerd met de juiste instellingen.
Query: Niet-actieve load balancers
Met deze ARG-query worden Azure Load Balancers en de bijbehorende back-endpools in uw Azure-omgeving geanalyseerd. Het biedt inzicht in welke load balancers lege back-endpools hebben, wat aangeeft dat ze inactief en mogelijk onnodig zijn.
Categorie
Optimalisatie
Query
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
Privé-DNS
De volgende sectie bevat een ARG-query voor Privé-DNS. Het helpt u inzicht te krijgen in uw Privé-DNS resources en ervoor te zorgen dat ze zijn geconfigureerd met de juiste instellingen.
Query: Privé-DNS
Met deze ARG-query worden Privé-DNS zones in uw Azure-omgeving geanalyseerd om virtuele netwerkkoppelingen te identificeren.
Categorie
Optimalisatie
Query
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
Openbaar IP-adres
De volgende secties bevatten ARG-query's voor openbare IP-adressen. Ze helpen u inzicht te krijgen in uw openbare IP-adresresources en ervoor te zorgen dat ze zijn geconfigureerd met de juiste instellingen.
Query: Niet-actieve openbare IP-adressen
Deze ARG-query analyseert openbare IP-adressen van Azure. Het biedt inzicht in welke openbare IP-adressen niet actief en mogelijk onnodig zijn.
Categorie
Optimalisatie
Query
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
)
Query: Routeringsmethode voor openbare IP-adressen identificeren
Deze ARG-query analyseert openbare IP-adressen en identificeert de routeringsmethode, toewijzingsmethode en SKU. Het analyseert ook andere details van openbare IP-adressen die zijn gekoppeld aan een IP-configuratie.
Categorie
Optimalisatie
Query
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
Query: Het DDoS-beveiligingsbeleid van openbare IP-adressen controleren
Als u minder dan 15 openbare IP-resources wilt beveiligen, is de IP-beveiligingslaag de rendabeler optie. Als u echter meer dan 15 openbare IP-resources hebt om te beveiligen, wordt de netwerkbeveiligingslaag rendabeler.
Categorie
Optimalisatie
Query
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")
Gateway voor een virtueel netwerk
De volgende secties bevatten ARG-query's voor virtuele netwerkgateways. Ze helpen u inzicht te krijgen in uw virtuele netwerkgatewayresources en ervoor te zorgen dat ze zijn geconfigureerd met de juiste instellingen.
Query: Controleren op niet-actieve virtuele netwerkgateway
Met deze ARG-query worden virtuele netwerkgateways in uw Azure-omgeving geanalyseerd om alle niet-actieve gateways te identificeren.
Categorie
Optimalisatie
Query
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
Query: Controleren op niet-actieve NAT-gateway
Deze ARG-query analyseert NAT-gateways in uw Azure-omgeving om alle niet-actieve gateways te identificeren.
Categorie
Optimalisatie
Query
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
Op zoek naar meer?
Hebben we iets gemist? Wilt u iets toevoegen? We horen graag over vragen, problemen of oplossingen die u hier wilt bekijken. Maak een nieuw probleem met de details die u hier wilt zien.
Gerelateerde inhoud
Gerelateerde resources:
Verwante oplossingen: