Terraform Azurerm - 数据导出规则

Posted

技术标签:

【中文标题】Terraform Azurerm - 数据导出规则【英文标题】:Terraform Azurerm - Data Export Rule 【发布时间】:2021-10-23 16:40:58 【问题描述】:

我的查询与 azurerm_log_analytics_data_export_rule 有关。我按照以下链接中的所有步骤在门户中创建了 Log Analytics 工作区和 Eventhub。 https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/log_analytics_data_export_rule

Terraform Plan 和 Apply 都成功了。但是在 Eventhub 中没有创建预期的表。例如(根据上面的链接)“心跳”表在创建 export_rule 后未创建 Eventhub。下面的 Microsoft 文档提到,一旦导出规则创建成功,表将在 EH 或存储帐户中自动创建。

https://docs.microsoft.com/en-us/azure/azure-monitor/logs/logs-data-export?tabs=portal

如果我能获得有关此规则的一些信息,将会很有帮助。

【问题讨论】:

【参考方案1】:

您遵循的 Hashicrop 模板将创建新的资源组、存储帐户、日志分析工作区和导出规则。

由于上述 terraform 模板正在创建新环境,默认情况下不会存在心跳日志,因此没有创建心跳日志容器。 当我们在我们的环境中进行测试时,将日志分析工作区数据的心跳日志导出到存储帐户需要将近 30 分钟才能使数据反映在我们的存储帐户中。

Data completeness

如果目的地不可用,数据导出将继续重试发送数据长达 30 分钟。如果 30 分钟后仍然不可用,则数据将被丢弃,直到目标可用为止。

【讨论】:

您好文卡特什,感谢您的回复。我在这次对话中分享了我的代码(忽略存储帐户资源,因为我首先尝试将数据从 SA 发送到 LAW)。导出规则应该有助于将提到的表格数据从 LAW 发送到 EH。让我知道这是否成功在 EH 中创建表。 @user2913892 - 当我在存储帐户中启用 Blob 的诊断设置以记录分析工作区时,我在我们的环境中设置了相同的配置。这些是记录在日志分析工作空间的“Storagebloblogs”表中的日志。 我们已经厌倦了将“使用”表导出到事件中心花了将近 30 分钟这里是参考输出的屏幕截图。 imgur.com/WIK4APj 根据 azure 文档,支持的列表中不存在“存储 blob 日志”(docs.microsoft.com/en-us/azure/azure-monitor/logs/…) 表,并且无法将日志存储日志从日志分析工作区导出到事件中心。【参考方案2】:
provider "azurerm" 
  features


resource "azurerm_resource_group" "data_export_resource_group" 
  name     = "test_data_export_rg"
  location = "centralus"


resource "azurerm_log_analytics_workspace" "data_export_log_analytics_workspace" 
  name                = "testdataexportlaw"
  location            = azurerm_resource_group.data_export_resource_group.location
  resource_group_name = azurerm_resource_group.data_export_resource_group.name
  sku                 = "PerGB2018"
  retention_in_days   = 30


resource "azurerm_storage_account" "data_export_azurerm_storage_account" 
  name                     = "testdataexportazurermsa"
  resource_group_name      = azurerm_resource_group.data_export_resource_group.name
  location                 = azurerm_resource_group.data_export_resource_group.location
  account_tier             = "Standard"
  account_replication_type = "LRS"


resource "azurerm_eventhub_namespace" "data_export_azurerm_eventhub_namespace" 
  name                = "testdataexportehnamespace"
  location            = azurerm_resource_group.data_export_resource_group.location
  resource_group_name = azurerm_resource_group.data_export_resource_group.name
  sku                 = "Standard"
  capacity            = 1

  tags = 
    environment = "Production"
  


resource "azurerm_eventhub" "data_export_eventhub" 
  name                = "testdataexporteh1"
  namespace_name      = azurerm_eventhub_namespace.data_export_azurerm_eventhub_namespace.name
  resource_group_name = azurerm_resource_group.data_export_resource_group.name
  partition_count     = 2
  message_retention   = 1


```
resource "azurerm_log_analytics_data_export_rule" "example" 
  name                    = "testdataExport1"
  resource_group_name     = azurerm_resource_group.data_export_resource_group.name
  workspace_resource_id   = azurerm_log_analytics_workspace.data_export_log_analytics_workspace.id
  destination_resource_id = azurerm_eventhub.data_export_eventhub.id
  table_names             = ["Usage","StorageBlobLogs"]
  enabled                 = true
 
```

【讨论】:

请解释您的解决方案。没有解释且只有代码的答案会被标记为省力。

以上是关于Terraform Azurerm - 数据导出规则的主要内容,如果未能解决你的问题,请参考以下文章

Terraform azurerm 提供程序尝试使用错误的凭据进行注册

Terraform azurerm_application_gateway 配置容量自动缩放设置

Terraform azurerm_virtual_machine_extension

将 azurerm_application_gateway 与 AKS 与 terraform 集成

Terraform azurerm 2.x 错误:“功能”:未设置必填字段

如何使用 Terraform azurerm_app_service 指定 .net 核心版本