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.
Banyak aplikasi dan layanan pada komputer virtual akan mencatat informasi ke file teks alih-alih layanan pengelogan standar seperti log Peristiwa Windows atau Syslog. Pengumpulan log teks kustom dari mesin virtual dapat dilakukan menggunakan aturan pengumpulan data (DCR) dengan sumber data Log Teks Kustom.
Detail untuk pembuatan DCR disediakan dalam Mengumpulkan data dari klien VM dengan Azure Monitor. Artikel ini menyediakan detail tambahan untuk jenis sumber data Log Teks Kustom.
Nota
Untuk bekerja dengan definisi DCR secara langsung atau untuk menyebarkan dengan metode lain seperti templat ARM, lihat Sampel aturan pengumpulan data (DCR) di Azure Monitor.
Prasyarat
Selain prasyarat yang tercantum dalam Mengumpulkan data dari klien komputer virtual dengan Azure Monitor, Anda memerlukan tabel kustom di ruang kerja Log Analytics untuk menerima data. Lihat tabel ruang kerja Analitik Log untuk detail tentang persyaratan tabel ini. Perhatikan bahwa Aarch64 alma8 dan rocky8 tidak didukung.
Mengonfigurasi sumber data file teks kustom
Buat DCR menggunakan proses dalam Mengumpulkan data dari klien komputer virtual dengan Azure Monitor. Pada tab Kumpulkan dan kirim DCR, pilih Log Teks Kustom dari menu dropdown Jenis sumber data .
Opsi yang tersedia dalam konfigurasi Log Teks Kustom dijelaskan dalam tabel berikut.
| 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. Anda dapat menggunakan wildcards dalam nama file dan nama folder tingkat pertama yang berada di atas nama file saja. Contoh: - C:\Logs\MyLog.txt - C:\Logs\MyLog*.txt -C:\Logs\IIS*\*.logs - C:\App01\AppLog.txt, C:\App02\AppLog.txt - /var/mylog.log - /var/mylog*.log - /var/logs/*/* |
| Nama tabel | Nama tabel tujuan di Ruang Kerja Analitik Log Anda. Tabel ini harus sudah ada. |
| Pemisah rekaman | Menunjukkan pemisah antara entri log.
TimeStamp adalah satu-satunya nilai yang diizinkan saat ini. Ini mencari tanggal dalam format yang ditentukan dalam timeFormat untuk mengidentifikasi awal rekaman baru. Jika tidak ada tanggal dalam format yang ditentukan yang ditemukan, akhir baris akan digunakan. Lihat Format waktu untuk detail selengkapnya. |
| Format Tanda Waktu | Format waktu yang digunakan dalam file log seperti yang dijelaskan dalam format Waktu di bawah ini. |
| Mengubah |
Transformasi saat pengambilan data untuk memfilter catatan atau memformat data yang masuk untuk tabel tujuan. Gunakan source untuk membiarkan data masuk tidak berubah dan dikirim ke RawData kolom. Lihat File log yang dibatasi untuk contoh penggunaan transformasi. |
Menambahkan tujuan
Log teks kustom hanya dapat dikirim ke ruang kerja Analitik Log tempat log disimpan dalam tabel kustom yang Anda buat. Tambahkan tujuan tipe Azure Monitor Logs dan pilih ruang kerja Log Analytics. Anda hanya dapat menambahkan satu ruang kerja ke DCR untuk sumber data log teks kustom. Jika Anda memerlukan beberapa tujuan, buat beberapa DCR. Ketahuilah bahwa ini akan mengirim data duplikat ke masing-masing yang akan menghasilkan biaya tambahan.
Format waktu
Tabel berikut ini menjelaskan format waktu yang didukung dalam timeFormat pengaturan DCR. Jika waktu dengan format yang ditentukan disertakan dalam entri log, waktu tersebut akan digunakan untuk mengidentifikasi entri log baru. Jika tidak ada tanggal dalam format yang ditentukan yang ditemukan, maka akhir baris digunakan sebagai pemisah. Lihat File log multibaris untuk deskripsi lebih lanjut tentang cara pengaturan ini digunakan.
| Format waktu | Contoh |
|---|---|
ISO 8601
1 |
2024-10-29T18:28:34Z |
yyyy-MM-ddTHH:mm:ssk |
2024-10-29T18:28:34Z 2024-10-29T18:28:34+01:11 |
YYYY-MM-DD HH:MM:SS |
2024-10-29 18:28:34 |
M/D/YYYY HH:MM:SS AM/PM |
29/10/2024 06:28:34 PM |
Mon DD, YYYY HH:MM:SS |
Oktober 29, 2024 18:28:34 |
yyMMdd HH:mm:ss |
241029 18:28:34 |
ddMMyy HH:mm:ss |
291024 18:28:34 |
MMM d HH:mm:ss |
Okt 29 18:28:34 |
dd/MMM/yyyy:HH:mm:ss zzz |
14/Okt/2024:18:28:34 -00 |
1 Tanda waktu ISO 8601 dengan pecahan desimal/subdetik tidak didukung.
Persyaratan file teks dan praktik terbaik
File yang dikumpulkan Azure Monitor harus memenuhi persyaratan berikut:
- File harus disimpan di drive lokal komputer agen di direktori yang sedang dipantau.
- 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.
Berikut ini adalah sampel file teks kustom khas yang dapat dikumpulkan oleh Azure Monitor. Meskipun setiap baris dimulai dengan tanggal, ini tidak diperlukan karena akhir baris akan digunakan untuk mengidentifikasi setiap entri jika tidak ada tanggal yang ditemukan.
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.
Patuhi rekomendasi berikut untuk memastikan bahwa Anda tidak mengalami kehilangan data atau masalah performa:
- Jangan menargetkan lebih dari 10 direktori dengan file log. Memantau terlalu banyak direktori menyebabkan kinerja yang buruk.
- Terus membersihkan file log di direktori yang dipantau. Melacak banyak file log dapat meningkatkan penggunaan CPU agen dan Memori. Tunggu setidaknya dua 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.
Tabel ruang kerja Analitik Log
Setiap entri dalam file log dikumpulkan saat dibuat dan dikirim ke tabel yang ditentukan di ruang kerja Analitik Log. Tabel kustom di ruang kerja Analitik Log yang akan menerima data harus ada sebelum Anda membuat DCR.
Tabel berikut ini menjelaskan kolom yang diperlukan dan opsional dalam tabel ruang kerja. Tabel dapat menyertakan kolom lain, tetapi tidak akan diisi kecuali Anda mengurai data dengan transformasi seperti yang dijelaskan dalam File log yang dibatasi.
| kolom | Tipe | Diperlukan? | Deskripsi |
|---|---|---|---|
TimeGenerated |
tanggalwaktu | Ya | Kolom ini berisi waktu rekaman dibuat dan diperlukan di semua tabel. Nilai ini akan diisi secara otomatis dengan waktu rekaman ditambahkan ke ruang kerja Analitik Log. Anda dapat mengubah nilai ini menggunakan transformasi untuk menetapkan TimeGenerated ke nilai dari entri log. |
RawData |
string | Ya 1 | Seluruh entri log dalam satu kolom. Anda bisa menggunakan transformasi jika Anda ingin memecah data ini menjadi beberapa kolom sebelum mengirim ke tabel. |
Computer |
string | Tidak. | Jika tabel menyertakan kolom ini, tabel akan diisi dengan nama komputer tempat entri log dikumpulkan. |
FilePath |
string | Tidak. | Jika tabel menyertakan kolom ini, tabel akan diisi dengan jalur ke file log tempat entri log dikumpulkan. |
1 Tabel tidak harus menyertakan RawData kolom jika Anda menggunakan transformasi untuk mengurai data ke dalam beberapa kolom.
Saat dikumpulkan menggunakan pengaturan default, data dari contoh file log yang diperlihatkan di atas akan muncul sebagai berikut saat diambil dengan kueri log.
Membuat tabel kustom
Jika tabel tujuan belum ada, Anda harus membuatnya sebelum membuat DCR. Lihat Membuat tabel kustom untuk metode lain untuk membuat tabel.
Misalnya, Anda bisa menggunakan skrip PowerShell berikut untuk membuat tabel kustom untuk menerima data dari log teks kustom. Contoh ini juga menambahkan kolom opsional.
$tableParams = @'
{
"properties": {
"schema": {
"name": "{TableName}_CL",
"columns": [
{
"name": "TimeGenerated",
"type": "DateTime"
},
{
"name": "Computer",
"type": "string"
},
{
"name": "FilePath",
"type": "string"
},
{
"name": "RawData",
"type": "string"
}
]
}
}
}
'@
Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/MyTable_CL?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
Log file multibaris
Beberapa file log mungkin berisi entri yang mencakup beberapa baris. Jika setiap entri log dimulai dengan tanggal, maka tanggal ini dapat digunakan sebagai pemisah untuk menentukan setiap entri log. Dalam hal ini, baris tambahan akan digabungkan dalam RawData kolom .
Misalnya, file teks dalam contoh sebelumnya mungkin diformat sebagai berikut:
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.
Jika format YYYY-MM-DD HH:MM:SS stempel waktu digunakan dalam DCR, maka data akan dikumpulkan dengan cara yang sama seperti contoh sebelumnya. Baris tambahan akan disertakan dalam RawData kolom . Jika format stempel waktu lain digunakan yang tidak cocok dengan tanggal dalam entri log, maka setiap entri akan dikumpulkan sebagai dua rekaman terpisah.
File log yang dibatasi
Banyak file log teks memiliki entri dengan kolom yang dibatasi oleh karakter seperti koma. Alih-alih mengirim seluruh entri ke RawData kolom, Anda dapat mengurai data ke dalam kolom terpisah sehingga masing-masing dapat diisi dalam tabel tujuan. Gunakan transformasi dengan fungsi terpisah untuk melakukan penguraian ini.
Contoh file teks yang ditunjukkan di atas dibatasi koma, dan bidang dapat dijelaskan sebagai: Time, , Code, Severity, Module, dan Message. Untuk mengurai data ini ke dalam kolom terpisah, tambahkan setiap kolom ke tabel tujuan dan tambahkan transformasi berikut ke DCR.
Penting
Sebelum menambahkan transformasi ini ke DCR, Anda harus menambahkan kolom ini ke tabel tujuan. Anda dapat mengubah skrip PowerShell di atas untuk menyertakan kolom tambahan saat tabel dibuat. Atau gunakan portal Microsoft Azure seperti yang dijelaskan di Menambahkan atau menghapus kolom kustom untuk menambahkan kolom ke tabel yang sudah ada.
Detail penting dari kueri transformasi mencakup yang berikut ini:
- Kueri menghasilkan properti yang masing-masing cocok dengan nama kolom dalam tabel target.
- Contoh ini mengganti nama
Timeproperti dalam file log sehingga nilai ini digunakan untukTimeGenerated. Jika ini tidak disediakan, makaTimeGeneratedakan diisi dengan waktu penyerapan. - Karena
splitmengembalikan data dinamis, Anda harus menggunakan fungsi sepertitostringdantointuntuk mengonversi data ke jenis skalar yang benar.
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.
Penyelesaian 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 selanjutnya
- Pelajari selengkapnya tentang Agen Azure Monitor.
- Pelajari selengkapnya tentang aturan pengumpulan data.