Bagikan melalui


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

Operasi dasar

Diagram berikut menunjukkan operasi dasar mengumpulkan data log dari file teks.

  1. Agen mengawasi file log apa pun yang cocok dengan pola nama tertentu pada disk lokal.
  2. Setiap entri dalam log dikumpulkan dan dikirim ke Azure Monitor. Aliran masuk mencakup seluruh entri log dalam satu kolom.
  3. Jika transformasi default digunakan, seluruh entri log dikirim ke satu kolom dalam tabel target.
  4. Jika transformasi kustom digunakan, entri log dapat diurai ke dalam beberapa kolom dalam tabel target.

Diagram memperlihatkan kumpulan log teks oleh agen Azure Monitor, memperlihatkan koleksi sederhana dan transformasi untuk file yang dibatasi koma.

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, , CodeSeverity,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])

Cuplikan layar yang memperlihatkan konfigurasi koleksi file yang dibatasi koma.

Mengambil data ini dengan kueri log akan mengembalikan hasil berikut.

Cuplikan layar yang memperlihatkan kueri log yang mengembalikan hasil kumpulan file yang dibatasi koma.

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: