Tutorial: Mengirim data ke Azure Monitor menggunakan API penyerapan Log (templat Resource Manager)

API Penyerapan Log di Azure Monitor memungkinkan Anda mengirim data kustom ke ruang kerja Analitik Log. Tutorial ini menggunakan templat Azure Resource Manager (templat ARM) untuk menelusuri konfigurasi komponen yang diperlukan untuk mendukung API dan kemudian menyediakan aplikasi sampel menggunakan REST API dan pustaka klien untuk .NET, Go, Java, JavaScript, dan Python.

Catatan

Tutorial ini menggunakan templat ARM untuk mengonfigurasi komponen yang diperlukan untuk mendukung API penyerapan Log. Lihat Tutorial: Mengirim data ke Log Azure Monitor dengan API penyerapan Log (portal Azure) untuk tutorial serupa yang menggunakan antarmuka pengguna portal Azure untuk mengonfigurasi komponen ini.

Langkah-langkah yang diperlukan untuk mengonfigurasi API penyerapan Log adalah sebagai berikut:

  1. Buat aplikasi Microsoft Entra untuk mengautentikasi terhadap API.
  2. Buat titik akhir pengumpulan data (DCE) untuk menerima data.
  3. Buat tabel kustom di ruang kerja Analitik Log. Ini adalah tabel tempat Anda akan mengirim data.
  4. Buat aturan pengumpulan data (DCR) untuk mengarahkan data ke tabel target.
  5. Berikan akses aplikasi Microsoft Entra ke DCR.
  6. Lihat Contoh kode untuk mengirim data ke Azure Monitor menggunakan API penyerapan Log untuk kode sampel untuk mengirim data menggunakan API penyerapan Log.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda perlu:

Mengumpulkan detail ruang kerja

Mulailah dengan mengumpulkan informasi yang Anda perlukan dari ruang kerja.

Buka ruang kerja Anda di menu ruang kerja Analitik Log di portal Azure. Pada halaman Properti , salin ID Sumber Daya dan simpan untuk digunakan nanti.

Cuplikan layar yang memperlihatkan ID sumber daya ruang kerja.

Membuat aplikasi Microsoft Entra

Mulailah dengan mendaftarkan aplikasi Microsoft Entra untuk mengautentikasi terhadap API. Skema autentikasi Resource Manager apa pun didukung, tetapi tutorial ini mengikuti skema Alur Hibah Kredensial Klien.

  1. Pada menu ID Microsoft Entra di portal Azure, pilih Pendaftaran aplikasi> Pendaftaran baru.

    Cuplikan layar yang memperlihatkan layar pendaftaran aplikasi.

  2. Beri nama aplikasi dan ubah cakupan penyewaan jika default tidak sesuai untuk lingkungan Anda. URI Pengalihan tidak diperlukan.

    Cuplikan layar yang memperlihatkan detail aplikasi.

  3. Setelah pendaftaran, Anda dapat melihat detail aplikasi. Catat ID aplikasi (klien) dan ID Direktori (penyewa). Anda akan membutuhkan nilai-nilai ini nanti dalam prosesnya.

    Cuplikan layar yang memperlihatkan ID aplikasi.

  4. Buat rahasia klien aplikasi, yang mirip dengan membuat kata sandi untuk digunakan dengan nama pengguna. Pilih Sertifikat & rahasia>Rahasia klien baru. Beri nama rahasia untuk mengidentifikasi tujuannya dan pilih durasi Kedaluwarsa. Opsi 12 bulan dipilih di sini. Untuk implementasi produksi, Anda akan mengikuti praktik terbaik untuk prosedur rotasi rahasia atau menggunakan mode autentikasi yang lebih aman, seperti sertifikat.

    Cuplikan layar yang memperlihatkan rahasia untuk aplikasi baru.

  5. Pilih Tambahkan untuk menyimpan rahasia lalu catat Nilai. Pastikan Anda merekam nilai ini karena Anda tidak dapat memulihkannya setelah meninggalkan halaman ini. Gunakan langkah-langkah keamanan yang sama seperti yang Anda lakukan untuk melindungi kata sandi karena setara dengan fungsional.

    Cuplikan layar yang memperlihatkan nilai rahasia untuk aplikasi baru.

Membuat titik akhir pengumpulan data

DCE diperlukan untuk menerima data yang dikirim ke Azure Monitor. Setelah mengonfigurasi DCE dan menautkannya ke DCR, Anda dapat mengirim data melalui HTTP dari aplikasi Anda. DCE harus terletak di wilayah yang sama dengan DCR dan ruang kerja Analitik Log tempat data akan dikirim.

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

    Cuplikan layar yang memperlihatkan cara menyebarkan templat kustom.

  2. Pilih Buat template Anda sendiri di editor.

    Cuplikan layar yang memperlihatkan cara membuat templat di editor.

  3. Tempelkan templat ARM berikut ke editor lalu pilih Simpan. Anda tidak perlu mengubah templat ini karena Anda akan memberikan nilai untuk parameternya.

    Cuplikan layar yang memperlihatkan cara mengedit templat ARM.

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "dataCollectionEndpointName": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the name of the Data Collection Endpoint to create."
                }
            },
            "location": {
                "type": "string",
                "defaultValue": "westus2",
                "metadata": {
                    "description": "Specifies the location for the Data Collection Endpoint."
                }
            }
        },
        "resources": [
            {
                "type": "Microsoft.Insights/dataCollectionEndpoints",
                "name": "[parameters('dataCollectionEndpointName')]",
                "location": "[parameters('location')]",
                "apiVersion": "2021-04-01",
                "properties": {
                    "networkAcls": {
                    "publicNetworkAccess": "Enabled"
                    }
                }
            }
        ],
        "outputs": {
            "dataCollectionEndpointId": {
                "type": "string",
                "value": "[resourceId('Microsoft.Insights/dataCollectionEndpoints', parameters('dataCollectionEndpointName'))]"
            }
        }
    }
    
  4. Pada layar Penyebaran kustom, tentukan Langganan dan Grup sumber daya untuk menyimpan DCR lalu berikan nilai seperti Nama untuk DCE. Lokasi harus berupa lokasi yang sama dengan ruang kerja. Wilayah sudah akan diisi dan akan digunakan untuk lokasi DCE.

    Cuplikan layar untuk mengedit nilai penyebaran kustom.

  5. Pilih Tinjau + buat lalu pilih Buat setelah Anda meninjau detailnya.

  6. Pilih Tampilan JSON untuk melihat detail lain untuk DCE. Salin ID Sumber Daya dan titik akhir logsIngestion yang akan Anda butuhkan di langkah selanjutnya.

    Cuplikan layar yang memperlihatkan ID sumber daya DCE.

Membuat tabel baru di ruang kerja Log Analytics

Tabel kustom harus dibuat sebelum Anda dapat mengirim data ke sana. Tabel untuk tutorial ini akan menyertakan lima kolom yang ditunjukkan dalam skema di bawah ini. Properti name, type, dan description wajib untuk setiap kolom. Properti isHidden dan isDefaultDisplay default jika false tidak ditentukan secara eksplisit. Jenis data yang mungkin adalah string, int, long, real, boolean, dateTime, guid, dan dynamic.

Catatan

Tutorial ini menggunakan PowerShell dari Azure Cloud Shell untuk melakukan panggilan REST API dengan menggunakan API Tabel Azure Monitor. Anda dapat menggunakan metode valid lainnya untuk melakukan panggilan ini.

Penting

Tabel kustom harus menggunakan akhiran ._CL

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

    Cuplikan layar yang memperlihatkan pembukaan Cloud Shell.

  2. Salin kode PowerShell berikut dan ganti variabel dalam parameter Jalur dengan nilai yang sesuai untuk ruang kerja Anda dalam Invoke-AzRestMethod perintah . Tempelkan ke perintah Cloud Shell untuk menjalankannya.

    $tableParams = @'
    {
        "properties": {
            "schema": {
                "name": "MyTable_CL",
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime",
                        "description": "The time at which the data was generated"
                    },
                   {
                        "name": "Computer",
                        "type": "string",
                        "description": "The computer that generated the data"
                    },
                    {
                        "name": "AdditionalContext",
                        "type": "dynamic",
                        "description": "Additional message properties"
                    },
                    {
                        "name": "CounterName",
                        "type": "string",
                        "description": "Name of the counter"
                    },
                    {
                        "name": "CounterValue",
                        "type": "real",
                        "description": "Value collected for the counter"
                    }
                ]
            }
        }
    }
    '@
    
    Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/MyTable_CL?api-version=2022-10-01" -Method PUT -payload $tableParams
    

Buat aturan pengumpulan data

DCR menentukan bagaimana data akan ditangani setelah diterima. Drive ini termasuk:

  • Skema data yang dikirim ke titik akhir
  • Transformasi yang akan diterapkan ke data sebelum dikirim ke ruang kerja
  • Ruang kerja tujuan dan tabel tempat data yang ditransformasi akan dikirim
  1. Di kotak pencarian portal Azure, masukkan templat lalu pilih Sebarkan templat kustom.

    Cuplikan layar yang memperlihatkan cara menyebarkan templat kustom.

  2. Pilih Buat template Anda sendiri di editor.

    Cuplikan layar yang memperlihatkan cara membuat templat di editor.

  3. Tempelkan templat ARM berikut ke editor lalu pilih Simpan.

    Cuplikan layar yang memperlihatkan cara mengedit templat ARM.

    Perhatikan detail berikut dalam DCR yang ditentukan dalam templat ini:

    • dataCollectionEndpointId: ID Sumber Daya dari titik akhir pengumpulan data.
    • streamDeclarations: Definisi kolom data masuk.
    • destinations: Ruang kerja tujuan.
    • dataFlows: Mencocokkan aliran dengan ruang kerja tujuan dan menentukan kueri transformasi dan tabel tujuan. Output kueri tujuan adalah apa yang akan dikirim ke tabel tujuan.
    {
        "$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."
                }
            },
            "location": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the location in which to create the Data Collection Rule."
                }
            },
            "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."
                }
            }
        },
        "resources": [
            {
                "type": "Microsoft.Insights/dataCollectionRules",
                "name": "[parameters('dataCollectionRuleName')]",
                "location": "[parameters('location')]",
                "apiVersion": "2021-09-01-preview",
                "properties": {
                    "dataCollectionEndpointId": "[parameters('endpointResourceId')]",
                    "streamDeclarations": {
                        "Custom-MyTableRawData": {
                            "columns": [
                                {
                                    "name": "Time",
                                    "type": "datetime"
                                },
                                {
                                    "name": "Computer",
                                    "type": "string"
                                },
                                {
                                    "name": "AdditionalContext",
                                    "type": "string"
                                },
                                {
                                    "name": "CounterName",
                                    "type": "string"
                                },
                                {
                                    "name": "CounterValue",
                                    "type": "real"
                                }
                            ]
                        }
                    },
                    "destinations": {
                        "logAnalytics": [
                            {
                                "workspaceResourceId": "[parameters('workspaceResourceId')]",
                                "name": "myworkspace"
                            }
                        ]
                    },
                    "dataFlows": [
                        {
                            "streams": [
                                "Custom-MyTableRawData"
                            ],
                            "destinations": [
                                "myworkspace"
                            ],
                            "transformKql": "source | extend jsonContext = parse_json(AdditionalContext) | project TimeGenerated = Time, Computer, AdditionalContext = jsonContext, CounterName=tostring(jsonContext.CounterName), CounterValue=toreal(jsonContext.CounterValue)",
                            "outputStream": "Custom-MyTable_CL"
                        }
                    ]
                }
            }
        ],
        "outputs": {
            "dataCollectionRuleId": {
                "type": "string",
                "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
            }
        }
    }
    
  4. Pada layar Penyebaran kustom, tentukan Grup langganan dan Sumber Daya untuk menyimpan DCR. Kemudian berikan nilai yang ditentukan dalam templat. Nilai menyertakan Nama untuk DCR dan ID Sumber Daya Ruang Kerja yang Anda kumpulkan di langkah sebelumnya. Lokasi harus berupa lokasi yang sama dengan ruang kerja. Wilayah sudah akan diisi dan akan digunakan untuk lokasi DCR.

    Cuplikan layar yang memperlihatkan cara mengedit nilai penyebaran kustom.

  5. Pilih Tinjau + buat lalu pilih Buat setelah Anda meninjau detailnya.

  6. Setelah penyebaran selesai, perluas kotak Detail penyebaran dan pilih DCR Anda untuk melihat detailnya. Pilih Tampilan JSON.

    Cuplikan layar yang memperlihatkan detail DCR.

  7. Salin ID Yang Tidak Dapat Diubah untuk DCR. Anda akan menggunakannya di langkah selanjutnya saat mengirim data sampel menggunakan API.

    Cuplikan layar yang memperlihatkan tampilan JSON DCR.

    Catatan

    Semua properti DCR, seperti transformasi, mungkin tidak ditampilkan di portal Azure meskipun DCR berhasil dibuat dengan properti tersebut.

Menetapkan izin ke DCR

Setelah DCR dibuat, aplikasi perlu diberikan izin untuk itu. Izin akan memungkinkan aplikasi apa pun menggunakan ID aplikasi dan kunci aplikasi yang benar untuk mengirim data ke DCE dan DCR baru.

  1. Dari DCR di portal Azure, pilih Kontrol Akses (IAM)>Tambahkan penetapan peran.

    Cuplikan layar yang memperlihatkan penambahan penetapan peran kustom ke DCR.

  2. Pilih Penerbit Metrik Pemantauan dan pilih Berikutnya. Anda dapat membuat tindakan kustom dengan tindakan data Microsoft.Insights/Telemetry/Write.

    Cuplikan layar yang memperlihatkan pemilihan peran untuk penetapan peran DCR.

  3. Pilih Pengguna, grup, atau perwakilan layanan untuk Menetapkan akses ke dan pilih Pilih anggota. Pilih aplikasi yang Anda buat dan pilih Pilih.

    Cuplikan layar yang memperlihatkan pemilihan anggota untuk penetapan peran DCR.

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

    Cuplikan layar yang memperlihatkan penyimpanan penetapan peran DCR.

Kode Sampel

Lihat Contoh kode untuk mengirim data ke Azure Monitor menggunakan API penyerapan Log untuk kode sampel menggunakan komponen yang dibuat dalam tutorial ini.

Langkah berikutnya