Поделиться через


Рекомендации По использованию FinOps для сети

В этой статье описаны проверенные методики FinOps для сетевых служб. Они сосредоточены на оптимизации затрат, улучшении эффективности и аналитике ресурсов.


Брандмауэр Azure

В следующих разделах приведены запросы Azure Resource Graph (ARG) для Брандмауэр Azure. Эти запросы помогают получить аналитические сведения о ресурсах брандмауэра Azure и убедиться, что они настроены с соответствующими параметрами. Анализируя шаблоны использования и рекомендации по поиску в Помощнике по Azure, вы можете оптимизировать конфигурации брандмауэра Azure для повышения затрат.

Запрос: анализ политик брандмауэра и брандмауэра Azure

Этот запрос ARG анализирует брандмауэры Azure и связанные с ними политики брандмауэра в среде Azure. Он специально предназначен для брандмауэров с уровнем SKU уровня "Премиум" и проверяет, используются ли конфигурации в связанных политиках брандмауэра.

Категория

Optimization

Запрос

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

Запрос: анализ Брандмауэр Azure и связанных подсетей

Этот запрос ARG анализирует брандмауэры Azure и связанные с ними подсети в среде Azure. Он предоставляет аналитические сведения о том, какие подсети связаны с каждым экземпляром брандмауэра Azure. Оптимизируйте использование брандмауэра Azure, используя центральный экземпляр брандмауэра Azure в центральной виртуальной сети или Виртуальная глобальная сеть безопасном концентраторе. Затем совместно использовать один и тот же брандмауэр во многих периферийных виртуальных сетях, подключенных к одному концентратору из одного региона.

Категория

Optimization

Запрос

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

Шлюз приложений

В следующем разделе приведены запросы ARG для Шлюз приложений Azure. Он помогает получить аналитические сведения о Шлюз приложений Azure ресурсах и убедиться, что они настроены с соответствующими параметрами.

Запрос: неактивные шлюзы приложений

Этот запрос ARG анализирует шлюзы приложений и связанные с ними серверные пулы в среде Azure. Он предоставляет аналитические сведения о том, какие шлюзы приложений имеют пустые внутренние пулы, что означает, что они могут быть бездействующими и потенциально ненужными.

Категория

Optimization

Запрос

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

В следующем разделе представлен запрос ARG для ExpressRoute. Он помогает получить аналитические сведения о каналах ExpressRoute и убедиться, что они настроены с соответствующими параметрами.

Запрос: неактивные каналы ExpressRoute

Этот запрос ARG анализирует каналы ExpressRoute в среде Azure, чтобы определить любой без завершенного канала.

Категория

Optimization

Запрос

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

В следующем разделе приведен запрос ARG для Azure Load Balancer. Он помогает получить аналитические сведения о ресурсах подсистемы балансировки нагрузки Azure и убедиться, что они настроены с соответствующими параметрами.

Запрос: балансировщики нагрузки бездействия

Этот запрос ARG анализирует подсистемы балансировки нагрузки Azure и связанные с ними серверные пулы в среде Azure. Он предоставляет аналитические сведения о том, какие подсистемы балансировки нагрузки имеют пустые внутренние пулы, что означает, что они могут быть бездействующими и потенциально ненужными.

Категория

Optimization

Запрос

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

Частная зона DNS

В следующем разделе представлен запрос ARG для Частная зона DNS. Он помогает получить аналитические сведения о Частная зона DNS ресурсах и убедиться, что они настроены с соответствующими параметрами.

Запрос: Частная зона DNS

Этот запрос ARG анализирует Частная зона DNS зоны в среде Azure, чтобы определить любые без виртуальная сеть ссылок.

Категория

Optimization

Запрос

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

Общедоступный IP-адрес

В следующих разделах приведены запросы ARG для общедоступных IP-адресов. Они помогают получить аналитические сведения о ресурсах общедоступного IP-адреса и убедиться, что они настроены с соответствующими параметрами.

Запрос: неактивные общедоступные IP-адреса

Этот запрос ARG анализирует общедоступные IP-адреса Azure. Он предоставляет аналитические сведения о том, какие общедоступные IP-адреса неактивны и потенциально ненужны.

Категория

Optimization

Запрос

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
)

Запрос. Определение метода маршрутизации общедоступных IP-адресов

Этот запрос ARG анализирует общедоступные IP-адреса и определяет метод маршрутизации, метод выделения и номер SKU. Он также анализирует другие сведения о общедоступных IP-адресах, связанных с конфигурацией IP-адресов.

Категория

Optimization

Запрос

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

Запрос. Проверка политики защиты от атак DDoS общедоступных IP-адресов

Если вам нужно защитить менее 15 общедоступных IP-ресурсов, уровень защиты IP-адресов является более экономичным. Однако если у вас более 15 ресурсов общедоступного IP-адреса для защиты, уровень защиты сети становится более экономичным.

Категория

Optimization

Запрос

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")

шлюз виртуальной сети;

В следующих разделах приведены запросы ARG для шлюзов виртуальная сеть. Они помогают получить аналитические сведения о ресурсах шлюза виртуальная сеть и убедиться, что они настроены с соответствующими параметрами.

Запрос. Проверка простоя шлюза виртуальная сеть

Этот запрос ARG анализирует шлюзы виртуальная сеть в среде Azure, чтобы определить, какие из них неактивны.

Категория

Optimization

Запрос

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

Запрос. Проверка простоя шлюза NAT

Этот запрос ARG анализирует шлюзы NAT в среде Azure, чтобы определить, какие из них неактивны.

Категория

Optimization

Запрос

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

Ищете больше?

Упустили ли мы что-нибудь? Хотите ли вы увидеть что-то добавленное? Мы хотели бы услышать о любых проблемах, проблемах или решениях, которые вы хотели бы увидеть здесь. Создайте новую проблему с подробными сведениями, которые вы хотите просмотреть здесь.


Связанные ресурсы:

Связанные решения: