0

我正在编写 PowerShell Runbook 以查看 azure 订阅中的所有 vm,确定是否未启用来宾级别监控并启用它

以下是我用来启用诊断的命令。

Set-AzureRmVMDiagnosticsExtension -ResourceGroupName xxxxxx -VMName xxxxxx -DiagnosticsConfigurationPath $diagnosticsconfig_path -StorageAccountName xxxxxx

我正在考虑将 diag xml 文件存储在存储博客中,如何使用 $diagnosticsconfig_path 指向它?

如果我使用

Get-AzureStorageBlobContent -blob "xxx.json" -Container xxx -Context $storageAccount.Context 

or

Get-AzureStorageFileContent -ShareName 'xxx' -Context $storageAccount.Context -path xxx.json 

Runbook 可以下载该文件,但如何将此文件称为 Set-AzureRmVMDiagnosticsExtension 中的诊断路径

4

2 回答 2

1

试试下面的命令,你不需要下载文件,我们可以直接将路径指向blob url。

$SAResourceGroupName="<Storage Account ResourceGroupName>"
$StorageAccountName="<StorageAccountName>"

$StorageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $SAResourceGroupName -AccountName $StorageAccountName).Value[1]
$Context=New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey

$tmpStart = Get-Date
$tmpEnd = $tmpStart.AddHours(2.0)
$SASToken = New-AzureStorageBlobSASToken -Blob "diagnostics_publicconfig.xml" -Container "111" -Context $Context -Permission r -StartTime $tmpStart -ExpiryTime $tmpEnd -FullURI

Set-AzureRmVMDiagnosticsExtension -ResourceGroupName joywebapp -VMName joyVM -DiagnosticsConfigurationPath "$SASToken" -StorageAccountName joystoragev2

在此处输入图像描述

在运行手册中:

在此处输入图像描述

于 2018-11-21T06:30:42.470 回答
1

感谢伟大的剧本。让我分步骤定义整个过程:

  1. 转到此 Microsoft 页面,复制 XML 示例文件,粘贴到 powershell 中并另存为 XML。

  2. 选择一个存储帐户,选择一个容器并上传 XML 文件。

  3. 现在使用此脚本来启用或更改现有的存储帐户。

    $VMRGName = (Get-AzureRmResource -Name $VMName -ResourceType "Microsoft.Compute/virtualMachines" ).ResourceGroupName
    $StorageAccountName= "storageaccount01"
    $SAResourceGroupName= (Get-AzureRmResource -Name $diagstoragename -ResourceType 'Microsoft.Storage/storageAccounts').ResourceGroupName
    $storagecontainer = "test"
    $StorageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $SAResourceGroupName -AccountName $StorageAccountName).Value[1]
    $Context= New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
    $tmpStart = Get-Date
    $tmpEnd = $tmpStart.AddHours(2.0)
    $SASToken = New-AzureStorageBlobSASToken -Blob "DiagnosticsPubConfig.xml" -Container $storagecontainer -Context $Context -Permission r -StartTime $tmpStart -ExpiryTime $tmpEnd -FullURI
    #to SET
    Set-AzureRmVMDiagnosticsExtension -ResourceGroupName $VMRGName -VMName $VMName  -DiagnosticsConfigurationPath "$SASToken" -StorageAccountName $StorageAccountName 
    #to GET
    $publicsettings = (Get-AzureRmVMDiagnosticsExtension  -ResourceGroupName $VMRGName -VMName $VMName).PublicSettings
    $encodedconfig = (ConvertFrom-Json -InputObject $publicsettings).StorageAccount
于 2020-04-28T11:36:34.917 回答