Bagikan melalui


Tutorial: Menyerap dan mengkueri data pemantauan di Azure Data Explorer

Tutorial ini akan mengajari Anda cara menyerap data dari log diagnostik dan aktivitas ke kluster Azure Data Explorer tanpa menulis kode. Dengan metode penyerapan sederhana ini, Anda dapat dengan cepat mulai mengkueri Azure Data Explorer untuk analisis data.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat tabel dan pemetaan penyerapan dalam database Azure Data Explorer.
  • Format data yang diserap dengan menggunakan kebijakan pembaruan.
  • Buat pusat aktivitas dan sambungkan ke Azure Data Explorer.
  • Streaming data ke pusat aktivitas dari metrik diagnostik Azure Monitor dan log serta log aktivitas.
  • Kueri data yang diserap dengan menggunakan Azure Data Explorer.

Catatan

Buat semua sumber daya di lokasi atau wilayah Azure yang sama.

Prasyarat

Penyedia data Azure Monitor: metrik diagnostik dan log serta log aktivitas

Lihat dan pahami data yang disediakan oleh metrik dan log diagnostik Azure Monitor serta log aktivitas di bawah ini. Anda akan membuat alur penyerapan berdasarkan skema data ini. Perhatikan bahwa setiap peristiwa dalam log memiliki array rekaman. Array rekaman ini akan dibagi nanti dalam tutorial.

Contoh metrik diagnostik dan log serta log aktivitas

Metrik diagnostik Azure dan log serta log aktivitas dipancarkan oleh layanan Azure dan menyediakan data tentang pengoperasian layanan tersebut.

Contoh metrik diagnostik

Metrik diagnostik diagregasi dengan butir waktu 1 menit. Berikut ini adalah contoh skema peristiwa metrik Azure Data Explorer pada durasi kueri:

{
    "records": [
    {
        "count": 14,
        "total": 0,
        "minimum": 0,
        "maximum": 0,
        "average": 0,
        "resourceId": "/SUBSCRIPTIONS/<subscriptionID>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.KUSTO/CLUSTERS/<cluster-name>",
        "time": "2018-12-20T17:00:00.0000000Z",
        "metricName": "QueryDuration",
        "timeGrain": "PT1M"
    },
    {
        "count": 12,
        "total": 0,
        "minimum": 0,
        "maximum": 0,
        "average": 0,
        "resourceId": "/SUBSCRIPTIONS/<subscriptionID>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.KUSTO/CLUSTERS/<cluster-name>",
        "time": "2018-12-21T17:00:00.0000000Z",
        "metricName": "QueryDuration",
        "timeGrain": "PT1M"
    }
    ]
}

Menyiapkan alur penyerapan di Azure Data Explorer

Menyiapkan alur Azure Data Explorer melibatkan beberapa langkah, seperti pembuatan tabel dan penyerapan data. Anda juga dapat memanipulasi, memetakan, dan memperbarui data.

Menyambungkan ke antarmuka pengguna web Azure Data Explorer

Di database Azure Data Explorer TestDatabase Anda, pilih Kueri untuk membuka antarmuka pengguna web Azure Data Explorer.

Halaman kueri.

Membuat tabel target

Struktur log Azure Monitor tidak bertabular. Anda akan memanipulasi data dan memperluas setiap peristiwa ke satu atau beberapa rekaman. Data mentah akan diserap ke tabel perantara bernama ActivityLogsRawRecords untuk log aktivitas dan DiagnosticRawRecords untuk metrik dan log diagnostik. Pada saat itu, data akan dimanipulasi dan diperluas. Dengan menggunakan kebijakan pembaruan, data yang diperluas kemudian akan diserap ke dalam tabel ActivityLogs untuk log aktivitas, DiagnosticMetrics untuk metrik diagnostik dan DiagnosticLogs untuk log diagnostik. Ini berarti Anda harus membuat dua tabel terpisah untuk menyerap log aktivitas dan tiga tabel terpisah untuk menyerap metrik dan log diagnostik.

Gunakan antarmuka pengguna web Azure Data Explorer untuk membuat tabel target di database Azure Data Explorer.

Membuat tabel untuk metrik diagnostik

  1. Dalam database TestDatabase , buat tabel bernama DiagnosticMetrics untuk menyimpan rekaman metrik diagnostik. Gunakan perintah manajemen berikut .create table :

    .create table DiagnosticMetrics (Timestamp:datetime, ResourceId:string, MetricName:string, Count:int, Total:double, Minimum:double, Maximum:double, Average:double, TimeGrain:string)
    
  2. Pilih Jalankan untuk membuat tabel.

    Jalankan Kueri.

  3. Buat tabel data perantara bernama DiagnosticRawRecords di database TestDatabase untuk manipulasi data menggunakan kueri berikut. Pilih Jalankan untuk membuat tabel.

    .create table DiagnosticRawRecords (Records:dynamic)
    
  4. Tetapkan kebijakan retensi nol untuk tabel perantara:

    .alter-merge table DiagnosticRawRecords policy retention softdelete = 0d
    

Membuat pemetaan tabel

Karena format data adalah json, pemetaan data diperlukan. Pemetaan json memetakan setiap jalur json ke nama kolom tabel. Jalur JSON yang menyertakan karakter khusus harus di-escape sebagai ['Nama Properti']. Untuk informasi selengkapnya, lihat sintaks JSONPath.

Memetakan metrik dan log diagnostik ke tabel

Untuk memetakan metrik diagnostik dan data log ke tabel, gunakan kueri berikut:

.create table DiagnosticRawRecords ingestion json mapping 'DiagnosticRawRecordsMapping' '[{"column":"Records","Properties":{"path":"$.records"}}]'

Membuat kebijakan pembaruan untuk metrik dan data log

Membuat kebijakan pembaruan data untuk metrik diagnostik

  1. Buat fungsi yang memperluas kumpulan rekaman metrik diagnostik sehingga setiap nilai dalam koleksi menerima baris terpisah. mv-expand Gunakan operator:

    .create function DiagnosticMetricsExpand() {
       DiagnosticRawRecords
       | mv-expand events = Records
       | where isnotempty(events.metricName)
       | project
           Timestamp = todatetime(events['time']),
           ResourceId = tostring(events.resourceId),
           MetricName = tostring(events.metricName),
           Count = toint(events['count']),
           Total = todouble(events.total),
           Minimum = todouble(events.minimum),
           Maximum = todouble(events.maximum),
           Average = todouble(events.average),
           TimeGrain = tostring(events.timeGrain)
    }
    
  2. Tambahkan kebijakan pembaruan ke tabel target. Kebijakan ini akan secara otomatis menjalankan kueri pada data yang baru diserap dalam tabel data menengah DiagnosticRawRecords dan menyerap hasilnya ke dalam tabel DiagnosticMetrics :

    .alter table DiagnosticMetrics policy update @'[{"Source": "DiagnosticRawRecords", "Query": "DiagnosticMetricsExpand()", "IsEnabled": "True", "IsTransactional": true}]'
    

Membuat namespace Azure Event Hubs

Pengaturan diagnostik Azure memungkinkan ekspor metrik dan log ke akun penyimpanan atau ke hub peristiwa. Dalam tutorial ini, kita akan merutekan metrik dan log melalui pusat aktivitas. Anda akan membuat namespace layanan pusat aktivitas dan pusat aktivitas untuk metrik dan log diagnostik dalam langkah-langkah berikut. Azure Monitor akan membuat insight event hubs-operational-logs untuk log aktivitas.

  1. Buat hub peristiwa dengan menggunakan templat Azure Resource Manager di portal Azure. Untuk mengikuti langkah-langkah lainnya dalam artikel ini, klik kanan tombol Sebarkan ke Azure , lalu pilih Buka di jendela baru. Tombol Sebarkan ke Azure akan membawa Anda ke portal Microsoft Azure.

    Tombol Sebarkan ke Azure.

  2. Buat namespace layanan pusat aktivitas dan pusat aktivitas untuk log diagnostik. Pelajari cara membuat namespace layanan pusat aktivitas.

  3. Isi formulir dengan informasi berikut. Untuk pengaturan apa pun yang tidak tercantum dalam tabel berikut, gunakan nilai default.

    Pengaturan Nilai yang disarankan Deskripsi
    Langganan Langganan Anda Pilih langganan Azure yang ingin Anda gunakan untuk pusat aktivitas Anda.
    Grup Sumber Daya test-resource-group Membuat grup sumber daya baru.
    Lokasi Pilih wilayah yang paling sesuai dengan kebutuhan Anda. Buat namespace pusat aktivitas di lokasi yang sama dengan sumber daya lainnya.
    Nama namespace AzureMonitoringData Pilih nama unik yang mengidentifikasi namespace layanan Anda.
    Nama pusat aktivitas DiagnosticData Pusat aktivitas berada di bawah namespace layanan, yang menyediakan kontainer cakupan unik.
    Nama grup konsumen adxpipeline Buat nama grup konsumen. Grup konsumen memungkinkan beberapa aplikasi yang digunakan agar masing-masing memiliki tampilan aliran peristiwa yang terpisah.

Menyambungkan metrik dan log Azure Monitor ke pusat aktivitas Anda

Sekarang Anda perlu menyambungkan metrik dan log diagnostik serta log aktivitas Anda ke hub peristiwa.

Menyambungkan metrik dan log diagnostik ke pusat aktivitas Anda

Pilih sumber daya untuk mengekspor metrik. Beberapa jenis sumber daya mendukung ekspor data diagnostik, termasuk namespace layanan pusat aktivitas, azure Key Vault, Azure IoT Hub, dan kluster Azure Data Explorer. Dalam tutorial ini, kita akan menggunakan kluster Azure Data Explorer sebagai sumber daya kita, kita akan meninjau metrik performa kueri dan log hasil penyerapan.

  1. Pilih kluster Kusto Anda di portal Azure.

  2. Pilih Pengaturan diagnostik, lalu pilih tautan Aktifkan diagnostik .

    Pengaturan diagnostik.

  3. Panel Pengaturan diagnostik akan terbuka. Ikuti langkah-langkah berikut:

    1. Beri data log diagnostik Anda nama ADXExportedData.

    2. Di bawah LOG, pilih kotak centang BerhasilPengajuan dan FailedIngestion .

    3. Di bawah METRIK, pilih kotak centang Performa kueri .

    4. Pilih kotak centang Streaming ke pusat aktivitas.

    5. Pilih Konfigurasikan.

      Panel pengaturan diagnostik.

  4. Di panel Pilih hub peristiwa , konfigurasikan cara mengekspor data dari log diagnostik ke hub peristiwa yang Anda buat:

    1. Di daftar Pilih namespace layanan pusat aktivitas , pilih AzureMonitoringData.
    2. Di daftar Pilih nama hub peristiwa , pilih DiagnosticData.
    3. Di daftar Pilih nama kebijakan hub peristiwa , pilih RootManagerSharedAccessKey.
    4. PilihOK.
  5. Pilih Simpan.

Lihat data yang mengalir ke pusat aktivitas Anda

  1. Tunggu beberapa menit hingga koneksi ditentukan, dan ekspor log aktivitas ke hub peristiwa selesai. Buka namespace layanan pusat aktivitas Anda untuk melihat hub peristiwa yang Anda buat.

    Hub peristiwa dibuat.

  2. Lihat data yang mengalir ke pusat aktivitas Anda:

    Data pusat aktivitas.

Menyambungkan pusat aktivitas ke Azure Data Explorer

Sekarang Anda perlu membuat koneksi data untuk metrik diagnostik dan log dan log aktivitas Anda.

Membuat koneksi data untuk metrik diagnostik dan log serta log aktivitas

  1. Di kluster Azure Data Explorer bernama kustodocs, pilih Database di menu sebelah kiri.

  2. Di jendela Database , pilih database TestDatabase Anda.

  3. Di menu sebelah kiri, pilih Penyerapan data.

  4. Di jendela Penyerapan data , pilih + Tambahkan Koneksi Data.

  5. Di jendela Koneksi data, masukkan informasi berikut ini:

    Koneksi data pusat aktivitas.

  1. Gunakan pengaturan berikut di jendela Koneksi Data :

    Sumber data:

    Pengaturan Nilai yang disarankan Deskripsi bidang
    Nama koneksi data DiagnosticsLogsConnection Nama koneksi yang ingin Anda buat di Azure Data Explorer.
    Namespace layanan event hub AzureMonitoringData Nama yang Anda pilih sebelumnya yang mengidentifikasi namespace layanan Anda.
    Hub peristiwa DiagnosticData Pusat aktivitas yang Anda buat.
    Grup konsumen adxpipeline Grup konsumen yang ditentukan di pusat aktivitas yang Anda buat.

    Tabel target:

    Ada dua opsi untuk perutean: statis dan dinamis. Untuk tutorial ini, Anda akan menggunakan perutean statis (default), tempat Anda menentukan nama tabel, format data, dan pemetaan. Biarkan Data saya menyertakan info perutean yang tidak dipilih.

    Pengaturan Nilai yang disarankan Deskripsi bidang
    Meja DiagnosticRawRecords Tabel yang Anda buat di database TestDatabase .
    Format data JSON Format yang digunakan dalam tabel.
    Pemetaan kolom DiagnosticRawRecordsMapping Pemetaan yang Anda buat di database TestDatabase , yang memetakan data JSON masuk ke nama kolom dan jenis data tabel DiagnosticRawRecords .
  2. Pilih Buat.

Mengkueri tabel baru

Anda sekarang memiliki alur dengan data yang mengalir. Penyerapan melalui kluster membutuhkan waktu 5 menit secara default, jadi izinkan data mengalir selama beberapa menit sebelum mulai mengkueri.

Mengkueri tabel metrik diagnostik

Kueri berikut menganalisis data durasi kueri dari rekaman metrik diagnostik di Azure Data Explorer:

DiagnosticMetrics
| where Timestamp > ago(15m) and MetricName == 'QueryDuration'
| summarize avg(Average)

Hasil kueri:

avg_Average
00:06.156