Azure PowerShell kullanarak NSG akış günlüklerini yönetme

Ağ güvenlik grubu akış günlüğü, Azure Ağ İzleyicisi'nin bir ağ güvenlik grubu üzerinden akan IP trafiği hakkındaki bilgileri günlüğe kaydetmenize olanak tanıyan bir özelliğidir. Ağ güvenlik grubu akış günlüğü hakkında daha fazla bilgi için bkz . NSG akış günlüklerine genel bakış.

Bu makalede, Azure PowerShell kullanarak NSG akış günlüğü oluşturmayı, değiştirmeyi, devre dışı bırakmayı veya silmeyi öğreneceksiniz. Azure portalı, Azure CLI, REST API veya ARM şablonunu kullanarak NSG akış günlüğünü yönetmeyi öğrenebilirsiniz.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.

  • Analizler sağlayıcı. Daha fazla bilgi için bkz. Analizler sağlayıcısını kaydetme.

  • Bir ağ güvenlik grubu. Bir ağ güvenlik grubu oluşturmanız gerekiyorsa bkz . Ağ güvenlik grubu oluşturma, değiştirme veya silme.

  • Bir Azure depolama hesabı. Depolama hesabı oluşturmanız gerekiyorsa bkz . PowerShell kullanarak depolama hesabı oluşturma.

  • Azure Cloud Shell veya Azure PowerShell yerel olarak yüklenir.

    • Bu makaledeki adımlar Azure Cloud Shell'de Azure PowerShell cmdlet'lerini etkileşimli olarak çalıştırır. Komutları Cloud Shell'de çalıştırmak için kod bloğunun sağ üst köşesindeki Cloud Shell'i Aç'ı seçin. Kodu kopyalamak için Kopyala'yı seçin ve çalıştırmak için Cloud Shell'e yapıştırın. Cloud Shell'i Azure portalından da çalıştırabilirsiniz.

    • Cmdlet'leri çalıştırmak için Azure PowerShell'i yerel olarak da yükleyebilirsiniz. Bu makale, Az PowerShell modülünü gerektirir. Daha fazla bilgi için bkz . Azure PowerShell'i yükleme. Yüklü sürümü bulmak için Get-InstalledModule -Name Az komutunu çalıştırın. PowerShell'i yerel olarak çalıştırıyorsanız Bağlan-AzAccount cmdlet'ini kullanarak Azure'da oturum açın.

İçgörü sağlayıcısını kaydetme

Microsoft. Analizler sağlayıcının bir ağ güvenlik grubu üzerinden akan trafiği başarıyla günlüğe kaydedebilmesi için kaydedilmesi gerekir. Microsoft.Analizler sağlayıcısının kayıtlı olduğundan emin değilseniz, kaydetmek için Register-AzResourceProvider kullanın.

# Register Microsoft.Insights provider.
Register-AzResourceProvider -ProviderNamespace 'Microsoft.Insights'

Akış günlüğü oluşturma

  1. Akış günlüğünü oluşturmak istediğiniz ağ güvenlik grubunun özelliklerini ve sırasıyla Get-AzNetworkSecurityGroup ve Get-Az Depolama Account kullanarak oluşturulan akış günlüğünü depolamak için kullanmak istediğiniz depolama hesabını alın.

    # Place the network security group properties into a variable.
    $nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'
    
    # Place the storage account properties into a variable.
    $sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'
    

    Not

    • Depolama hesabı farklı bir abonelikteyse, ağ güvenlik grubu ve depolama hesabı aynı Azure Active Directory kiracısıyla ilişkilendirilmelidir. Her abonelik için kullandığınız hesabın gerekli izinlere sahip olması gerekir.
  2. New-AzNetworkWatcherFlowLog komutunu kullanarak akış günlüğünü oluşturun. Akış günlüğü, NetworkWatcherRG Ağ İzleyicisi varsayılan kaynak grubunda oluşturulur.

    # Create a version 1 NSG flow log.
    New-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id -Enabled $true
    

Akış günlüğü ve trafik analizi çalışma alanı oluşturma

  1. Akış günlüğünü oluşturmak istediğiniz ağ güvenlik grubunun özelliklerini ve sırasıyla Get-AzNetworkSecurityGroup ve Get-Az Depolama Account kullanarak oluşturulan akış günlüğünü depolamak için kullanmak istediğiniz depolama hesabını alın.

    # Place the network security group properties into a variable.
    $nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'
    
    # Place the storage account properties into a variable.
    $sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'
    

    Not

    • Depolama hesabı, ağ erişimini yalnızca Microsoft hizmetleri veya belirli sanal ağlara kısıtlayan ağ kurallarına sahip olamaz.
    • Depolama hesabı farklı bir abonelikteyse, ağ güvenlik grubu ve depolama hesabı aynı Azure Active Directory kiracısıyla ilişkilendirilmelidir. Her abonelik için kullandığınız hesabın gerekli izinlere sahip olması gerekir.
  2. New-AzOperational Analizler Workspace kullanarak bir trafik analizi çalışma alanı oluşturun.

    # Create a traffic analytics workspace and place its properties into a variable.
    $workspace = New-AzOperationalInsightsWorkspace -Name 'myWorkspace' -ResourceGroupName 'myResourceGroup' -Location 'eastus'
    
  3. New-AzNetworkWatcherFlowLog komutunu kullanarak akış günlüğünü oluşturun. Akış günlüğü, NetworkWatcherRG Ağ İzleyicisi varsayılan kaynak grubunda oluşturulur.

    # Create a version 1 NSG flow log with traffic analytics.
    New-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id -Enabled $true -EnableTrafficAnalytics -TrafficAnalyticsWorkspaceId $workspace.ResourceId
    

Akış günlüğünü değiştirme

Akış günlüğünün özelliklerini değiştirmek için Set-AzNetworkWatcherFlowLog kullanabilirsiniz. Örneğin, akış günlüğü sürümünü değiştirebilir veya trafik analizini devre dışı bırakabilirsiniz.

# Place the network security group properties into a variable.
$nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'

# Place the storage account properties into a variable.
$sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'

# Update the NSG flow log.
Set-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id -Enabled $true -FormatVersion 2 

Bölgedeki tüm akış günlüklerini listeleme

Aboneliğinizdeki belirli bir bölgedeki tüm NSG akış günlüğü kaynaklarını listelemek için Get-AzNetworkWatcherFlowLog komutunu kullanın.

# Get all NSG flow logs in East US region.
Get-AzNetworkWatcherFlowLog -Location 'eastus' | format-table Name

Not

parametresini -Location cmdlet ile Get-AzNetworkWatcherFlowLog kullanmak için, NetworkWatcherRG kaynak grubunda ek bir Okuyucu iznine sahip olmanız gerekir.

Akış günlüğü kaynağının ayrıntılarını görüntüleme

Akış günlüğü kaynağının ayrıntılarını görmek için Get-AzNetworkWatcherFlowLog komutunu kullanın.

# Get the details of a flow log.
Get-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus'

Not

parametresini -Location cmdlet ile Get-AzNetworkWatcherFlowLog kullanmak için, NetworkWatcherRG kaynak grubunda ek bir Okuyucu iznine sahip olmanız gerekir.

Akış günlüğünü indirme

Akış günlüğünün depolama konumu oluşturma sırasında tanımlanır. Depolama hesabınızdan akış günlüklerine erişmek ve bunları indirmek için Azure Depolama Gezgini kullanabilirsiniz. Daha fazla bilgi için bkz. Depolama Explorer'ı kullanmaya başlama.

Depolama hesabına kaydedilen NSG akış günlüğü dosyaları şu yolu izleyin:

https://{storageAccountName}.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{NetworkSecurityGroupName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json

Akış günlüğünün yapısı hakkında bilgi için bkz . NSG akış günlüklerinin günlük biçimi.

Akış günlüğünü devre dışı bırakma

Bir akış günlüğünü silmeden geçici olarak devre dışı bırakmak için Set-AzNetworkWatcherFlowLog parametresini -Enabled $false kullanın. Akış günlüğünün devre dışı bırakılması, ilişkili ağ güvenlik grubu için akış günlüğünü durdurur. Ancak akış günlüğü kaynağı tüm ayarları ve ilişkilendirmeleriyle birlikte kalır. Yapılandırılan ağ güvenlik grubu için akış günlüğünü sürdürmek için istediğiniz zaman yeniden etkinleştirebilirsiniz.

Not

Akış günlüğü için trafik analizi etkinleştirildiyse, akış günlüğünü devre dışı bırakabilmeniz için önce devre dışı bırakılması gerekir.

# Place the network security group properties into a variable.
$nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'

# Place the storage account properties into a variable.
$sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'

# Update the NSG flow log.
Set-AzNetworkWatcherFlowLog -Enabled $false -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id

Akış günlüğünü silme

Bir NSG akış günlüğünü kalıcı olarak silmek için Remove-AzNetworkWatcherFlowLog komutunu kullanın. Akış günlüğünün silinmesi, tüm ayarlarını ve ilişkilendirmelerini siler. Aynı ağ güvenlik grubu için akış günlüğünü yeniden başlatmak için, bunun için yeni bir akış günlüğü oluşturmanız gerekir.

# Delete the flow log.
Remove-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus'

Not

Akış günlüğü silindiğinde, akış günlüğü verileri depolama hesabından silinmez. Akış günlükleri, depolama hesabında depolanan verileri yapılandırılan bekletme ilkesine uyar.

Sonraki adımlar

  • NSG akış günlüklerini denetlemek veya dağıtmak için Azure yerleşik ilkelerini kullanmayı öğrenmek için bkz. Azure İlkesi kullanarak NSG akış günlüklerini yönetme.
  • Trafik analizi hakkında bilgi edinmek için bkz . Trafik analizi.