Mengumpulkan log dari file teks dengan Agen Azure Monitor
Log Teks Kustom adalah salah satu sumber data yang digunakan dalam aturan pengumpulan data (DCR). Detail untuk pembuatan DCR disediakan dalam Mengumpulkan data dengan Agen Azure Monitor. Artikel ini menyediakan detail tambahan untuk jenis log teks.
Banyak aplikasi dan layanan akan mencatat informasi ke file teks alih-alih layanan pengelogan standar seperti log Peristiwa Windows atau Syslog. Data ini dapat dikumpulkan dengan Agen Azure Monitor dan disimpan di ruang kerja Analitik Log dengan data yang dikumpulkan dari sumber lain.
Prasyarat
- Ruang kerja Log Analitik tempat Anda memiliki setidaknya hak kontributor.
- Titik akhir pengumpulan data (DCE) di wilayah yang sama dengan ruang kerja Analitik Log. Lihat Cara menyiapkan titik akhir pengumpulan data berdasarkan penyebaran Anda untuk detailnya.
- DCR baru atau yang sudah ada dijelaskan dalam Mengumpulkan data dengan Agen Azure Monitor.
Operasi dasar
Diagram berikut menunjukkan operasi dasar mengumpulkan data log dari file teks.
- Agen mengawasi file log apa pun yang cocok dengan pola nama tertentu pada disk lokal.
- Setiap entri dalam log dikumpulkan dan dikirim ke Azure Monitor. Aliran masuk mencakup seluruh entri log dalam satu kolom.
- Jika transformasi default digunakan, seluruh entri log dikirim ke satu kolom dalam tabel target.
- Jika transformasi kustom digunakan, entri log dapat diurai ke dalam beberapa kolom dalam tabel target.
Persyaratan file teks dan praktik terbaik
File yang dipantau Agen Azure Monitor harus memenuhi persyaratan berikut:
- File harus disimpan di drive lokal komputer dengan Agen Azure Monitor di direktori yang sedang dipantau.
- Setiap rekaman harus digambarkan dengan akhir baris.
- File harus menggunakan pengodean ASCII atau UTF-8. Format lain seperti UTF-16 tidak didukung.
- Rekaman baru harus ditambahkan ke akhir file dan tidak menimpa rekaman lama. Penimpaan akan menyebabkan kehilangan data.
Patuhi rekomendasi berikut untuk memastikan bahwa Anda tidak mengalami kehilangan data atau masalah performa:
- Buat file log baru setiap hari sehingga Anda dapat dengan mudah membersihkan file lama.
- Terus membersihkan file log di direktori yang dipantau. Melacak banyak file log dapat meningkatkan penggunaan CPU agen dan Memori. Tunggu setidaknya 2 hari untuk memungkinkan cukup waktu untuk semua log diproses.
- Jangan ganti nama file yang cocok dengan pola pemindaian file dengan nama lain yang juga cocok dengan pola pemindaian file. Ini akan menyebabkan data duplikat diserap.
- Jangan ganti nama atau salin file log besar yang cocok dengan pola pemindaian file ke direktori yang dipantau. Jika harus, jangan melebihi 50MB per menit.
Aliran masuk
Catatan
Dukungan multibaris yang menggunakan stempel waktu untuk memisahkan peristiwa sekarang tersedia. Anda harus menggunakan penyebaran templat manajemen sumber daya hingga dukungan ditambahkan di UI Portal.
Aliran data masuk menyertakan kolom dalam tabel berikut.
Column | Tipe | Deskripsi |
---|---|---|
TimeGenerated |
datetime | Waktu rekaman dihasilkan. Nilai ini akan diisi secara otomatis dengan waktu rekaman ditambahkan ke ruang kerja Analitik Log. Anda dapat mengambil alih nilai ini menggunakan transformasi untuk diatur TimeGenerated ke nilai lain. |
RawData |
string | Seluruh entri log dalam satu kolom. Anda bisa menggunakan transformasi jika Anda ingin memecah data ini menjadi beberapa kolom sebelum mengirim ke tabel. |
FilePath |
string | Jika Anda menambahkan kolom ini ke aliran masuk di DCR, kolom tersebut akan diisi dengan jalur ke file log. Kolom ini tidak dibuat secara otomatis dan tidak dapat ditambahkan menggunakan portal. Anda harus memodifikasi DCR yang dibuat oleh portal secara manual atau membuat DCR menggunakan metode lain di mana Anda dapat secara eksplisit menentukan aliran masuk. |
Computer |
string | Jika Anda menambahkan kolom ini ke aliran masuk di DCR, kolom tersebut akan diisi dengan nama komputer dengan file log. Kolom ini tidak dibuat secara otomatis dan tidak dapat ditambahkan menggunakan portal. Anda harus memodifikasi DCR yang dibuat oleh portal secara manual atau membuat DCR menggunakan metode lain di mana Anda dapat secara eksplisit menentukan aliran masuk. |
Tabel kustom
Sebelum dapat mengumpulkan data log dari file teks, Anda harus membuat tabel kustom di ruang kerja Analitik Log untuk menerima data. Skema tabel harus cocok dengan data yang Anda kumpulkan, atau Anda harus menambahkan transformasi untuk memastikan bahwa skema output cocok dengan tabel.
Peringatan
Untuk menghindari kehilangan data, penting bahwa Anda tidak menggunakan tabel log kustom yang ada yang saat ini digunakan agen MMA. Setelah agen AMA menulis ke tabel log kustom yang ada, agen MMA tidak akan lagi dapat menulis ke tabel tersebut. Sebagai gantinya, Anda harus membuat tabel baru khusus untuk agen AMA untuk memastikan transisi yang lancar dari satu agen ke agen berikutnya.
Misalnya, Anda dapat menggunakan skrip PowerShell berikut untuk membuat tabel kustom dengan RawData
, FilePath
, dan Computer
. Anda tidak akan memerlukan transformasi untuk tabel ini karena skema cocok dengan skema default aliran masuk.
$tableParams = @'
{
"properties": {
"schema": {
"name": "{TableName}_CL",
"columns": [
{
"name": "TimeGenerated",
"type": "DateTime"
},
{
"name": "RawData",
"type": "String"
},
{
"name": "FilePath",
"type": "String"
},
{
"name": "Computer",
"type": "String"
}
]
}
}
}
'@
Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{WorkspaceName}/tables/{TableName}_CL?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
Membuat aturan pengumpulan data untuk file teks
Buat aturan pengumpulan data, seperti yang dijelaskan dalam Mengumpulkan data dengan Agen Azure Monitor. Di langkah Kumpulkan dan kirim, pilih Log Teks Kustom dari menu dropdown Jenis sumber data.
Pengaturan | Deskripsi |
---|---|
Pola file | Mengidentifikasi lokasi dan nama file log pada disk lokal. Gunakan kartubebas untuk nama file yang bervariasi, misalnya saat file baru dibuat setiap hari dengan nama baru. Anda dapat memasukkan beberapa pola file yang dipisahkan oleh koma. Contoh: - C:\Logs\MyLog.txt - C:\Logs\MyLog*.txt - C:\App01\AppLog.txt, C:\App02\AppLog.txt - /var/mylog.log - /var/mylog*.log |
Nama tabel | Nama tabel tujuan di Ruang Kerja Analitik Log Anda. |
Pemisah rekaman | Saat ini tidak digunakan tetapi dicadangkan untuk penggunaan potensial di masa mendatang yang memungkinkan pemisah selain akhir baris yang saat ini didukung (/r/n ). |
Transformasi | Transformasi waktu penyerapan untuk memfilter rekaman atau memformat data masuk untuk tabel tujuan. Gunakan source untuk membiarkan data masuk tidak berubah. |
File log yang dibatasi
Banyak file log teks memiliki entri yang dibatasi oleh karakter seperti koma. Untuk mengurai data ini ke dalam kolom terpisah, gunakan transformasi dengan fungsi terpisah.
Misalnya, pertimbangkan file teks dengan data yang dibatasi koma berikut. Bidang-bidang ini dapat dijelaskan sebagai: Time
, , Code
Severity
,Module
, dan Message
.
2024-06-21 19:17:34,1423,Error,Sales,Unable to connect to pricing service.
2024-06-21 19:18:23,1420,Information,Sales,Pricing service connection established.
2024-06-21 21:45:13,2011,Warning,Procurement,Module failed and was restarted.
2024-06-21 23:53:31,4100,Information,Data,Nightly backup complete.
Transformasi berikut mengurai data menjadi kolom terpisah. Karena split
mengembalikan data dinamis, Anda harus menggunakan fungsi seperti tostring
dan toint
untuk mengonversi data ke jenis skalar yang benar. Anda juga perlu memberikan nama untuk setiap entri yang cocok dengan nama kolom dalam tabel target. Perhatikan bahwa contoh ini memberikan TimeGenerated
nilai. Jika ini tidak disediakan, waktu penyerapan akan digunakan.
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])
Mengambil data ini dengan kueri log akan mengembalikan hasil berikut.
Pemecahan Masalah
Lakukan langkah-langkah berikut jika Anda tidak mengumpulkan data dari log teks yang Anda harapkan.
- Verifikasi bahwa data sedang ditulis ke file log yang dikumpulkan.
- Verifikasi bahwa nama dan lokasi file log cocok dengan pola file yang Anda tentukan.
- Verifikasi bahwa skema tabel target cocok dengan aliran masuk atau Anda memiliki transformasi yang akan mengonversi aliran masuk ke skema yang benar.
- Lihat Memverifikasi operasi untuk memverifikasi apakah agen beroperasi dan data sedang diterima.
Langkah berikutnya
Pelajari lebih lanjut tentang: