Menghubungkan data di Azure Data Explorer dan Azure Resource Graph dengan data di ruang kerja Analitik Log

Anda dapat menghubungkan data di Azure Data Explorer dan Azure Resource Graph dengan data di ruang kerja Log Analytics dan sumber daya Application Insights untuk meningkatkan analisis Anda di Log Azure Monitor. Microsoft Azure Sentinel, yang juga menyimpan data di ruang kerja Analitik Log, mendukung kueri lintas layanan ke Azure Data Explorer tetapi tidak ke Azure Resource Graph. Artikel ini menjelaskan cara menjalankan kueri lintas layanan dari layanan apa pun yang menyimpan data di ruang kerja Analitik Log.

Jalankan kueri lintas layanan dengan menggunakan alat klien apa pun yang mendukung kueri Bahasa Kueri Kusto (KQL), termasuk UI web Log Analytics, buku kerja, PowerShell, dan REST API.

Izin yang diperlukan

Untuk menjalankan kueri lintas layanan yang menghubungkan data di Azure Data Explorer atau Azure Resource Graph dengan data di ruang kerja Analitik Log, Anda memerlukan:

  • Microsoft.OperationalInsights/workspaces/query/*/read izin ke ruang kerja Analitik Log yang Anda kueri, seperti yang disediakan oleh peran bawaan Pembaca Analitik Log, misalnya.
  • Izin pembaca ke sumber daya yang Anda kueri di Azure Resource Graph.
  • Izin penampil ke tabel yang Anda kueri di Azure Data Explorer.

Mengkueri data di Azure Data Explorer dengan menggunakan adx()

Masukkan pengidentifikasi untuk kluster Azure Data Explorer dalam kueri dalam pola adx, diikuti dengan nama dan tabel database.

adx('https://help.kusto.windows.net/Samples').StormEvents

Menggabungkan tabel kluster Azure Data Explorer dengan ruang kerja Log Analytics

Gunakan perintah union untuk menggabungkan tabel kluster dengan ruang kerja Log Analytics.

Contohnya:

union customEvents, adx('https://help.kusto.windows.net/Samples').StormEvents
| take 10
let CL1 = adx('https://help.kusto.windows.net/Samples').StormEvents;
union customEvents, CL1 | take 10

Tip

Format singkat diperbolehkan: ClusterName/InitialCatalog. Contohnya, adx('help/Samples') diterjemahkan ke adx('help.kusto.windows.net/Samples').

Saat Anda menggunakan join operator alih-alih gabungan, Anda diharuskan menggunakan hint untuk menggabungkan data di kluster Azure Data Explorer dengan ruang kerja Log Analytics. Gunakan Hint.remote={Direction of the Log Analytics Workspace}.

Contohnya:

AzureDiagnostics
| join hint.remote=left adx("cluster=ClusterURI").AzureDiagnostics on (ColumnName)

Bergabung dengan data dari kluster Azure Data Explorer dalam satu penyewa dengan sumber daya Azure Monitor di penyewa lain

Kueri lintas penyewa antara layanan tidak didukung. Anda masuk ke penyewa tunggal untuk menjalankan kueri yang mencakup kedua sumber daya.

Jika sumber daya Azure Data Explorer berada di Penyewa A dan ruang kerja Log Analytics berada di Penyewa B, gunakan salah satu metode berikut:

  • Gunakan Azure Data Explorer untuk menambahkan peran untuk prinsipal di penyewa yang berbeda. Tambahkan ID pengguna pada Penyewa B sebagai pengguna yang diotorisasi di kluster Azure Data Explorer. Validasi bahwa properti TrustedExternalTenant pada kluster Azure Data Explorer berisi Penyewa B. Jalankan kueri silang sepenuhnya di Penyewa B.
  • Gunakan Lighthouse untuk memproyeksikan sumber daya Azure Monitor ke Penyewa A.

Menyambungkan ke kluster Azure Data Explorer dari penyewa yang berbeda

Kusto Explorer secara otomatis masuk ke penyewa tempat akun pengguna awalnya berada. Untuk mengakses sumber daya di penyewa lain dengan akun pengguna yang sama, Anda harus secara eksplisit menentukan TenantId dalam string koneksi:

Data Source=https://ade.applicationinsights.io/subscriptions/SubscriptionId/resourcegroups/ResourceGroupName;Initial Catalog=NetDefaultDB;AAD Federated Security=True;Authority ID=TenantId

Mengkueri data di Azure Resource Graph dengan menggunakan arg() (Pratinjau)

arg("") Masukkan pola, diikuti dengan nama tabel Azure Resource Graph.

Contohnya:

arg("").<Azure-Resource-Graph-table-name>

Berikut adalah beberapa contoh kueri Azure Log Analytics yang menggunakan kemampuan kueri lintas layanan Azure Resource Graph baru:

  • Memfilter kueri Analitik Log berdasarkan hasil kueri Azure Resource Graph:

    arg("").Resources 
    | where type == "microsoft.compute/virtualmachines" and properties.hardwareProfile.vmSize startswith "Standard_D"
    | join (
        Heartbeat
        | where TimeGenerated > ago(1d)
        | distinct Computer
        )
        on $left.name == $right.Computer
    
  • Buat aturan pemberitahuan yang hanya berlaku untuk sumber daya tertentu yang diambil dari kueri ARG:

    • Kecualikan sumber daya berdasarkan tag – misalnya, untuk tidak memicu pemberitahuan untuk VM dengan tag "Uji".

      arg("").Resources
      | where tags.environment=~'Test'
      | project name 
      
    • Ambil data performa yang terkait dengan pemanfaatan CPU dan filter ke sumber daya dengan tag "prod".

      InsightsMetrics
      | where Name == "UtilizationPercentage"
      | lookup (
          arg("").Resources 
          | where type == 'microsoft.compute/virtualmachines' 
          | project _ResourceId=tolower(id), tags
          )
          on _ResourceId
      | where tostring(tags.Env) == "Prod"
      

Lebih banyak kasus penggunaan:

  • Gunakan tag untuk menentukan apakah VM harus berjalan 24x7 atau harus dimatikan pada malam hari.
  • Tampilkan pemberitahuan di server apa pun yang berisi sejumlah inti tertentu.

Membuat pemberitahuan berdasarkan kueri lintas layanan dari ruang kerja Analitik Log Anda

Untuk membuat aturan pemberitahuan berdasarkan kueri lintas layanan dari ruang kerja Analitik Log Anda, ikuti langkah-langkah dalam Membuat atau mengedit aturan pemberitahuan pencarian log, memilih ruang kerja Analitik Log Anda, pada tab Cakupan .

Catatan

Anda juga dapat menjalankan kueri lintas layanan dari Azure Data Explorer dan Azure Resource Graph ke ruang kerja Analitik Log, dengan memilih sumber daya yang relevan sebagai cakupan pemberitahuan Anda.

Batasan

Batasan kueri lintas layanan umum

  • Kueri lintas layanan tidak mendukung fungsi dan fungsi berparameter yang definisinya mencakup ekspresi lintas ruang kerja atau lintas layanan lainnya, termasuk adx(), , arg()resource(), workspace(), dan app().
  • Kueri lintas layanan hanya mendukung fungsi ".show ". Kemampuan ini memungkinkan kueri lintas kluster untuk mereferensikan fungsi tabular Azure Monitor, Azure Data Explorer, atau Azure Resource Graph secara langsung. Perintah berikut didukung dengan kueri lintas layanan:
    • .show functions
    • .show function {FunctionName}
    • .show database {DatabaseName} schema as json
  • Nama database peka huruf besar/kecil.
  • Mengidentifikasi kolom Tanda Waktu di kluster tidak didukung. API Kueri Analitik Log tidak akan melewati filter waktu.
  • Kueri lintas layanan hanya mendukung pengambilan data.
  • Private Link (titik akhir privat) dan pembatasan IP tidak mendukung kueri lintas layanan.
  • mv-expand dibatasi hingga 2.000 rekaman.
  • Log Azure Monitor tidak mendukung external_table() fungsi , yang memungkinkan Anda mengkueri tabel eksternal di Azure Data Explorer. Untuk mengkueri tabel eksternal, tentukan external_table(<external-table-name>) sebagai fungsi tanpa parameter di Azure Data Explorer. Anda kemudian dapat memanggil fungsi menggunakan ekspresi adx("").<function-name>.

Batasan kueri lintas layanan Azure Resource Graph

  • Microsoft Azure Sentinel tidak mendukung kueri lintas layanan ke Azure Resource Graph.
  • Saat Anda mengkueri data Azure Resource Graph dari Azure Monitor:
    • Kueri mengembalikan 1.000 rekaman pertama saja.
    • Azure Monitor tidak mengembalikan kesalahan kueri Azure Resource Graph.
    • Editor kueri Analitik Log menandai kueri Azure Resource Graph yang valid sebagai kesalahan sintaks.
    • Operator ini tidak didukung: smv-apply(), , , arg_max()rand(), arg_min()avg(), avg_if(), , countif()sumif(), percentile(), percentiles(), percentilew(), percentilesw(), , stdev(), stdevif(), , stdevp(), , variance(), , variancep(), . varianceif()

Menggabungkan tabel Azure Resource Graph dengan ruang kerja Analitik Log

Gunakan perintah union untuk menggabungkan tabel kluster dengan ruang kerja Log Analytics.

Contohnya:

union AzureActivity, arg("").Resources
| take 10
let CL1 = arg("").Resources ;
union AzureActivity, CL1 | take 10

Saat Anda menggunakan join operator alih-alih gabungan, Anda perlu menggunakan hint untuk menggabungkan data di Azure Resource Graph dengan data di ruang kerja Analitik Log. Gunakan Hint.remote={Direction of the Log Analytics Workspace}. Contohnya:

Perf | where ObjectName == "Memory" and (CounterName == "Available MBytes Memory")
| extend _ResourceId = replace_string(replace_string(replace_string(_ResourceId, 'microsoft.compute', 'Microsoft.Compute'), 'virtualmachines','virtualMachines'),"resourcegroups","resourceGroups")
| join hint.remote=left (arg("").Resources | where type =~ 'Microsoft.Compute/virtualMachines' | project _ResourceId=id, tags) on _ResourceId | project-away _ResourceId1 | where tostring(tags.env) == "prod"

Langkah berikutnya