Membuat aturan pengumpulan data (DCR) menggunakan JSON

Ada beberapa metode untuk membuat aturan pengumpulan data (DCR) di Azure Monitor. Untuk banyak skenario, Anda dapat menggunakan portal Microsoft Azure untuk membuat DCR tanpa memahami struktur definisi DCR. Namun, untuk skenario lain, Anda mungkin perlu membuat DCR Anda sendiri atau mengedit yang sudah ada dengan langsung bekerja dengan definisi mereka di JSON. Ini mungkin untuk menggunakan fitur lanjutan seperti transformasi atau untuk menggunakan alat baris perintah untuk membuat dan mengelola DCR.

Peringatan

Jika Anda mengedit aturan pengumpulan data (DCR) yang ada menggunakan portal Microsoft Azure, aturan tersebut akan menimpa perubahan apa pun yang dibuat dengan mengedit JSON DCR secara langsung jika fitur tersebut tidak didukung di portal. Misalnya, jika Anda menambahkan transformasi ke DCR untuk sumber data yang tidak memungkinkan transformasi dibuat di portal, transformasi tersebut akan dihapus jika Anda kemudian mengedit DCR di portal. Dalam hal ini, Anda harus terus membuat perubahan apa pun pada DCR dengan mengedit JSON secara langsung.

Hak akses

Anda memerlukan izin berikut untuk membuat DCR:

Peran bawaan Ruang Lingkup Alasan
Kontributor Pemantauan
  • Berlangganan dan/atau
  • Grup sumber daya dan/atau
  • DCR yang sudah ada
Buat atau edit DCR, tetapkan aturan ke komputer, sebarkan asosiasi.
Peran apa pun yang menyertakan tindakan Microsoft.Resources/deployments/*
  • Berlangganan dan/atau
  • Grup sumber daya dan/atau
  • DCR yang sudah ada
Menyebarkan templat Azure Resource Manager.

Penting

Buat DCR Anda di wilayah yang sama dengan ruang kerja Analitik Log tujuan atau ruang kerja Azure Monitor Anda. Anda dapat mengaitkan DCR ke komputer atau kontainer dari langganan atau grup sumber daya apa pun di penyewa. Untuk mengirim data antarpenyewa, Anda harus terlebih dahulu mengaktifkan Azure Lighthouse.

Definisi DCR

Alih-alih membuat definisi DCR dari awal, mulailah dengan DCR yang Anda buat di portal Microsoft Azure dan unduh definisi JSON-nya untuk dimodifikasi. Atau Anda dapat menggunakan salah satu DCR sampel yang menyediakan JSON untuk beberapa skenario umum. Gunakan informasi dalam Struktur aturan pengumpulan data di Azure Monitor untuk mengubah file JSON untuk lingkungan dan persyaratan tertentu Anda.

Untuk melihat definisi JSON dari DCR, lihat Melihat definisi DCR.

Membuat atau mengedit DCR

Setelah Anda memiliki definisi DCR, Anda dapat menyebarkannya ke Azure Monitor menggunakan salah satu metode berikut. Ini adalah metode yang sama untuk membuat DCR baru atau mengedit yang sudah ada.

Membuat atau mengedit DCR dengan CLI

Gunakan perintah az monitor data-collection rule create untuk membuat DCR dari file JSON Anda.

az monitor data-collection rule create --location 'eastus' --resource-group 'my-resource-group' --name 'my-dcr' --rule-file 'C:\MyNewDCR.json' --description 'This is my new DCR'

Nota

Meskipun Anda dapat memilih untuk menggunakan perintah PowerShell atau CLI untuk membuat dan mengedit DCR, metode API dan ARM akan memberikan pesan kesalahan yang lebih rinci jika ada kesalahan kompilasi.

Dalam contoh berikut, DCR menentukan nama tabel yang tidak ada di ruang kerja Analitik Log tujuan. Perintah PowerShell mengembalikan pesan kesalahan generik, tetapi panggilan API akan mengembalikan pesan kesalahan terperinci yang menentukan kesalahan yang tepat.

Cuplikan layar yang memperlihatkan pesan kesalahan untuk DCR saat menggunakan perintah PowerShell.

Cuplikan layar yang memperlihatkan pesan kesalahan untuk DCR saat menggunakan API.

Strategi untuk mengedit dan menguji DCR

Saat Anda membuat atau mengedit DCR menggunakan definisi JSON-nya, Anda sering kali perlu membuat beberapa pembaruan untuk mencapai fungsionalitas yang Anda inginkan. Anda memerlukan metode yang efisien untuk memperbarui DCR, memecahkan masalahnya jika Anda tidak mendapatkan hasil yang Anda harapkan, lalu membuat pembaruan tambahan. Ini terutama berlaku jika Anda menambahkan transformasi ke DCR karena Anda harus memvalidasi bahwa kueri berfungsi seperti yang diharapkan. Karena Anda tidak dapat mengedit JSON secara langsung di portal Azure, berikut adalah beberapa strategi yang dapat Anda gunakan.

Menggunakan file lokal sebagai sumber DCR

Jika Anda menggunakan file JSON lokal sebagai sumber DCR yang Anda buat dan edit, Anda yakin bahwa Anda selalu memiliki akses ke versi terbaru definisi DCR. Ini sangat ideal jika Anda ingin menggunakan alat kontrol versi seperti GitHub atau Azure DevOps untuk mengelola perubahan Anda. Anda juga dapat menggunakan editor seperti Visual Studio Code untuk membuat perubahan pada DCR lalu menggunakan alat baris perintah untuk memperbarui DCR di Azure Monitor seperti yang dijelaskan di atas.

Berikut ini adalah contoh skrip PowerShell yang dapat Anda gunakan untuk mendorong perubahan ke DCR dari file sumber. Ini memvalidasi bahwa file sumber adalah JSON yang valid sebelum mengirimkannya ke Azure Monitor.

param (
    [Parameter(Mandatory = $true)][string]$ResourceId,  # Resource ID of the DCR
    [Parameter(Mandatory = $true)][string]$FilePath  # Path to the DCR JSON file to upload
)

# Read the DCR content from the file
Write-Host "Reading new DCR content from: $FilePath" -ForegroundColor Green
$DCRContent = Get-Content $FilePath -Raw

# Ensure the DCR content is valid JSON
try {
    $ParsedDCRContent = $DCRContent | ConvertFrom-Json
} catch {
    Write-Host "Invalid JSON content in file: $FilePath" -ForegroundColor Red
    exit 1
}

# Create or update the DCR in the specified resource group
Write-Host "Deploying DCR $ResourceId ..." -ForegroundColor Green
Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method PUT -Payload $DCRContent

Simpan konten DCR ke file sementara

Jika Anda tidak memiliki definisi DCR dalam file lokal, Anda dapat mengambil definisi dari Azure Monitor dan menyimpannya ke file sementara. Anda kemudian dapat mengedit file menggunakan editor seperti Visual Studio Code sebelum mendorong pembaruan ke Azure Monitor.

Berikut ini adalah contoh skrip PowerShell yang dapat Anda gunakan untuk mengedit DCR yang sudah ada di Azure Monitor. Skrip akan mengambil definisi DCR dan menyimpannya ke file sementara sebelum meluncurkan Visual Studio Code. Setelah Anda menunjukkan ke skrip bahwa Anda telah menyimpan perubahan, DCR diperbarui dengan konten baru dan file sementara dihapus.

param ([Parameter(Mandatory=$true)] $ResourceId)

# Get DCR content and save it to a local file
$FilePath = "temp.dcr"
$DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method GET
$DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File $FilePath

# Open DCR in code editor
code $FilePath | Wait-Process

{ 
	#write DCR content back from the file
	$DCRContent = Get-Content $FilePath -Raw
	Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method PUT -Payload $DCRContent		
}

#Delete temporary file
Remove-Item $FilePath

Gunakan templat ARM untuk mengedit DCR langsung di tempatnya

Jika Anda ingin melakukan pengeditan sepenuhnya di portal Microsoft Azure, Anda dapat menggunakan fitur Ekspor templat untuk mengambil templat ARM untuk DCR. Anda kemudian dapat memodifikasi definisi di JSON dan menyebarkannya kembali di portal Azure.

  1. Pilih DCR yang ingin Anda ubah di portal Microsoft Azure, dan pilih Ekspor templat. Lalu klik Sebarkan untuk menyebarkan ulang templat yang sama.

    Cuplikan layar yang memperlihatkan opsi Ekspor templat untuk aturan pengumpulan data di portal Microsoft Azure.

  2. Klik Edit templat untuk membuka versi JSON yang dapat diedit untuk DCR. Jangan ubah nilai parameter.

    Cuplikan layar yang memperlihatkan opsi Edit templat untuk aturan pengumpulan data di portal Microsoft Azure.

  3. Buat perubahan yang diperlukan pada DCR lalu klik Simpan.

    Cuplikan layar yang memperlihatkan JSON yang dapat diedit untuk aturan pengumpulan data di portal Microsoft Azure.

  4. Jika Anda ingin membuat DCR baru, ubah parameter nama. Jika tidak, biarkan parameter tidak berubah. Klik Tinjau + buat untuk menyebarkan templat yang dimodifikasi dan Buat untuk membuat DCR baru.

    Cuplikan layar yang memperlihatkan opsi tinjau + buat untuk aturan pengumpulan data di portal Microsoft Azure.

  5. Jika DCR valid tanpa kesalahan, penyebaran akan berhasil dan DCR akan diperbarui dengan konfigurasi baru. Klik Buka sumber daya untuk membuka DCR yang dimodifikasi.

    Cuplikan layar yang memperlihatkan penyebaran yang berhasil untuk aturan pengumpulan data di portal Microsoft Azure.

  6. Jika DCR memiliki kesalahan kompilasi, maka Anda akan menerima pesan bahwa penyebaran Anda gagal. Klik Detail kesalahan dan Detail operasi untuk melihat detail kesalahan. Klik Sebarkan ulang lalu Edit templat lagi untuk membuat perubahan yang diperlukan pada DCR lalu simpan dan sebarkan lagi.

    Cuplikan layar yang memperlihatkan penyebaran yang gagal untuk aturan pengumpulan data di portal Microsoft Azure.

Memverifikasi dan memecahkan masalah pengumpulan data

Setelah Anda menginstal DCR, mungkin perlu beberapa menit agar perubahan diterapkan dan data dikumpulkan dengan DCR yang diperbarui. Jika Anda tidak melihat data apa pun yang dikumpulkan, gunakan fitur pemantauan DCR , yang mencakup metrik dan log untuk membantu pemecahan masalah.

Metrik DCR dikumpulkan secara otomatis untuk semua DCR, dan Anda dapat menganalisisnya menggunakan penjelajah metrik seperti metrik platform untuk sumber daya Azure lainnya. Aktifkan log kesalahan DCR untuk mendapatkan informasi kesalahan terperinci saat pemrosesan data tidak berhasil.

  • Periksa metrik seperti Logs Ingestion Bytes per Min dan Logs Rows Received per Min untuk memastikan bahwa data mencapai Azure Monitor. Jika tidak, periksa sumber data Anda untuk memastikan bahwa sumber data mengirim data seperti yang diharapkan.
  • Periksa Logs Rows Dropped per Min untuk melihat apakah ada baris yang dihilangkan. Ini mungkin tidak menunjukkan kesalahan karena baris dapat dihilangkan oleh transformasi. Jika baris yang dihilangkan sama dengan Logs Rows Dropped per Min , maka tidak ada data yang diserap di ruang kerja. Periksa Logs Transformation Errors per Min untuk melihat apakah ada kesalahan transformasi.
  • Periksa Logs Transformation Errors per Min untuk menentukan apakah ada kesalahan dari transformasi yang diterapkan ke data masuk. Ini bisa disebabkan oleh perubahan struktur data atau transformasi itu sendiri.
  • DCRLogErrors Periksa tabel untuk setiap kesalahan penyerapan yang mungkin telah dicatat. Ini dapat memberikan detail tambahan dalam mengidentifikasi akar penyebab masalah.

Langkah selanjutnya