如何使用 ARM 模板将多个 Azure VM 连接到日志分析工作区?

时间:2021-04-12 06:03:35

标签: azure arm-template azure-log-analytics

我可以使用 ARM 模板 (https://docs.microsoft.com/en-us/azure/azure-monitor/agents/resource-manager-agent) 将 Azure VM 连接到日志分析工作区,但我想一次将一个订阅和不同资源组中的多个 VM 连接到日志分析工作区. 有什么办法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如果您想在 Azure 中的日志分析工作区的订阅中添加一堆 VM,我们可以使用 PowerShell 命令 Set-AzVMExtension 来实现它。

例如

# all windows VMs in the subscription (which you set via Set-AzContext)
$PublicSettings = @{ "workspaceId" = "" }
$ProtectedSettings = @{ "workspaceKey" = "" }
 
# Using -Status switch to get the status too
Get-AzVM -Status | Where-Object{ $_.Powerstate -eq "VM running" -and $_.StorageProfile.OsDisk.OsType -eq "Windows" } | ForEach-Object { 
    $VMName = $_.Name
    $ResourceGroupName = $_.ResourceGroupName
    $Location = $_.Location
 
    Write-Host "Processing $VMName"
 
    Set-AzVMExtension -ExtensionName "MicrosoftMonitoringAgent" `
    -ResourceGroupName "$ResourceGroupName" `
    -VMName "$VMName" `
    -Publisher "Microsoft.EnterpriseCloud.Monitoring" `
    -ExtensionType "MicrosoftMonitoringAgent" `
    -TypeHandlerVersion 1.0 `
    -Settings $PublicSettings `
    -ProtectedSettings $ProtectedSettings `
    -Location "$Location"
 
}

有关详细信息,请参阅 herehere