[英]Azure Monitor log analytics query using Terraform (display events)
我想使用 Terraform 显示来自日志分析工作区的日志。 我在文档中看到了这些 AZ CLI 命令( 链接):
在过去 3.5 天内执行一个简单的查询:
az monitor log-analytics query -w workspace-customId --analytics-query "AzureActivity | summarize count() by bin(timestamp, 1h)" -t P3DT12H
在工作区中执行保存的查询:
QUERY=$(az monitor log-analytics workspace saved-search show -g resource-group --workspace-name workspace-name -n query-name --query query --output tsv)
az monitor log-analytics query -w workspace-customId --analytics-query "$QUERY"
您知道我们如何使用 Terraform 做到这一点吗? (运行查询 az 监视器)
只需显示日志条目,无需创建警报。
您可以使用 terraform 中的Provisioners
来运行 Azure 监控日志分析查询。
我们已经在本地环境中对此进行了测试,并且运行良好。
以下是使用 terraform 运行 azure 日志分析保存的搜索查询的步骤:
例如,我们创建了一个保存的搜索查询来提取特定 VM 的Heartbeat
日志。
Heartbeat| where Computer contains '<NameofVirutalMachine>'|summarize count() by bin(TimeGenerated, 1h)
az monitor log-analytics workspace saved-search create -g <resourcegroupName> --category <categoryofSavedSearch> --workspace-name <LAWorkspaceName> -n <Nameforquery> --display-name <displayName> -q "Heartbeat| where Computer contains '<NameofVM>'|summarize count() by bin(TimeGenerated, 1h)"
有关az monitor log-analytics workspace saved-search create
cmdlet 语法的详细信息,请参阅此文档
您需要安装 log-analytics 扩展才能在本地运行 az monitor cmdlet。
az 扩展添加 --name
如下所示将provisioner
器添加到您的 terraform 脚本并运行该脚本。
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "2.44.0"
}
}
}
provider "azurerm" {
features { }
}
resource "null_resource" "testexample" {
provisioner "local-exec" {
command = <<EOT
$QUERY=(az monitor log-analytics workspace saved-search show -g <resourceGroupName> --workspace-name <workSpaceName> -n <NameofSavedSearch> --query query -o tsv)
az monitor log-analytics query -w <GuidofLogAnalyticsWorkspace> --analytics-query $QUERY
EOT
interpreter = ["pwsh","-Command"]
}
}
这是样品 Output 供您参考:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.