Tutorial: Menyerap peristiwa dari Azure Event Hubs ke log Azure Monitor (Pratinjau Umum)

Azure Event Hubs adalah platform streaming big data yang mengumpulkan peristiwa dari beberapa sumber untuk diserap oleh Azure dan layanan eksternal. Artikel ini menjelaskan cara menyerap data langsung dari pusat aktivitas ke ruang kerja Analitik Log.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat tabel tujuan untuk data pusat aktivitas di ruang kerja Analitik Log Anda
  • Membuat titik akhir pengumpulan data
  • Membuat aturan pengumpulan data
  • Memberikan izin aturan pengumpulan data ke pusat aktivitas
  • Mengaitkan aturan pengumpulan data dengan pusat aktivitas

Prasyarat

Untuk mengirim peristiwa dari Azure Event Hubs ke Azure Monitor Logs, Anda memerlukan sumber daya ini, semuanya di wilayah yang sama:

Wilayah yang didukung

Azure Monitor saat ini mendukung penyerapan dari Azure Event Hubs di wilayah ini:

Amerika Eropa Timur Tengah Afrika Asia Pasifik
Brasil Selatan Prancis Tengah Arab Saudi Utara Afrika Selatan Utara Australia Tengah
Brasil Tenggara Eropa Utara Australia Timur
Kanada Tengah Norwegia Timur Australia Tenggara
Kanada Timur Swiss Utara India Tengah
US Timur Swiss Barat Asia Timur
US Timur 2 UK Selatan Jepang Timur
US Tengah Selatan UK Barat Jio India Barat
US Barat Eropa Barat Korea Tengah
AS Barat 3 Asia Tenggara

Mengumpulkan informasi yang diperlukan

Anda memerlukan ID langganan, nama grup sumber daya, nama ruang kerja, ID sumber daya ruang kerja, dan ID sumber daya instans pusat aktivitas di langkah-langkah berikutnya:

  1. Navigasi ke ruang kerja Anda di menu ruang kerja Analitik Log dan pilih Properti dan salin ID Langganan, Grup sumber daya, dan Nama ruang kerja Anda. Anda akan memerlukan detail ini untuk membuat sumber daya dalam tutorial ini.

    Screenshot showing Log Analytics workspace overview screen with subscription ID, resource group name, and workspace name highlighted.

  2. Pilih JSON untuk membuka layar JSON Sumber Daya dan salin ID Sumber Daya ruang kerja. Anda memerlukan ID sumber daya ruang kerja untuk membuat aturan pengumpulan data.

    Screenshot showing the Resource JSON screen with the workspace resource ID highlighted.

  3. Navigasikan ke instans pusat aktivitas Anda, pilih JSON untuk membuka layar Resource JSON, dan salin ID Sumber Daya instans pusat aktivitas. Anda memerlukan ID sumber daya instans pusat aktivitas untuk mengaitkan aturan pengumpulan data dengan hub peristiwa.

    Screenshot showing the Resource JSON screen with the event hub resource ID highlighted.

Membuat tabel tujuan di ruang kerja Analitik Log Anda

Sebelum dapat menyerap data, Anda perlu menyiapkan tabel tujuan. Anda dapat menyerap data ke dalam tabel kustom dan tabel Azure yang didukung.

Untuk membuat tabel kustom untuk menyerap peristiwa, di portal Azure:

  1. Pilih tombol Cloud Shell dan pastikan lingkungan diatur ke PowerShell.

    Screenshot showing how to open Cloud Shell.

  2. Jalankan perintah PowerShell ini untuk membuat tabel, menyediakan nama tabel (<table_name>) di JSON (itu juga dengan akhiran _CL dalam kasus tabel kustom), dan mengatur <subscription_id>nilai , , <resource_group_name><workspace_name>, dan <table_name> dalam Invoke-AzRestMethod -Path perintah:

    $tableParams = @'
    {
        "properties": {
            "schema": {
                "name": "<table_name>",
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime",
                        "description": "The time at which the data was ingested."
                    },
                    {
                        "name": "RawData",
                        "type": "string",
                        "description": "Body of the event."
                    },
                    {
                        "name": "Properties",
                        "type": "dynamic",
                        "description": "Additional message properties."
                    }
                ]
            }
        }
    }
    '@
    
    Invoke-AzRestMethod -Path "/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/microsoft.operationalinsights/workspaces/<workspace_name>/tables/<table_name>?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
    

Penting

  • Nama kolom harus dimulai dengan huruf dan dapat terdiri dari hingga 45 karakter alfanumerik dan garis bawah (_).
  • _ResourceId, , id, _SubscriptionId_ResourceId, TenantId, Type, UniqueId, dan Title adalah nama kolom yang dicadangkan.
  • Nama kolom peka huruf besar/kecil. Pastikan untuk menggunakan kasus yang benar dalam aturan pengumpulan data Anda.

Membuat titik akhir pengumpulan data

Untuk mengumpulkan data dengan aturan pengumpulan data, Anda memerlukan titik akhir pengumpulan data:

  1. Membuat titik akhir kumpulan data.

    Penting

    Buat titik akhir pengumpulan data di wilayah yang sama dengan ruang kerja Analitik Log Anda.

  2. Dari layar Gambaran Umum titik akhir pengumpulan data, pilih Tampilan JSON.

    Screenshot that shows the data collection endpoint Overview screen.

  3. Salin ID Sumber Daya untuk aturan pengumpulan data. Anda akan menggunakan informasi ini di langkah berikutnya.

    Screenshot that shows the data collection endpoint JSON view.

Membuat aturan pengumpulan data

Azure Monitor menggunakan aturan pengumpulan data untuk menentukan data mana yang akan dikumpulkan, cara mengubah data tersebut, dan tempat mengirim data.

Untuk membuat aturan pengumpulan data di portal Azure:

  1. Di kotak pencarian portal, ketik templat lalu pilih Sebarkan templat kustom.

    Screenshot to deploy custom template.

  2. Pilih Buat template Anda sendiri di editor.

    Screenshot to build template in the editor.

  3. Tempelkan templat Resource Manager di bawah ini ke editor lalu pilih Simpan.

    Screenshot to edit Resource Manager template.

    Perhatikan detail berikut dalam aturan pengumpulan data di bawah ini:

    • identity - Menentukan jenis identitas terkelola mana yang akan digunakan. Dalam contoh kami, kami menggunakan identitas yang ditetapkan sistem. Anda juga dapat mengonfigurasi identitas terkelola yang ditetapkan pengguna.

    • dataCollectionEndpointId - ID sumber daya titik akhir pengumpulan data.

    • streamDeclarations - Menentukan data mana yang akan diserap dari pusat aktivitas (data masuk). Deklarasi aliran tidak dapat dimodifikasi.

      • TimeGenerated - Waktu di mana data diserap dari pusat aktivitas ke Log Azure Monitor.
      • RawData - Isi acara. Untuk informasi selengkapnya, lihat Membaca peristiwa.
      • Properties - Properti pengguna dari peristiwa. Untuk informasi selengkapnya, lihat Membaca peristiwa.
    • datasources - Menentukan grup konsumen pusat aktivitas dan aliran tempat Anda menyerap data.

    • destinations - Menentukan semua tujuan tempat data akan dikirim. Anda dapat menyerap data ke satu atau beberapa ruang kerja Analitik Log.

    • dataFlows - Mencocokkan aliran dengan ruang kerja tujuan dan menentukan kueri transformasi dan tabel tujuan. Dalam contoh kami, kami menyerap data ke tabel kustom yang kami buat sebelumnya. Anda juga dapat menyerap ke dalam tabel Azure yang didukung.

    • transformKql - Menentukan transformasi untuk diterapkan ke data masuk (deklarasi aliran) sebelum dikirim ke ruang kerja. Dalam contoh kami, kami mengatur transformKql ke source, yang tidak mengubah data dari sumber dengan cara apa pun, karena kami memetakan data masuk ke tabel kustom yang telah kami buat secara khusus dengan skema yang sesuai. Jika Anda menyerap data ke tabel dengan skema yang berbeda atau untuk memfilter data sebelum penyerapan, tentukan transformasi pengumpulan data.

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "dataCollectionRuleName": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the name of the data collection Rule to create."
                }
            },
            "workspaceResourceId": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the Azure resource ID of the Log Analytics workspace to use."
                }
            },
            "endpointResourceId": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the Azure resource ID of the data collection endpoint to use."
                }
            },
            "tableName": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the name of the table in the workspace."
                }
            },
            "consumerGroup": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the consumer group of event hub."
                },
                "defaultValue": "$Default"
            }
        },
        "resources": [
            {
                "type": "Microsoft.Insights/dataCollectionRules",
                "name": "[parameters('dataCollectionRuleName')]",
                "location": "[resourceGroup().location]", 
                "apiVersion": "2022-06-01",
                "identity": {
                                 "type": "systemAssigned"
                  },
                "properties": {
                    "dataCollectionEndpointId": "[parameters('endpointResourceId')]",
                    "streamDeclarations": {
                        "Custom-MyEventHubStream": {
                            "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime"
                    },
                    {
                        "name": "RawData",
                        "type": "string"
                    },
                    {
                        "name": "Properties",
                        "type": "dynamic"
                    }
                ]
                        }
                    },
                    "dataSources": {
                        "dataImports": {
                             "eventHub": {
                                        "consumerGroup": "[parameters('consumerGroup')]",
                                        "stream": "Custom-MyEventHubStream",
                                        "name": "myEventHubDataSource1"
                                                              }
                                               }
                   },
                    "destinations": {
                        "logAnalytics": [
                            {
                                "workspaceResourceId": "[parameters('workspaceResourceId')]",
                                "name": "MyDestination"
                            }
                        ]
                    },
                    "dataFlows": [
                        {
                            "streams": [
                                "Custom-MyEventHubStream"
                            ],
                            "destinations": [
                                "MyDestination"
                            ],
                            "transformKql": "source",
                            "outputStream": "[concat('Custom-', parameters('tableName'))]"
                        }
                    ]
                }
            }
        ]
    }
    
  4. Pada layar Penyebaran kustom, tentukan grup Langganan dan Sumber Daya untuk menyimpan aturan pengumpulan data lalu berikan nilai untuk parameter yang ditentukan dalam templat, termasuk:

    • Wilayah - Wilayah untuk aturan pengumpulan data. Diisi secara otomatis berdasarkan grup sumber daya yang Anda pilih.
    • Nama Aturan Pengumpulan Data - Beri nama aturan.
    • ID Sumber Daya Ruang Kerja - Lihat Mengumpulkan informasi yang diperlukan.
    • ID Sumber Daya Titik Akhir - Dihasilkan saat Anda membuat titik akhir pengumpulan data.
    • Nama Tabel - Nama tabel tujuan. Dalam contoh kami, dan setiap kali Anda menggunakan tabel kustom, nama tabel harus diakhiri dengan akhiran _CL. Jika Anda menyerap data ke tabel Azure, masukkan nama tabel - misalnya, Syslog - tanpa akhiran.
    • Grup Konsumen - Secara default, grup konsumen diatur ke $Default. Jika diperlukan, ubah nilai ke grup konsumen pusat aktivitas yang berbeda.

    Screenshot showing the Custom Template Deployment screen with the deployment values for the data collection rule set up in this tutorial.

  5. Pilih Tinjau + buat lalu Buat saat Anda meninjau detailnya.

  6. Saat penyebaran selesai, perluas kotak Detail penyebaran, dan pilih aturan pengumpulan data Anda untuk melihat detailnya. Pilih Tampilan JSON.

    Screenshot that shows the Data Collection Rule Overview screen.

  7. Salin ID Sumber Daya untuk aturan pengumpulan data. Anda akan menggunakan informasi ini di langkah berikutnya.

    Screenshot that shows the data collection rule JSON view.

Mengonfigurasi identitas terkelola yang ditetapkan pengguna (opsional)

Untuk mengonfigurasi aturan pengumpulan data Anda untuk mendukung identitas yang ditetapkan pengguna, dalam contoh di atas, ganti:

    "identity": {
                        "type": "systemAssigned"
        },

dengan:

    "identity": {
            "type": "userAssigned",
            "userAssignedIdentities": {
                "<identity_resource_Id>": {
                }
            }
        },

Untuk menemukan nilainya<identity_resource_Id>, navigasikan ke sumber daya identitas terkelola yang ditetapkan pengguna Anda di portal Azure, pilih JSON untuk membuka layar JSON Sumber Daya dan salin ID Sumber Daya identitas terkelola.

Screenshot showing Resource JSON screen with the managed identity resource ID highlighted.

Menyerap data log ke dalam tabel Azure (opsional)

Untuk menyerap data ke dalam tabel Azure yang didukung:

  1. Dalam aturan pengumpulan data, ubah outputStream:

    Dari: "outputStream": "[concat('Custom-', parameters('tableName'))]"

    Kepada: "outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"

  2. Di transformKql, tentukan transformasi yang mengirim data yang diserap ke dalam kolom target di tabel Azure tujuan.

Memberikan izin pusat aktivitas ke aturan pengumpulan data

Dengan identitas terkelola, Anda dapat memberikan pusat aktivitas, atau namespace Layanan Pusat Aktivitas, izin untuk mengirim peristiwa ke aturan pengumpulan data dan titik akhir pengumpulan data yang Anda buat. Saat Anda memberikan izin ke namespace Layanan Pusat Aktivitas, semua hub peristiwa dalam namespace mewarisi izin.

  1. Dari pusat aktivitas atau namespace Layanan Pusat Aktivitas di portal Azure, pilih Kontrol Akses (IAM)>Tambahkan penetapan peran.

    Screenshot that shows the Access control screen for the data collection rule.

  2. Pilih Penerima Data Azure Event Hubs dan pilih Berikutnya.

    Screenshot that shows the Add Role Assignment screen for the event hub with the Azure Event Hubs Data Receiver role highlighted.

  3. Pilih Identitas terkelola untuk Menetapkan akses ke dan klik Pilih anggota. Pilih Aturan pengumpulan data, cari aturan pengumpulan data Anda berdasarkan nama, dan klik Pilih.

    Screenshot that shows how to assign access to managed identity.

  4. Pilih Tinjau + tetapkan dan verifikasi detail sebelum menyimpan penetapan peran Anda.

    Screenshot that shows the Review and Assign tab of the Add Role Assignment screen.

Mengaitkan aturan pengumpulan data dengan pusat aktivitas

Langkah terakhir adalah mengaitkan aturan pengumpulan data ke pusat aktivitas tempat Anda ingin mengumpulkan peristiwa.

Anda dapat mengaitkan aturan pengumpulan data tunggal dengan beberapa hub peristiwa yang berbagi grup konsumen yang sama dan menyerap data ke aliran yang sama. Atau, Anda dapat mengaitkan aturan pengumpulan data unik ke setiap hub peristiwa.

Penting

Anda harus mengaitkan setidaknya satu aturan pengumpulan data ke pusat aktivitas untuk menyerap data dari pusat aktivitas. Saat Menghapus semua asosiasi aturan pengumpulan data yang terkait dengan pusat aktivitas, Anda akan berhenti menyerap data dari pusat aktivitas.

Untuk membuat asosiasi aturan pengumpulan data di portal Azure:

  1. Di kotak pencarian portal Azure, ketik templat lalu pilih Sebarkan templat kustom.

  2. Pilih Buat template Anda sendiri di editor.

  3. Tempelkan templat Resource Manager di bawah ini ke editor lalu pilih Simpan.

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "eventHubResourceID": {
          "type": "string",
          "metadata": {
            "description": "Specifies the Azure resource ID of the event hub to use."
          }
        },
        "associationName": {
          "type": "string",
          "metadata": {
            "description": "The name of the association."
          }
        },
        "dataCollectionRuleID": {
          "type": "string",
          "metadata": {
            "description": "The resource ID of the data collection rule."
          }
        }
      },
      "resources": [
        {
          "type": "Microsoft.Insights/dataCollectionRuleAssociations",
          "apiVersion": "2021-09-01-preview",
          "scope": "[parameters('eventHubResourceId')]",
          "name": "[parameters('associationName')]",
          "properties": {
            "description": "Association of data collection rule. Deleting this association will break the data collection for this event hub.",
            "dataCollectionRuleId": "[parameters('dataCollectionRuleId')]"
          }
        }
      ]
    }
    
  4. Pada layar Penyebaran kustom, tentukan Grup langganan dan Sumber Daya untuk menyimpan asosiasi aturan pengumpulan data lalu berikan nilai untuk parameter yang ditentukan dalam templat, termasuk:

    • Wilayah - Diisi secara otomatis berdasarkan grup sumber daya yang Anda pilih.
    • ID Sumber Daya Instans Pusat Aktivitas - Lihat Mengumpulkan informasi yang diperlukan.
    • Nama Asosiasi - Beri nama asosiasi.
    • ID Aturan Pengumpulan Data - Dihasilkan saat Anda membuat aturan pengumpulan data.

    Screenshot showing the Custom Template Deployment screen with the deployment values for the data collection rule association set up in this tutorial.

  5. Pilih Tinjau + buat lalu Buat saat Anda meninjau detailnya.

Periksa tabel tujuan Anda untuk peristiwa yang diserap

Sekarang setelah Anda mengaitkan aturan pengumpulan data dengan hub peristiwa Anda, Log Azure Monitor akan menyerap semua peristiwa yang ada yang periode retensinya belum kedaluwarsa dan semua peristiwa baru.

Untuk memeriksa tabel tujuan Anda untuk peristiwa yang diserap:

  1. Navigasi ke ruang kerja Anda dan pilih Log.

  2. Tulis kueri sederhana di editor kueri dan pilih Jalankan:

    <table_name>
    

    Anda akan melihat peristiwa dari pusat aktivitas Anda.

Screenshot showing the results of a simple query on a custom table. The results consist of events ingested from an event hub.

Membersihkan sumber daya

Dalam tutorial ini, Anda membuat sumber daya berikut:

  • Tabel kustom
  • Titik akhir pengumpulan data
  • Aturan pengumpulan data
  • Asosiasi aturan pengumpulan data

Evaluasi apakah Anda masih memerlukan sumber daya ini. Hapus sumber daya yang tidak Anda perlukan satu per satu, atau hapus semua sumber daya ini sekaligus dengan menghapus grup sumber daya. Sumber daya yang Anda biarkan berjalan dapat dikenakan biaya.

Untuk berhenti menyerap data dari pusat aktivitas, hapus semua asosiasi aturan pengumpulan data yang terkait dengan hub peristiwa, atau hapus aturan pengumpulan data itu sendiri. Tindakan ini juga mengatur ulang titik pemeriksaan hub peristiwa.

Masalah dan batasan umum

Langkah berikutnya

Pelajari selengkapnya tentang untuk: