Хотите подключить виртуальные машины к Log Analytics? Используйте этот скрипт PowerShell

Опубликовано: 3 Марта, 2023
Хотите подключить виртуальные машины к Log Analytics? Используйте этот скрипт PowerShell

Существует несколько сценариев для подключения виртуальной машины к рабочей области Log Analytics, но для большинства из них требуется множество параметров, таких как виртуальная машина, рабочая область, идентификатор рабочей области, группа ресурсов и т. д.

Здесь я суммирую процесс и создаю простой сценарий PowerShell, который будет извлекать всю информацию, которая не требуется во время ввода, и подключать любую заданную виртуальную машину к рабочей области.

Скрипт прост в использовании. Просто запустите его и укажите два обязательных параметра: WorkspaceName и VM, как показано на изображении ниже.

В результате виртуальная машина подключена к рабочей области. Чтобы попасть на эту страницу, щелкните нужный Log Analytics, затем щелкните Виртуальные машины, расположенные в разделе .

Вот скрипт PowerShell:

Парам(
[параметр (обязательный = $ true)] $ WorkspaceName,
[параметр (обязательный = $ true)] $ VM
)
#Проверка подключения к Azure..
Import-Module AzureRM -ErrorAction SilentlyContinue
Если (-not (Get-Module AzureRM)) {Write-Host;Write-Host -ForegroundColor Yellow «Модуль AzureRM не найден на текущем сервере, начнется установка (дождитесь завершения, потребуется некоторое подтверждение) ”; Install-Module AzureRM}
if (Get-AzureRMContext) {write-host;write-host «Вы подключены к следующей подписке Microsoft Azure:» (Get-AzureRmContext).SubscriptionName} Else { Write-host -ForegroundColor Yellow «Вы не подключены, подключитесь.”; Connect-AzureRmAccount}
#Проверка параметров…
If (-not $VM) {Write-Host -ForegroundColor Yellow «Вы должны указать виртуальную машину в параметре -VM»; возвращаться}
If (-not $WorkspaceName) {Write-Host -ForegroundColor Yellow «Вы должны указать рабочее пространство в параметре -VM»; возвращаться}
#Проверка данных параметра…
$vVM = Get-AzureRmResource -Name $VM -ErrorAction:SilentlyContinue
If (-not $vVM) {Write-Host -ForegroundColor Yellow «$VM» не найден в текущей подписке.»; возвращаться}
$vWorkspace = Get-AzureRmResource -Name $WorkspaceName
If (-not $WorkspaceName) {Write-Host -ForegroundColor Yellow «Рабочее пространство » $WorkspaceName » не найдено в текущей подписке.»; возвращаться}
$vWorkSpace = Get-AzureRmOperationalInsightsWorkspace -Name $vWorkspace.Name -ResourceGroupName $vWorkspace.ResourceGroupName
$vWorkspaceID = $vWorkspace.CustomerID
$vworkspaceKey = (Get-AzureRmOperationalInsightsWorkspaceSharedKeys -ResourceGroupName $vworkspace.ResourceGroupName -Name $vworkspace.Name).PrimarySharedKey
Set-AzureRmVMExtension -ResourceGroupName $vVM.ResourceGroupName -VMName $vVM.Name -Name 'MicrosoftMonitoringAgent' -Publisher 'Microsoft.EnterpriseCloud.Monitoring' -ExtensionType 'MicrosoftMonitoringAgent' -TypeHandlerVersion '1.0' -Location $vVM.Location -SettingString «{' workspaceId': '$vWorkspaceID'}" -ProtectedSettingString "{'workspaceKey': '$vworkspaceKey'}"

Вот и все. Все готово.