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:
- Buat aplikasi Microsoft Entra untuk mengautentikasi terhadap API.
- Buat tabel kustom di ruang kerja Analitik Log. Ini adalah tabel tempat Anda akan mengirim data.
- Buat aturan pengumpulan data (DCR) untuk mengarahkan data ke tabel target.
- Berikan akses aplikasi Microsoft Entra ke DCR.
- Lihat Contoh kode untuk mengirim data ke Azure Monitor menggunakan API penyerapan Log untuk kode sampel untuk mengirim data menggunakan API penyerapan Log.
Catatan
Artikel ini menyertakan opsi untuk menggunakan titik akhir penyerapan DCR atau titik akhir pengumpulan data (DCE). Anda dapat memilih untuk menggunakan salah satu pengguna, tetapi DCE diperlukan dengan API penyerapan Log jika tautan privat digunakan. Lihat Kapan DCE diperlukan?.
Prasyarat
Untuk menyelesaikan tutorial ini, Anda perlu:
- Ruang kerja Analitik Log tempat Anda memiliki setidaknya hak kontributor.
- Izin untuk membuat objek DCR di ruang kerja.
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.
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.
Pada menu ID Microsoft Entra di portal Azure, pilih Pendaftaran aplikasi> Pendaftaran baru.
Beri nama aplikasi dan ubah cakupan penyewaan jika default tidak sesuai untuk lingkungan Anda. URI Pengalihan tidak diperlukan.
Setelah pendaftaran, Anda dapat melihat detail aplikasi. Catat ID aplikasi (klien) dan ID Direktori (penyewa). Anda akan membutuhkan nilai-nilai ini nanti dalam prosesnya.
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.
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.
Membuat titik akhir pengumpulan data
DCE tidak diperlukan jika Anda menggunakan titik akhir penyerapan DCR.
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
Pilih tombol Cloud Shell di portal Azure dan pastikan lingkungan diatur ke PowerShell.
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
Di kotak pencarian portal Azure, masukkan templat lalu pilih Sebarkan templat kustom.
Pilih Buat template Anda sendiri di editor.
Tempelkan templat ARM berikut ke editor lalu pilih Simpan.
Perhatikan detail berikut dalam DCR yang ditentukan dalam templat ini:
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-08-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." } } }, "resources": [ { "type": "Microsoft.Insights/dataCollectionRules", "name": "[parameters('dataCollectionRuleName')]", "location": "[parameters('location')]", "apiVersion": "2023-03-11", "kind": "Direct", "properties": { "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'))]" } } }
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.
Pilih Tinjau + buat lalu pilih Buat setelah Anda meninjau detailnya.
Setelah penyebaran selesai, perluas kotak Detail penyebaran dan pilih DCR Anda untuk melihat detailnya. Pilih Tampilan JSON.
Salin URI penyerapan ID dan Log yang tidak Dapat Diubah untuk DCR. Anda akan menggunakannya saat mengirim data ke Azure Monitor menggunakan API.
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 DCR baru.
Dari DCR di portal Azure, pilih Kontrol Akses (IAM)>Tambahkan penetapan peran.
Pilih Penerbit Metrik Pemantauan dan pilih Berikutnya. Anda dapat membuat tindakan kustom dengan tindakan data
Microsoft.Insights/Telemetry/Write
.Pilih Pengguna, grup, atau perwakilan layanan untuk Menetapkan akses ke dan pilih Pilih anggota. Pilih aplikasi yang Anda buat dan pilih Pilih.
Pilih Tinjau + tetapkan dan verifikasi detail sebelum Anda menyimpan penetapan peran Anda.
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.