0

我正在尝试启用 VM 诊断扩展以将事件日志(应用程序 [1,2,3],安全 [all],系统 [1,2,3])发送到一个统一存储帐户(让我们调用日志存储) 应该在其中创建 WADWindowsEventLogsTable。

我试图实现的不同场景:

  1. VM 位于日志存储所在的同一资源组中。

    结果:有效

  2. VM 位于日志存储所在的不同资源组中。

    结果:有效

  3. 不同订阅中的虚拟机

    结果:扩展将被启用。但是,当转到代理选项卡时,我会在存储帐户部分 [代理选项卡,存储帐户部分错误][1] 下收到错误消息“值不能为空”


环境

视窗

电源外壳 7.0.2


诊断配置.json

{
"PublicConfig": {
    "WadCfg": {
        "DiagnosticMonitorConfiguration": {
            "overallQuotaInMB": 5120,
            "WindowsEventLog": {
                "scheduledTransferPeriod": "PT1M",
                    "DataSource": [
                    {
                        "name": "Application!*[System[(Level=1 or Level=2 or Level=3 or Level=4)]]"
                    },
                    {
                        "name": "Security!*"
                    },
                    {
                        "name": "System!*[System[(Level=1 or Level=2 or Level=3 or Level=4)]]"
                    }
                ]
            }
        }
    },
    "StorageAccount": "logsstorage",
    "StorageType": "TableAndBlob"
},
"PrivateConfig": {
    "storageAccountName": "logsstorage",
    "storageAccountKey": "xxxxxxx",
    "storageAccountEndPoint": "https://logsstorage.blob.core.windows.net"
}

}

Powershell 命令:

Set-AzVMDiagnosticsExtension -ResourceGroupName "myvmresourcegroup" -VMName "myvm"  -DiagnosticsConfigurationPath "DiagnosticsConfiguration.json"

我什至尝试将帐户名称和密钥明确指定为:

$storage_key = "xxxxxx"
Set-AzVMDiagnosticsExtension -ResourceGroupName "myvmresourcegroup" -VMName "myvm"  -DiagnosticsConfigurationPath "DiagnosticsConfiguration.json" -StorageAccountName "logsstroage" -StorageAccountKey $storage_key

我花了很多时间试图在没有运气的情况下解决这个问题。



更新 :

这里真正的问题是扩展没有创建预期的表WADWindowsEventLogsTable(或者如果它已经存在则写入它)[1]:https ://i.stack.imgur.com/IP9zW.jpg

4

1 回答 1

0

我尝试了与您提到的相同的方案,并将存储帐户放在不同的订阅中。

您可以使用以下命令获取虚拟机上诊断扩展的设置。

Get-AzVMDiagnosticsExtension -ResourceGroupName "ResourceGroup11" -VMName "ContosoVM22"

因此,在下图中,您可以看到突出显示的部分。使用我在DiagnosticsConfiguration.json中提供的相同存储帐户(来自不同订阅)启用了扩展。

在此处输入图像描述

但是,当您转到“代理”选项卡时,会看到错误消息“该值不能为空”,因为如果您选中它,下拉菜单中只会显示该订阅的存储帐户列表。它无法从不同的订阅中获取存储帐户。因此,它无法从列表中选择任何值并显示空值。

此外,如果您检查VM -> 诊断设置 -> 概述 -> 代理部分。您将获得您在设置中提供的相同存储帐户。(在概述部分,您可以验证存储帐户)。

在此处输入图像描述

于 2020-06-25T06:25:34.153 回答