Set-AzureRmNetworkWatcherConfigFlowLog

Configures flow logging for a target resource.

Warning

The AzureRM PowerShell module has been officially deprecated as of February 29, 2024. Users are advised to migrate from AzureRM to the Az PowerShell module to ensure continued support and updates.

Although the AzureRM module may still function, it's no longer maintained or supported, placing any continued use at the user's discretion and risk. Please refer to our migration resources for guidance on transitioning to the Az module.

Syntax

Set-AzureRmNetworkWatcherConfigFlowLog
   -NetworkWatcher <PSNetworkWatcher>
   -TargetResourceId <String>
   -EnableFlowLog <Boolean>
   -StorageAccountId <String>
   [-EnableRetention <Boolean>]
   [-RetentionInDays <Int32>]
   [-AsJob]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzureRmNetworkWatcherConfigFlowLog
   -NetworkWatcher <PSNetworkWatcher>
   -TargetResourceId <String>
   -EnableFlowLog <Boolean>
   -StorageAccountId <String>
   [-EnableRetention <Boolean>]
   [-RetentionInDays <Int32>]
   [-AsJob]
   [-EnableTrafficAnalytics]
   -Workspace <IOperationalInsightWorkspace>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzureRmNetworkWatcherConfigFlowLog
   -NetworkWatcher <PSNetworkWatcher>
   -TargetResourceId <String>
   -EnableFlowLog <Boolean>
   -StorageAccountId <String>
   [-EnableRetention <Boolean>]
   [-RetentionInDays <Int32>]
   [-AsJob]
   [-EnableTrafficAnalytics]
   -WorkspaceResourceId <String>
   -WorkspaceGUID <String>
   -WorkspaceLocation <String>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzureRmNetworkWatcherConfigFlowLog
   -NetworkWatcherName <String>
   -ResourceGroupName <String>
   -TargetResourceId <String>
   -EnableFlowLog <Boolean>
   -StorageAccountId <String>
   [-EnableRetention <Boolean>]
   [-RetentionInDays <Int32>]
   [-AsJob]
   [-EnableTrafficAnalytics]
   -Workspace <IOperationalInsightWorkspace>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzureRmNetworkWatcherConfigFlowLog
   -NetworkWatcherName <String>
   -ResourceGroupName <String>
   -TargetResourceId <String>
   -EnableFlowLog <Boolean>
   -StorageAccountId <String>
   [-EnableRetention <Boolean>]
   [-RetentionInDays <Int32>]
   [-AsJob]
   [-EnableTrafficAnalytics]
   -WorkspaceResourceId <String>
   -WorkspaceGUID <String>
   -WorkspaceLocation <String>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzureRmNetworkWatcherConfigFlowLog
   -NetworkWatcherName <String>
   -ResourceGroupName <String>
   -TargetResourceId <String>
   -EnableFlowLog <Boolean>
   -StorageAccountId <String>
   [-EnableRetention <Boolean>]
   [-RetentionInDays <Int32>]
   [-AsJob]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzureRmNetworkWatcherConfigFlowLog
   -Location <String>
   -TargetResourceId <String>
   -EnableFlowLog <Boolean>
   -StorageAccountId <String>
   [-EnableRetention <Boolean>]
   [-RetentionInDays <Int32>]
   [-AsJob]
   [-EnableTrafficAnalytics]
   -Workspace <IOperationalInsightWorkspace>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzureRmNetworkWatcherConfigFlowLog
   -Location <String>
   -TargetResourceId <String>
   -EnableFlowLog <Boolean>
   -StorageAccountId <String>
   [-EnableRetention <Boolean>]
   [-RetentionInDays <Int32>]
   [-AsJob]
   [-EnableTrafficAnalytics]
   -WorkspaceResourceId <String>
   -WorkspaceGUID <String>
   -WorkspaceLocation <String>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzureRmNetworkWatcherConfigFlowLog
   -Location <String>
   -TargetResourceId <String>
   -EnableFlowLog <Boolean>
   -StorageAccountId <String>
   [-EnableRetention <Boolean>]
   [-RetentionInDays <Int32>]
   [-AsJob]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

The Set-AzureRmNetworkWatcherConfigFlowLog configures flow logging for a target resource. Properties to configure include: whether or not flow logging is enabled for the resource provided, the configured storage account to send logs, and the retention policy for the logs. Currently Network Security Groups are supported for flow logging.

Examples

Example 1: Configure Flow Logging for a Specified NSG

PS C:\> $NW = Get-AzurermNetworkWatcher -ResourceGroupName NetworkWatcherRg -Name NetworkWatcher_westcentralus
PS C:\> $nsg = Get-AzureRmNetworkSecurityGroup -ResourceGroupName NSGRG -Name appNSG
PS C:\> $storageId = "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123"


PS C:\> Set-AzureRmNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -EnableFlowLog $true -StorageAccountId $storageID

TargetResourceId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Network/networkSecurityGroups/appNSG
StorageId        : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123
Enabled          : True
RetentionPolicy  : {
                     "Days": 0,
                     "Enabled": false
                   }

In this example we configure flow logging status for a Network Security Group. In the response, we see the specified NSG has flow logging enabled, and no retention policy set.

Example 2: Configure Flow Logging and Traffic Analytics for a Specified NSG

PS C:\> $NW = Get-AzurermNetworkWatcher -ResourceGroupName NetworkWatcherRg -Name NetworkWatcher_westcentralus
PS C:\> $nsg = Get-AzureRmNetworkSecurityGroup -ResourceGroupName NSGRG -Name appNSG
PS C:\> $storageId = "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123"
PS C:\> $workspace = Get-AzureRmOperationalInsightsWorkspace -Name WorkspaceName -ResourceGroupName WorkspaceRg


PS C:\> Set-AzureRmNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -EnableFlowLog $true -StorageAccountId $storageID -EnableTrafficAnalytics -Workspace $workspace

TargetResourceId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Network/networkSecurityGroups/appNSG
StorageId        : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123
Enabled          : True
RetentionPolicy  : {
                     "Days": 0,
                     "Enabled": false
                   }
FlowAnalyticsConfiguration : {
            "networkWatcherFlowAnalyticsConfiguration": {
              "enabled": true,
              "workspaceId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
              "workspaceRegion": "WorkspaceLocation",
              "workspaceResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourcegroups/WorkspaceRg/providers/microsoft.operationalinsights/workspaces/WorkspaceName"
            }
          }

In this example we configure flow logging status and Traffic Analytics for a Network Security Group. In the response, we see the specified NSG has flow logging and Traffic Analytics enabled, and no retention policy set.

Parameters

-AsJob

Run cmdlet in the background

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

The credentials, account, tenant, and subscription used for communication with azure.

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableFlowLog

Flag to enable/disable flow logging.

Type:Boolean
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-EnableRetention

Flag to enable/disable retention.

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnableTrafficAnalytics

Flag to enable/disable retention.

Type:SwitchParameter
Aliases:EnableTA
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Location

Location of the network watcher.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NetworkWatcher

The network watcher resource.

Type:PSNetworkWatcher
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NetworkWatcherName

The name of network watcher.

Type:String
Aliases:Name
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ResourceGroupName

The name of the network watcher resource group.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-RetentionInDays

Number of days to retain flow log records.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-StorageAccountId

ID of the storage account which is used to store the flow log.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-TargetResourceId

The target resource ID.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Workspace

The WS object which is used to store the traffic analytics data.

Type:IOperationalInsightWorkspace
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WorkspaceGUID

GUID of the WS which is used to store the traffic analytics data.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WorkspaceLocation

Azure Region of the WS which is used to store the traffic analytics data.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WorkspaceResourceId

Subscription of the WS which is used to store the traffic analytics data.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Inputs

PSNetworkWatcher

Parameters: NetworkWatcher (ByValue)

String

Parameters: NetworkWatcherName (ByValue)

Boolean

Int32

IOperationalInsightWorkspace

Outputs

PSFlowLog

Notes

Keywords: azure, azurerm, arm, resource, management, manager, network, networking, watcher, flow, logs, flowlog, logging