Kueri data yang diekspor dari Azure Monitor dengan menggunakan Azure Data Explorer
Mengekspor data dari Azure Monitor ke akun Azure Storage memungkinkan retensi berhemat rendah dan kemampuan untuk merealokasi log ke wilayah yang berbeda. Gunakan Azure Data Explorer untuk mengkueri data yang diekspor dari ruang kerja Analitik Log Anda. Setelah konfigurasi, tabel yang didukung yang dikirim dari ruang kerja Anda ke akun penyimpanan akan tersedia sebagai sumber data untuk Azure Data Explorer.
Alur prosesnya adalah untuk:
- Ekspor data dari ruang kerja Analitik Log ke akun penyimpanan.
- Buat tabel eksternal di kluster Azure Data Explorer Anda dan pemetaan untuk jenis data.
- Kueri data dari Azure Data Explorer.
Mengirim data ke Azure Storage
Log Azure Monitor dapat diekspor ke akun penyimpanan dengan menggunakan salah satu opsi berikut:
- Ekspor semua data dari ruang kerja Analitik Log Anda ke akun penyimpanan atau hub peristiwa. Gunakan fitur ekspor data ruang kerja Analitik Log dari Log Azure Monitor. Untuk informasi selengkapnya, lihat Ekspor data ruang kerja Log Analytics di Azure Monitor.
- Ekspor terjadwal dari kueri log dengan menggunakan aplikasi logika. Metode ini mirip dengan fitur ekspor data tetapi memungkinkan Anda mengirim data yang difilter atau diagregasi ke Azure Storage. Metode ini tunduk pada batas kueri log. Untuk informasi selengkapnya, lihat Mengarsipkan data dari ruang kerja Analitik Log ke Azure Storage dengan menggunakan Logic Apps.
- Ekspor satu kali dengan menggunakan aplikasi logika. Untuk informasi selengkapnya, lihat Konektor Log Azure Monitor untuk Logic Apps dan Power Automate.
- Ekspor satu kali ke komputer lokal dengan menggunakan skrip PowerShell. Untuk informasi selengkapnya, lihat Invoke-AzOperationalInsightsQueryExport.
Tip
Anda dapat menggunakan kluster Azure Data Explorer yang sudah ada atau membuat kluster khusus baru dengan konfigurasi yang diperlukan.
Membuat tabel eksternal yang terletak di Azure Blob Storage
Gunakan tabel eksternal untuk menautkan Azure Data Explorer ke akun penyimpanan. Tabel eksternal adalah entitas skema Kusto yang mereferensikan data yang disimpan di luar database Kusto. Seperti tabel, tabel eksternal memiliki skema yang ditentukan dengan baik. Tidak seperti tabel, data disimpan dan dikelola di luar kluster Kusto. Data yang diekspor dari bagian sebelumnya disimpan di baris JSON.
Untuk membuat referensi, Anda memerlukan skema tabel yang diekspor. Gunakan operator getschema dari Log Analytics untuk mengambil informasi ini, yang mencakup kolom tabel dan jenis datanya.
Sekarang Anda bisa menggunakan output untuk membuat kueri Kusto untuk membuat tabel eksternal. Ikuti panduan dalam Membuat dan mengubah tabel eksternal di Azure Storage atau Azure Data Lake untuk membuat tabel eksternal dalam format JSON. Kemudian jalankan kueri dari database Azure Data Explorer Anda.
Catatan
Pembuatan tabel eksternal dibangun dari dua proses. Proses pertama adalah membuat tabel eksternal. Proses kedua adalah membuat pemetaan.
Skrip PowerShell berikut membuat perintah buat untuk tabel dan pemetaan:
PARAM(
$resourcegroupname, #The name of the Azure resource group
$TableName, # The Log Analytics table you want to convert to an external table
$MapName, # The name of the map
$subscriptionId, # The ID of the subscription
$WorkspaceId, # The Log Analytics WorkspaceId
$WorkspaceName, # The Log Analytics workspace name
$BlobURL, # The Blob URL where the data is saved
$ContainerAccessKey, # The blob container Access Key (option to add an SAS URL)
$ExternalTableName = $null # The External Table name, null to use the same name
)
if($null -eq $ExternalTableName) {
$ExternalTableName = $TableName
}
$query = $TableName + ' | getschema | project ColumnName, DataType'
$output = (Invoke-AzOperationalInsightsQuery -WorkspaceId $WorkspaceId -Query $query).Results
$FirstCommand = @()
$SecondCommand = @()
foreach ($record in $output) {
if ($record.DataType -eq 'System.DateTime') {
$dataType = 'datetime'
} elseif ($record.DataType -eq 'System.Int32') {
$dataType = 'int32'
} elseif ($record.DataType -eq 'System.Double') {
$dataType = 'double'
} else {
$dataType = 'string'
}
$FirstCommand += $record.ColumnName + ":" + "$dataType" + ","
$SecondCommand += "{`"column`":" + "`"" + $record.ColumnName + "`"," + "`"datatype`":`"$dataType`",`"path`":`"$." + $record.ColumnName + "`"},"
}
$schema = ($FirstCommand -join '') -replace ',$'
$mapping = ($SecondCommand -join '') -replace ',$'
$CreateExternal = @'
.create external table {0} ({1})
kind=blob
partition by (TimeGeneratedPartition:datetime = bin(TimeGenerated, 1min))
pathformat = (datetime_pattern("'y='yyyy'/m='MM'/d='dd'/h='HH'/m='mm", TimeGeneratedPartition))
dataformat=multijson
(
h@'{2}/WorkspaceResourceId=/subscriptions/{4}/resourcegroups/{6}/providers/microsoft.operationalinsights/workspaces/{5};{3}'
)
with
(
docstring = "Docs",
folder = "ExternalTables"
)
'@ -f $TableName, $schema, $BlobURL, $ContainerAccessKey, $subscriptionId, $WorkspaceName.ToLower(), $resourcegroupname.ToLower(),$WorkspaceId
$createMapping = @'
.create external table {0} json mapping "{1}" '[{2}]'
'@ -f $ExternalTableName, $MapName, $mapping
Write-Host -ForegroundColor Red 'Copy and run the following commands (one by one), on your Azure Data Explorer cluster query window to create the external table and mappings:'
write-host -ForegroundColor Green $CreateExternal
Write-Host -ForegroundColor Green $createMapping
Gambar berikut menunjukkan contoh output:
Tip
- Salin, tempel, lalu jalankan output skrip di alat klien Azure Data Explorer Anda untuk membuat tabel dan pemetaan.
- Untuk menggunakan semua data di dalam kontainer, ubah skrip dan ubah URL menjadi
https://your.blob.core.windows.net/containername;SecKey
.
Kueri data yang diekspor dari Azure Data Explorer
Setelah mengonfigurasi pemetaan, Anda bisa mengkueri data yang diekspor dari Azure Data Explorer. Kueri Anda memerlukan fungsi external_table , seperti yang diperlihatkan dalam contoh berikut:
external_table("HBTest","map") | take 10000
Langkah berikutnya
Pelajari cara menulis kueri di Azure Data Explorer.