Delen via


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 resources:

Verwante oplossingen: