【问题标题】:azure - powershell Set-AzVMDiagnosticsExtension doesn't seem working probably across subscriptionsazure - powershell Set-AzVMDiagnosticsExtension 似乎无法跨订阅工作
【发布时间】:2020-06-24 17:39:04
【问题描述】:

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

我尝试实现的不同场景:

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

    结果:有效

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

    结果:有效

  3. 不同订阅中的虚拟机

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


环境

窗户

Powershell 7.0.2


DiagnosticsConfiguration.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

【问题讨论】:

    标签: azure powershell azure-powershell azure-vm


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 感谢@jagrati-modi-ais。我知道 Get-AzVMDiagnosticsExtension,是的,我得到了类似的输出。这里真正的问题是扩展不会在存储表中创建预期的表(或者如果存在则写入它).. 表:WADWindowsEventLogsTable。
    • 能否在您的存储帐户中看到该表??我将更新问题以使问题更清楚,并更新 DiagnosticsConfiguration.json 以包含级别 4 以快速使日志数据流用于测试目的
    • 哦,我没有检查,因为你之前没有提到这个问题。让我检查一下!
    • 谢谢,我会很感激的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    相关资源
    最近更新 更多