【发布时间】:2021-07-07 19:30:03
【问题描述】:
有没有通过 terraform 为 azure windows vm 启用 IaaSDiagnostics 的示例?
我在尝试部署我的计划时收到以下错误,在门户中查看它已经部署了一半,但它并不满意,并且 terraform 将继续尝试重新部署。
Error: Code="VMExtensionProvisioningError" Message="VM has reported a failure when processing extension 'IaaSDiagnostics'. Error message: \"Exception when parsing configuration: Error: The element 'PublicConfig' in namespace 'http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration' cannot contain text. List of possible elements expected: 'WadCfg, StorageAccount, LocalResourceDirectory, StorageType, WadCfgBlob' in namespace '
我有以下地形资源:
resource "azurerm_virtual_machine_extension" "diag" {
name = "IaaSDiagnostics"
virtual_machine_id = azurerm_virtual_machine.vm.id
publisher = "Microsoft.Azure.Diagnostics"
type = "IaaSDiagnostics"
type_handler_version = "1.5"
auto_upgrade_minor_version = true
settings = <<SETTINGS
{
"xmlCfg": "${base64encode(file(local.diagConfigFile))}",
"storageAccount": "${azurerm_storage_account.vm.name}"
}
SETTINGS
protected_settings = <<SETTINGS
{
"storageAccountName": "${azurerm_storage_account.vm.name}",
"storageAccountKey": "${azurerm_storage_account.vm.primary_access_key}}",
"storageAccountEndPoint": "${azurerm_storage_account.vm.primary_blob_endpoint}}"
}
SETTINGS
}
我的配置文件有这个 json:
{
"StorageAccount": "$$StorageName",
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 5120,
"Metrics": {
"resourceId": "$$resourceId",
"MetricAggregation": [
{
"scheduledTransferPeriod": "PT1H"
},
{
"scheduledTransferPeriod": "PT1M"
}
]
},
"DiagnosticInfrastructureLogs": {
"scheduledTransferLogLevelFilter": "Error",
"scheduledTransferPeriod": "PT1M"
},
"PerformanceCounters": {
"scheduledTransferPeriod": "PT1M",
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "Processor Information(_Total)% Processor Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Processor Information(_Total)% Privileged Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Processor Information(_Total)% User Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Processor Information(_Total)Processor Frequency",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "SystemProcesses",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Process(_Total)Thread Count",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Process(_Total)Handle Count",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "SystemSystem Up Time",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "SystemContext Switches/sec",
"unit": "CountPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "SystemProcessor Queue Length",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Memory% Committed Bytes In Use",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "MemoryAvailable Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "MemoryCommitted Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "MemoryCache Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "MemoryPool Paged Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "MemoryPool Nonpaged Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "MemoryPages/sec",
"unit": "CountPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "MemoryPage Faults/sec",
"unit": "CountPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Process(_Total)Working Set",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Process(_Total)Working Set - Private",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)% Disk Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)% Disk Read Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)% Disk Write Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)% Idle Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Disk Bytes/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Disk Read Bytes/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Disk Write Bytes/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Disk Transfers/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Disk Reads/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Disk Writes/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Avg. Disk sec/Transfer",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Avg. Disk sec/Read",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Avg. Disk sec/Write",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Avg. Disk Queue Length",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Avg. Disk Read Queue Length",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Avg. Disk Write Queue Length",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)% Free Space",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "LogicalDisk(_Total)Free Megabytes",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Network Interface()Bytes Total/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Network Interface()Bytes Sent/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Network Interface()Bytes Received/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Network Interface()Packets/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Network Interface()Packets Sent/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Network Interface()Packets Received/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Network Interface()Packets Outbound Errors",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "Network Interface()Packets Received Errors",
"unit": "Count",
"sampleRate": "PT60S"
}
]
},
"WindowsEventLog": {
"scheduledTransferPeriod": "PT1M",
"DataSource": [
{
"name": "Application![System[(Level=1 or Level=2 or Level=3)]]"
},
{
"name": "System![System[(Level=1 or Level=2 or Level=3)]]"
},
{
"name": "Security!*[System[(band(Keywords,4503599627370496))]]"
}
]
},
"Directories": {
"scheduledTransferPeriod": "PT1M"
},
"sinks": "applicationInsights"
},
"SinksConfig": {
"Sink": [
{
"name": "applicationInsights",
"ApplicationInsights": "$$AppInstKey"
}
]
}
}
}
我在另一个页面 (https://github.com/terraform-providers/terraform-provider-azurerm/issues/2943) 上找到了这个,这可能是我的问题的根源,但我在其他地方找不到此配置的任何其他示例,是否有可能以某种方式从已经存在的 VM 中提取它启用了吗?
编辑----
我在 VM (C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.18.0.5) 上找到了安装日志,因此我比较了 terraform 安装和通过门户进行的安装。
当通过 terraform 执行此操作时,json 被包裹在一些 xml 标记中(我猜这可以解释错误):
DiagnosticsPlugin.exe Information: 0 : [4/12/2021 6:58:54 PM] WadCfg is provided in initial configuration. Using that to initialize Diagnostics.
DiagnosticsPlugin.exe Information: 0 : [4/12/2021 6:58:54 PM] <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">{
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 5120,
门户安装有这个:
DiagnosticsPlugin.exe Information: 0 : [4/12/2021 6:48:44 PM] WadCfg is provided in initial configuration. Using that to initialize Diagnostics.
DiagnosticsPlugin.exe Information: 0 : [4/12/2021 6:48:44 PM] { "WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 5120,
任何想法如何停止 terraform 添加 XML?
【问题讨论】:
标签: terraform azure-virtual-machine terraform-provider-azure