Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menyertakan contoh definisi aturan pengumpulan data (DCR) untuk skenario pengumpulan data umum di Azure Monitor. Anda dapat mengubah definisi DCR ini sesuai kebutuhan untuk lingkungan Anda dan membuat DCR menggunakan panduan dalam Membuat atau mengedit aturan pengumpulan data. Anda juga dapat menggunakan dan menggabungkan strategi dasar dalam sampel ini untuk membuat DCR untuk skenario lain.
Sampel ini memerlukan pengetahuan tentang struktur DCR seperti yang dijelaskan dalam Struktur aturan pengumpulan data di Azure Monitor. Beberapa dapat dikonfigurasi menggunakan portal Azure tanpa pengetahuan terperinci tentang struktur DCR. Gunakan sampel ini sebagai titik awal jika Anda ingin mengelola DCR menggunakan metode di luar portal Microsoft Azure seperti ARM, CLI, dan PowerShell. Anda mungkin perlu menggunakan metode ini untuk mengedit DCR yang ada untuk menerapkan fitur lanjutan seperti transformasi.
Masing-masing sampel ini berfokus pada sumber data tertentu, meskipun Anda dapat menggabungkan beberapa sumber data dari berbagai jenis dalam satu DCR. Sertakan aliran data untuk masing-masing untuk mengirim data ke tujuan yang sesuai. Tidak ada perbedaan fungsional antara menggabungkan beberapa sumber data dalam satu DCR atau membuat DCR terpisah untuk setiap sumber data. Pilihannya tergantung pada kebutuhan Anda untuk mengelola dan memantau pengumpulan data.
Nota
Sampel yang ditunjukkan dalam artikel ini menyediakan JSON sumber yang diperlukan untuk membuat DCR. Setelah pembuatan, DCR akan memiliki properti tambahan seperti yang dijelaskan dalam Struktur aturan pengumpulan data di Azure Monitor.
Mengumpulkan data klien VM
Sampel berikut menunjukkan definisi DCR untuk mengumpulkan berbagai jenis data dari komputer virtual menggunakan agen Azure Monitor. Anda dapat membuat DCR ini menggunakan portal Microsoft Azure seperti yang dijelaskan dalam Mengumpulkan data dari klien VM dengan Azure Monitor.
Peristiwa Windows
DCR untuk peristiwa Windows menggunakan windowsEventLogs sumber data dengan Microsoft-Event aliran masuk. Skema aliran ini diketahui, sehingga tidak perlu didefinisikan di bagian .dataSources Peristiwa yang akan dikumpulkan ditentukan oleh properti xPathQueries. Lihat Mengumpulkan peristiwa Windows dengan Agen Azure Monitor untuk detail lebih lanjut tentang menggunakan XPaths untuk memfilter data tertentu yang ingin Anda kumpulkan. Untuk memulai, Anda dapat menggunakan panduan dalam artikel tersebut untuk membuat DCR menggunakan portal Microsoft Azure lalu memeriksa JSON menggunakan panduan di definisi DCR.
Anda dapat menambahkan transformasi pada properti dataFlows untuk kolom terhitung dan untuk memfilter data lebih lanjut, tetapi Anda harus menggunakan XPaths untuk memfilter data di agen sebanyak mungkin demi efisiensi dan untuk menghindari potensi biaya penyerapan.
Contoh DCR berikut melakukan tindakan berikut:
- Mengumpulkan aplikasi Windows dan peristiwa sistem dengan tingkat kesalahan Peringatan, Kesalahan, atau Kritis.
- Mengirim data ke tabel Peristiwa di ruang kerja.
- Menggunakan transformasi sederhana dengan
sourceyang tidak membuat perubahan pada data masuk.
{
"location": "eastus",
"properties": {
"dataSources": {
"windowsEventLogs": [
{
"name": "eventLogsDataSource",
"streams": [
"Microsoft-Event"
],
"xPathQueries": [
"System!*[System[(Level = 1 or Level = 2 or Level = 3)]]",
"Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "centralWorkspace"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-Event"
],
"destinations": [
"centralWorkspace"
],
"transformKql": "source",
"outputStream": "Microsoft-Event"
}
]
}
}
Peristiwa Syslog
DCR untuk event Syslog menggunakan sumber data syslog dengan stream masuk Microsoft-Syslog. Skema aliran ini diketahui, sehingga tidak perlu didefinisikan di bagian .dataSources Peristiwa yang akan dikumpulkan ditentukan dalam properti facilityNames dan logLevels. Lihat Mengumpulkan peristiwa Syslog dengan Agen Azure Monitor untuk detail lebih lanjut. Untuk memulai, Anda dapat menggunakan panduan dalam artikel tersebut untuk membuat DCR menggunakan portal Microsoft Azure lalu memeriksa JSON menggunakan panduan di definisi DCR.
Anda dapat menambahkan transformasi ke dataFlows properti untuk fungsionalitas tambahan dan untuk memfilter data lebih lanjut, tetapi Anda harus menggunakan facilityNames dan logLevels untuk memfilter sebanyak mungkin untuk efisiensi guna menghindari potensi biaya penyerapan.
Contoh DCR berikut melakukan tindakan berikut:
- Mengumpulkan semua peristiwa dari fasilitas
cron. - Mengumpulkan acara dengan tingkat
Warningdan lebih tinggi dari fasilitassyslogdandaemon. - Mengirim data ke tabel Syslog di ruang kerja.
- Menggunakan transformasi sederhana dengan
sourceyang tidak membuat perubahan pada data masuk.
{
"location": "eastus",
"properties": {
"dataSources": {
"syslog": [
{
"name": "cronSyslog",
"streams": [
"Microsoft-Syslog"
],
"facilityNames": [
"cron"
],
"logLevels": [
"Debug",
"Info",
"Notice",
"Warning",
"Error",
"Critical",
"Alert",
"Emergency"
]
},
{
"name": "syslogBase",
"streams": [
"Microsoft-Syslog"
],
"facilityNames": [
"daemon",
"syslog"
],
"logLevels": [
"Warning",
"Error",
"Critical",
"Alert",
"Emergency"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "centralWorkspace"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-Syslog"
],
"destinations": [
"centralWorkspace"
],
"transformKql": "source",
"outputStream": "Microsoft-Syslog"
}
]
}
}
Penghitung kinerja
DCR untuk data performa menggunakan sumber data performanceCounters dengan aliran masuk Microsoft-InsightsMetrics dan Microsoft-Perf.
Microsoft-InsightsMetrics digunakan untuk mengirim data ke Metrik Azure Monitor, sementara Microsoft-Perf digunakan untuk mengirim data ke ruang kerja Analitik Log. Anda dapat menyertakan kedua sumber data dalam DCR jika Anda mengirim data performa ke kedua tujuan. Skema aliran ini diketahui, sehingga tidak perlu didefinisikan di bagian .dataSources
Penghitung kinerja yang akan dikumpulkan ditentukan dalam propertinya counterSpecifiers. Lihat Mengumpulkan penghitung kinerja dengan Agen Azure Monitor untuk detail lebih lanjut. Untuk memulai, Anda dapat menggunakan panduan dalam artikel tersebut untuk membuat DCR menggunakan portal Microsoft Azure lalu memeriksa JSON menggunakan panduan di definisi DCR.
Anda dapat menambahkan transformasi ke dataFlows properti untuk Microsoft-Perf fungsionalitas tambahan dan untuk memfilter data lebih lanjut, tetapi Anda hanya harus memilih penghitung yang Anda butuhkan counterSpecifiers untuk efisiensi guna menghindari potensi biaya penyerapan.
Contoh DCR berikut melakukan tindakan berikut:
- Mengumpulkan satu set penghitung kinerja setiap 60 detik dan set lainnya setiap 30 detik.
- Mengirim data ke Metrik Azure Monitor dan Ruang Kerja Log Analytics.
- Menggunakan transformasi sederhana dengan
sourceyang tidak membuat perubahan pada data masuk.
{
"location": "eastus",
"properties": {
"dataSources": {
"performanceCounters": [
{
"name": "perfCounterDataSource60",
"streams": [
"Microsoft-Perf",
"Microsoft-InsightsMetrics"
],
"samplingFrequencyInSeconds": 60,
"counterSpecifiers": [
"\\Processor(_Total)\\% Processor Time",
"\\Memory\\Committed Bytes",
"\\LogicalDisk(_Total)\\Free Megabytes",
"\\PhysicalDisk(_Total)\\Avg. Disk Queue Length"
]
},
{
"name": "perfCounterDataSource30",
"streams": [
"Microsoft-Perf"
],
"samplingFrequencyInSeconds": 30,
"counterSpecifiers": [
"\\Process(_Total)\\Thread Count"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "centralWorkspace"
}
],
"azureMonitorMetrics":
{
"name": "azureMonitorMetrics-default"
}
},
"dataFlows": [
{
"streams": [
"Microsoft-Perf"
],
"destinations": [
"centralWorkspace"
],
"transformKql": "source",
"outputStream": "Microsoft-Perf"
},
{
"streams": [
"Microsoft-Perf"
],
"destinations": [
"azureMonitorMetrics-default"
],
"outputStream": "Microsoft-InsightsMetrics"
}
]
}
}
Teks log
DCR untuk log teks memiliki logfiles sumber data yang berisi detail untuk file log yang perlu dikumpulkan oleh agen. Ini termasuk nama aliran yang harus didefinisikan dalam streamDeclarations bersama kolom-kolom dari data yang masuk. Ini adalah daftar yang ditetapkan saat ini seperti yang dijelaskan dalam Mengumpulkan log dari file teks dengan Agen Monitor Azure.
Tambahkan transformasi ke dataFlows properti untuk memfilter rekaman yang tidak ingin Anda kumpulkan dan untuk memformat data agar sesuai dengan skema tabel tujuan. Skenario umumnya adalah mengurai file log yang dibatasi ke dalam beberapa kolom seperti yang dijelaskan dalam File log yang dibatasi.
Contoh DCR berikut melakukan tindakan berikut:
- Mengumpulkan entri dari semua file dengan ekstensi
.txtdalamc:\logsfolder komputer agen. - Menggunakan transformasi untuk membagi data masuk menjadi kolom berdasarkan pemisah koma (
,). Transformasi ini khusus untuk format file log dan harus disesuaikan untuk file log dengan format lain. - Mengirim log yang dikumpulkan ke tabel kustom yang disebut
MyTable_CL. Tabel ini harus sudah ada dan memiliki output kolom berdasarkan transformasi. - Mengumpulkan
FilePathdanComputeruntuk log teks seperti yang dijelaskan dalam Aliran masuk. Kolom ini juga harus ada di tabel tujuan.
{
"location": "eastus",
"properties": {
"dataCollectionEndpointId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Insights/dataCollectionEndpoints/my-dce",
"streamDeclarations": {
"Custom-MyLogFileFormat": {
"columns": [
{
"name": "TimeGenerated",
"type": "datetime"
},
{
"name": "RawData",
"type": "string"
},
{
"name": "FilePath",
"type": "string"
},
{
"name": "Computer",
"type": "string"
}
]
}
},
"dataSources": {
"logFiles": [
{
"streams": [
"Custom-MyLogFileFormat"
],
"filePatterns": [
"C:\\logs\\*.txt"
],
"format": "text",
"settings": {
"text": {
"recordStartTimestampFormat": "ISO 8601"
}
},
"name": "myLogFileFormat-Windows"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "MyDestination"
}
]
},
"dataFlows": [
{
"streams": [
"Custom-MyLogFileFormat"
],
"destinations": [
"MyDestination"
],
"transformKql": "source | project d = split(RawData,\",\") | project TimeGenerated=todatetime(d[0]), Code=toint(d[1]), Severity=tostring(d[2]), Module=tostring(d[3]), Message=tostring(d[4])",
"outputStream": "Custom-MyTable_CL"
}
]
}
}
Log JSON
DCR untuk log Json memiliki logfiles sumber data yang memuat detail rekaman log yang harus dikumpulkan oleh agen. Ini termasuk nama aliran yang harus didefinisikan dalam streamDeclarations bersama kolom-kolom dari data yang masuk. Lihat Mengumpulkan log dari file JSON dengan Agen Azure Monitor untuk detail lebih lanjut.
Tambahkan transformasi ke dataFlows properti untuk memfilter rekaman yang tidak ingin Anda kumpulkan dan untuk memformat data agar sesuai dengan skema tabel tujuan.
Contoh DCR berikut melakukan tindakan berikut:
- Mengumpulkan entri dari semua file dengan ekstensi
.jsondalamc:\logsfolder komputer agen. File harus diformat dalam json dan memiliki kolom yang tercantum dalam deklarasi aliran. - Mengirim log yang dikumpulkan ke tabel kustom yang disebut
MyTable_CL. Tabel ini harus sudah ada dan memiliki kolom yang sama dengan aliran masuk. Jika kolom tidak cocok, Anda harus mengubah transformasi dalamtransformKqlproperti untuk memformat data untuk tabel target.
{
"location": "eastus",
"properties": {
"dataCollectionEndpointId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Insights/dataCollectionEndpoints/my-dce",
"streamDeclarations": {
"Custom-Json-stream": {
"columns": [
{
"name": "TimeGenerated",
"type": "datetime"
},
{
"name": "FilePath",
"type": "string"
},
{
"name": "Code",
"type": "int"
},
{
"name": "Module",
"type": "string"
},
{
"name": "Message",
"type": "string"
}
]
}
},
"dataSources": {
"logFiles": [
{
"streams": [
"Custom-Json-stream"
],
"filePatterns": [
"C:\\logs\\*.json"
],
"format": "json",
"name": "MyJsonFile"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "MyDestination"
}
]
},
"dataFlows": [
{
"streams": [
"Custom-Json-stream"
],
"destinations": [
"MyDestination"
],
"transformKql": "source",
"outputStream": "Custom-MyTable_CL"
}
]
}
}
API pengolahan log
DCR untuk API penyerapan Log harus menentukan skema aliran masuk di bagian streamDeclarations definisi DCR. Data masuk harus diformat di JSON dengan skema yang cocok dengan kolom dalam definisi ini. Tidak diperlukan transformasi jika skema ini cocok dengan skema tabel target. Jika skema tidak cocok, Maka Anda harus menambahkan transformasi ke dataFlows properti untuk memformat data. Lihat API Penyerapan Log di Azure Monitor untuk detail selengkapnya.
Contoh DCR di bawah ini memiliki detail berikut:
- Mengirim data ke tabel yang disebut
MyTable_CLdi ruang kerja yang disebutmy-workspace. Sebelum menginstal DCR ini, Anda harus membuat tabel dengan kolom berikut:- TimeGenerated
- Komputer
- Konteks Tambahan
- ExtendedColumn (ditentukan dalam transformasi)
- Menerapkan transformasi ke data masuk untuk memformat data untuk tabel target.
Penting
Sampel ini tidak menyertakan properti dataCollectionEndpointId karena ini dibuat secara otomatis saat DCR dibuat. Anda memerlukan nilai properti ini karena ini adalah URL tempat aplikasi akan mengirim data. DCR harus memiliki kind:Direct agar properti ini dibuat. Lihat Properti untuk detail selengkapnya.
{
"location": "eastus",
"kind": "Direct",
"properties": {
"streamDeclarations": {
"Custom-MyTable": {
"columns": [
{
"name": "Time",
"type": "datetime"
},
{
"name": "Computer",
"type": "string"
},
{
"name": "AdditionalContext",
"type": "string"
}
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
"name": "LogAnalyticsDest"
}
]
},
"dataFlows": [
{
"streams": [
"Custom-MyTable"
],
"destinations": [
"LogAnalyticsDest"
],
"transformKql": "source | extend jsonContext = parse_json(AdditionalContext) | project TimeGenerated = Time, Computer, AdditionalContext = jsonContext, ExtendedColumn=tostring(jsonContext.CounterName)",
"outputStream": "Custom-MyTable_CL"
}
]
}
}
Transformasi ruang kerja DCR
Transformasi DCR ruang kerja memiliki bagian kosong datasources karena transformasi diterapkan kepada data apa pun yang dikirim ke tabel yang didukung di dalam ruang kerja. Ini harus mencakup satu dan hanya entri untuk workspaceResourceId dan entri di dataFlows untuk setiap tabel dengan transformasi. Ini juga harus memiliki "kind": "WorkspaceTransforms".
Contoh DCR di bawah ini memiliki detail berikut:
- Transformasi untuk tabel
LAQueryLogsyang memfilter kueri dari tabel itu sendiri dan menambahkan kolom dengan nama ruang kerja. - Transformasi tabel
Eventyang memfilter peristiwa informasi dan menghapus kolomParameterXml. Ini hanya akan berlaku untuk data yang berasal dari agen Log Analytics yang tidak digunakan lagi dan bukan agen Azure Monitor seperti yang dijelaskan dalam DCR transformasi Ruang Kerja.
{
"kind": "WorkspaceTransforms",
"location": "eastus",
"properties": {
"dataSources": {},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "clv2ws1"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-Table-LAQueryLogs"
],
"destinations": [
"clv2ws1"
],
"transformKql": "source | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Workspace_CF = tostring(Context['workspaces'][0]) | project-away RequestContext, Context"
},
{
"streams": [
"Microsoft-Table-Event"
],
"destinations": [
"clv2ws1"
],
"transformKql": "source | where EventLevelName in ('Error', 'Critical', 'Warning') | project-away ParameterXml"
}
]
}
}
Mengirim data ke beberapa tabel
Ada beberapa alasan mengapa Anda mungkin ingin mengirim data dari satu sumber data ke beberapa tabel di ruang kerja Analitik Log yang sama, termasuk yang berikut ini:
- Hemat biaya pengumpulan dengan mengirim rekaman yang digunakan untuk pemecahan masalah sesekali ke tabel log dasar.
- Kirim rekaman atau kolom dengan data sensitif ke tabel dengan izin atau pengaturan retensi yang berbeda.
Untuk mengirim data dari satu sumber data ke beberapa tabel, buat beberapa aliran data di DCR dengan kueri transformasi unik dan tabel output untuk masing-masing seperti yang diperlihatkan dalam diagram berikut.
Penting
Saat ini, tabel di DCR harus berada di ruang kerja Analitik Log yang sama. Untuk mengirim ke beberapa ruang kerja dari satu sumber data, gunakan beberapa DCR dan konfigurasikan aplikasi Anda untuk mengirim data ke masing-masing.
Sampel berikut memfilter rekaman yang dikirim ke tabel Peristiwa oleh agen Azure Monitor. Hanya peristiwa peringatan dan kesalahan yang dikirim ke tabel Peristiwa. Peristiwa lain dikirim ke salinan tabel peristiwa bernama Event_CL yang dikonfigurasi untuk log dasar.
Nota
Sampel ini memerlukan salinan tabel Peristiwa yang dibuat di ruang kerja yang sama bernama Event_CL.
{
"location": "eastus",
"properties": {
"dataSources": {
"windowsEventLogs": [
{
"name": "eventLogsDataSource",
"streams": [
"Microsoft-Event"
],
"xPathQueries": [
"System!*[System[(Level = 1 or Level = 2 or Level = 3)]]",
"Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "MyDestination"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-Event"
],
"destinations": [
"MyDestination"
],
"transformKql": "source | where EventLevelName in ('Error', 'Warning')",
"outputStream": "Microsoft-Event"
},
{
"streams": [
"Microsoft-Event"
],
"destinations": [
"MyDestination"
],
"transformKql": "source | where EventLevelName !in ('Error', 'Warning')",
"outputStream": "Custom-Event_CL"
}
]
}
}