将Log Analytics Workspace查询的结果输出到事件中心

问题描述 投票:0回答:1

我正在执行查询以输出在Azure Log Analytics工作区中捕获的日志,例如:Invoke-AzOperationalInsightsQuery -WorkspaceId”-查询“ AzureDiagnostics |其中类别=='AzureFirewallApplicationRule'“

但是我需要将其结果发送到事件中心进行进一步处理。

我正在尝试使用REST API(https://docs.microsoft.com/en-us/rest/api/eventhub/send-batch-events),但努力根据查询的输出字段动态生成要发送到事件中心的请求正文。有什么建议,这可能不是最好的方法?

azure-powershell azure-eventhub azure-log-analytics
1个回答
0
投票

我建议您可以通过发送一个简单的json数据来使用Send event api。因为如果使用发送批处理api,则应构建更复杂的源数据。

您可以使用以下Powershell代码通过send event API将数据发送到事件中心。

$queryResults = Invoke-AzOperationalInsightsQuery -WorkspaceId "xxx" -Query "your query"    

#generate sas token
$URI_1 = "event_hub_namespace.servicebus.windows.net/eventhub_path"
$Access_Policy_Name="RootManageSharedAccessKey"
$Access_Policy_Key="the key"

#Token expires now+3000
$Expires=([DateTimeOffset]::Now.ToUnixTimeSeconds())+3000
$SignatureString=[System.Web.HttpUtility]::UrlEncode($URI_1)+ "`n" + [string]$Expires
$HMAC = New-Object System.Security.Cryptography.HMACSHA256
$HMAC.key = [Text.Encoding]::ASCII.GetBytes($Access_Policy_Key)
$Signature = $HMAC.ComputeHash([Text.Encoding]::ASCII.GetBytes($SignatureString))
$Signature = [Convert]::ToBase64String($Signature)
$SASToken = "SharedAccessSignature sr=" + [System.Web.HttpUtility]::UrlEncode($URI_1) + "&sig=" + [System.Web.HttpUtility]::UrlEncode($Signature) + "&se=" + $Expires + "&skn=" + $Access_Policy_Name
$SASToken

$method = "POST"
$url = "https://event_hub_namespace.servicebus.windows.net/eventhub_path/messages"
$signature = $SASToken

# API headers
$headers = @{
            "Authorization"=$signature;
            "Content-Type"="application/atom+xml;type=entry;charset=utf-8";
            }

#use foreach to send data
foreach($s in $queryResults.Results){
    #Write-Output "hello"
    $json = $s | ConvertTo-Json
    #Write-Output $json

    Invoke-WebRequest -Method $method -Headers $headers -Body $json -uri $url
}

Write-Output "**completed**"

After执行powershell,我使用代码从事件中心接收数据,并且可以确认所有数据都已发送到事件中心。屏幕截图如下:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.