我目前运行的是Linux VMSS和使用terraform创建的Ubuntu 20.04虚拟机。我希望添加Linux Azure诊断(LAD)扩展,以便向虚拟机启用诊断日志。以下是我当前的地形资源
resource "time_offset" "linux_oms_sas_start" {
offset_days = -1
}
resource "time_offset" "linux_oms_sas_expiry" {
offset_years = 5
}
data "azurerm_storage_account_sas" "linux_oms" {
connection_string = var.storage_account_primary_connection_string
https_only = true
resource_types {
service = true
container = true
object = true
}
services {
blob = true
table = true
queue = false
file = false
}
start = time_offset.linux_oms_sas_start.rfc3339
expiry = time_offset.linux_oms_sas_expiry.rfc3339
permissions {
read = true
write = true
delete = true
list = true
add = true
create = true
update = true
process = true
}
depends_on = [time_offset.linux_oms_sas_start,time_offset.linux_oms_sas_expiry]
}
resource "azurerm_virtual_machine_scale_set_extension" "da_extension" {
name = "DAExtension"
virtual_machine_scale_set_id = var.vmss_id
publisher = "Microsoft.Azure.Monitoring.DependencyAgent"
type = "DependencyAgentLinux"
type_handler_version = "9.5"
auto_upgrade_minor_version = false
}
resource "azurerm_virtual_machine_scale_set_extension" "diagnostics_extension" {
name = "StorageExtension"
virtual_machine_scale_set_id = var.vmss_id
publisher = "Microsoft.Azure.Diagnostics"
type = "LinuxDiagnostic"
type_handler_version = "4.0"
auto_upgrade_minor_version = false
settings = <<SETTINGS
{
"StorageAccount": "${var.storage_account_name}",
"ladCfg": {
"diagnosticMonitorConfiguration": {
"eventVolume": "Medium",
"metrics": {
"metricAggregation": [
{
"scheduledTransferPeriod": "PT1H"
},
{
"scheduledTransferPeriod": "PT1M"
}
],
"resourceId": "${var.vmss_id}"
},
"performanceCounters": ${file("${path.module}/azure_extension_diagnostics_linux_performancecounters.json")},
"syslogEvents": ${file("${path.module}/azure_extension_diagnostics_linux_syslogevents.json")}
},
"sampleRateInSeconds": 15
}
}
SETTINGS
protected_settings = <<SETTINGS
{
"storageAccountName": "${var.storage_account_name}",
"storageAccountSasToken": "${data.azurerm_storage_account_sas.linux_oms.sas}",
"storageAccountEndPoint": "https://core.windows.net",
"sinksConfig": {
"sink": [
{
"name": "SyslogJsonBlob",
"type": "JsonBlob"
},
{
"name": "LinuxCpuJsonBlob",
"type": "JsonBlob"
}
]
}
}
SETTINGS
}
然而,当应用上述地形代码时,我从门户获得如下所示的错误
Enable failed:'NoneType' object has no attribute 'get_fluentd_syslog_src_config'
如果您能帮助解决这个问题,我将不胜感激。
注:我附上了代码中使用的azure_extension_diagnostics_linux_performancecounters.json
文件和azure_extension_diagnostics_linux_syslogevents.json
文件,以供需要时进一步参考。
azure_extension_diagnostics_linux_performancecounters.json
file
{
"performanceCounterConfiguration": []
}
和azure_extension_diagnostics_linux_syslogevents.json
文件
{
"syslogEventConfiguration": {
"LOG_AUTH": "LOG_DEBUG",
"LOG_AUTHPRIV": "LOG_DEBUG",
"LOG_CRON": "LOG_DEBUG",
"LOG_DAEMON": "LOG_DEBUG",
"LOG_FTP": "LOG_DEBUG",
"LOG_KERN": "LOG_DEBUG",
"LOG_LOCAL0": "LOG_DEBUG",
"LOG_LOCAL1": "LOG_DEBUG",
"LOG_LOCAL2": "LOG_DEBUG",
"LOG_LOCAL3": "LOG_DEBUG",
"LOG_LOCAL4": "LOG_DEBUG",
"LOG_LOCAL5": "LOG_DEBUG",
"LOG_LOCAL6": "LOG_DEBUG",
"LOG_LOCAL7": "LOG_DEBUG",
"LOG_LPR": "LOG_DEBUG",
"LOG_MAIL": "LOG_DEBUG",
"LOG_NEWS": "LOG_DEBUG",
"LOG_SYSLOG": "LOG_DEBUG",
"LOG_USER": "LOG_DEBUG",
"LOG_UUCP": "LOG_DEBUG"
}
}
Ubuntu 20.04不支持安装Diagnostics Agent。只有Azure监视代理或日志分析代理和依赖代理是可能的。
参考:
Azure监控代理概述- Azure Monitor | Microsoft Docs
Azure Compute - Linux诊断扩展4.0 - Azure虚拟机| Microsoft Docs