Azure PowerShell を使用して仮想ネットワーク フロー ログを作成、変更、有効化、無効化、または削除する

仮想ネットワーク フロー ログは、Azure 仮想ネットワークを通過する IP トラフィックに関する情報をログに記録できる Azure Network Watcher の機能です。 仮想ネットワーク フロー ログの詳細については、仮想ネットワーク フロー ログの概要に関するページを参照してください。

この記事では、Azure PowerShell を使用して仮想ネットワーク フロー ログを作成、変更、有効化、無効化、または削除する方法について説明します。 Azure portal または Azure CLI を使用して仮想ネットワーク フロー ログを管理する方法について説明します。

前提条件

Insights プロバイダーの登録

仮想ネットワーク内のトラフィックを正しくログに記録するには、Microsoft.Insights プロバイダーが登録されている必要があります。 Microsoft.Insights プロバイダーが登録されているかどうか不明な場合は、Register-AzResourceProvider を使用して登録します。

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

仮想ネットワーク フロー ログを有効にする

New-AzNetworkWatcherFlowLog を使用して仮想ネットワーク フロー ログを作成します。

# Place the virtual network configuration into a variable.
$vnet = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup
# Place the storage account configuration into a variable.
$storageAccount = Get-AzStorageAccount -Name myStorageAccount -ResourceGroupName myResourceGroup

# Create a VNet flow log.
New-AzNetworkWatcherFlowLog -Enabled $true -Name myVNetFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG -StorageId $storageAccount.Id -TargetResourceId $vnet.Id

仮想ネットワーク フロー ログとトラフィック分析を有効にする

New-AzOperationalInsightsWorkspace を使用してトラフィック分析ワークスペースを作成し、New-AzNetworkWatcherFlowLog を使用して、それを使用する仮想ネットワーク フロー ログを作成します。

# Place the virtual network configuration into a variable.
$vnet = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup
# Place the storage account configuration into a variable.
$storageAccount = Get-AzStorageAccount -Name myStorageAccount -ResourceGroupName myResourceGroup

# Create a traffic analytics workspace and place its configuration into a variable.
$workspace = New-AzOperationalInsightsWorkspace -Name myWorkspace -ResourceGroupName myResourceGroup -Location EastUS

# Create a VNet flow log.
New-AzNetworkWatcherFlowLog -Enabled $true -Name myVNetFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG -StorageId $storageAccount.Id -TargetResourceId $vnet.Id -EnableTrafficAnalytics -TrafficAnalyticsWorkspaceId $workspace.ResourceId -TrafficAnalyticsInterval 10

リージョン内のすべてのフロー ログを一覧表示する

Get-AzNetworkWatcherFlowLog を使用して、サブスクリプション内の特定のリージョン内のすべてのフロー ログ リソースを一覧表示します。

# Get all flow logs in East US region.
Get-AzNetworkWatcherFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG | format-table Name

仮想ネットワーク フロー ログ リソースを表示する

Get-AzNetworkWatcherFlowLog を使用して、フロー ログ リソースの詳細を表示します。

# Get the flow log details.
Get-AzNetworkWatcherFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG -Name myVNetFlowLog

フローのログをダウンロードする

ストレージ アカウントから仮想ネットワーク フロー ログをダウンロードするには、Get-AzStorageBlobContent コマンドレットを使用します。

仮想ネットワーク フロー ログは、次のパスでストレージ アカウントに保存されます。

https://{storageAccountName}.blob.core.windows.net/insights-logs-flowlogflowevent/flowLogResourceID=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/NETWORKWATCHERRG/PROVIDERS/MICROSOFT.NETWORK/NETWORKWATCHERS/NETWORKWATCHER_{Region}/FLOWLOGS/{FlowlogResourceName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json

Note

Azure Storage Explorer を使用して、ストレージ アカウント コンテナーから VNet フロー ログ ファイルをダウンロードすることもできます。 Storage Explorer は、Azure Storage データにアクセスして操作するために便利に使用できるスタンドアロン アプリです。 詳細については、「Storage Explorer の概要」を参照してください。

フロー ログ リソースでトラフィック分析を無効にする

フロー ログ リソースのトラフィック分析を無効にし、引き続き 仮想ネットワーク フロー ログを生成してストレージ アカウントに保存するには、Set-AzNetworkWatcherFlowLog を使用します。

# Place the virtual network configuration into a variable.
$vnet = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup
# Place the storage account configuration into a variable.
$storageAccount = Get-AzStorageAccount -Name mynwstorageaccount -ResourceGroupName Storage

# Update the VNet flow log.
Set-AzNetworkWatcherFlowLog -Enabled $true -Name myVNetFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG -StorageId $storageAccount.Id -TargetResourceId $vnet.Id

仮想ネットワーク フローのログを無効にする

仮想ネットワーク フロー ログを削除せずに無効にして、後で再度有効にできるようにするには、Set-AzNetworkWatcherFlowLog を使用します。

# Place the virtual network configuration into a variable.
$vnet = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup
# Place the storage account configuration into a variable.
$storageAccount = Get-AzStorageAccount -Name mynwstorageaccount -ResourceGroupName Storage

# Disable the VNet flow log.
Set-AzNetworkWatcherFlowLog -Enabled $false -Name myVNetFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG -StorageId $storageAccount.Id -TargetResourceId $vnet.Id

仮想ネットワーク フロー ログ リソースを削除する

仮想ネットワーク フロー ログ リソースを削除するには、Remove-AzNetworkWatcherFlowLog を使用します。

# Delete the VNet flow log.
Remove-AzNetworkWatcherFlowLog -Name myVNetFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG