Layanan Log menyimpan log mentah di bidang content secara default. Gunakan plugin penguraian untuk mengekstrak pasangan kunci-nilai terstruktur guna mendukung kueri tingkat bidang, agregasi, dan visualisasi. Plugin penguraian dapat diterapkan pada bidang apa pun—cukup tentukan bidang target dan pilih plugin yang sesuai dengan format kontennya.
Contoh penguraian data
Log aplikasi umum sebelum dan sesudah penguraian:
Tanpa plugin penguraian data
Tanpa penguraian, semua informasi disimpan dalam satu bidang content, sehingga data sulit dikueri dan dianalisis berdasarkan bidang.
Content:"127.0.0.1 - - [16/Aug/2024:14:37:52 +0800] "GET /wp-admin/admin-ajax.php?action=rest-nonce HTTP/1.1" 200 41 "http://www.example.com/wp-admin/post-new.php?post_type=page" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0""
Dengan plugin penguraian regex
Plugin penguraian regex mengekstrak bidang bernama yang dapat dikueri dan dianalisis secara independen.
body_bytes_sent: 41
http_referer: http://www.example.com/wp-admin/post-new.php?post_type=page
http_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; ×64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0
remote_addr: 127.0.0.1
remote_user: -
request_method: GET
request_protocol: HTTP/1.1
request_uri: /wp-admin/admin-ajax.php?action=rest-nonce
status: 200
time_local: 16/Aug/2024:14:37:52 +0800
Pemilihan plugin penguraian data
-
Disarankan: Penguraian format log khusus.
Untuk log Nginx, Apache, atau IIS, gunakan mode penguraian khusus (penguraian mode Nginx, penguraian mode Apache, penguraian mode IIS). Tidak perlu aturan manual. -
Alternatif: Penguraian data terstruktur (JSON / delimiter)
Untuk objek JSON atau log dengan delimiter tetap (koma, pipe, dll.), gunakan penguraian JSON atau penguraian mode delimiter. Mudah dikonfigurasi dan cepat diproses. -
Cadangan: Penguraian regex
Gunakan penguraian regex untuk log tidak teratur dan tidak terstruktur yang tidak dapat ditangani oleh mode lain. Regex sangat fleksibel tetapi lebih sulit ditulis dan di-debug, serta dapat mengurangi throughput.
Prosedur
Tambahkan plugin penguraian saat membuat atau mengubah konfigurasi Logtail.
Ubah konfigurasi yang sudah ada
Masuk ke Konsol Simple Log Service.
Di bagian Projects, klik proyek yang diinginkan.

-
Pada tab , klik > di samping Logstore target, lalu pilih .
-
Dari daftar Logtail Configurations, klik Manage Logtail Configuration di kolom Actions konfigurasi target.
-
Klik Edit di bagian atas halaman. Di bagian bawah halaman, pada bagian Processor Configurations, tambahkan plugin Logtail, lalu klik Save.
Buat konfigurasi baru
Masuk ke Konsol Simple Log Service.
-
Klik kartu Quick Data Import di sisi kanan konsol.
-
Pada kotak dialog Import Data, klik kartu sumber data dan ikuti panduan. Pada langkah Logtail Configurations, tambahkan plugin Logtail di bagian Logtail Configurations.
CatatanPengaturan plugin sama seperti saat Anda mengubah konfigurasi Logtail.
Gunakan plugin penguraian data
Parameter umum
Parameter ini berlaku untuk semua plugin penguraian data dan tidak diulang di bagian selanjutnya.
|
Parameter |
Deskripsi |
|
Original Field |
Bidang sumber yang berisi konten log yang akan diurai. Secara default, ini adalah |
|
Retain Original Field if Parsing Fails |
Disarankan. Mempertahankan konten asli di bidang sumber saat penguraian gagal (misalnya, karena ketidaksesuaian format), sehingga data tetap tersedia untuk debugging. |
|
Retain Original Field if Parsing Succeeds |
Mempertahankan konten log asli setelah penguraian berhasil. Biasanya digunakan untuk verifikasi data. |
|
New Name of Original Field |
Mengganti nama bidang sumber yang dipertahankan untuk mencegah konflik penamaan saat opsi Keep source field on parse failure atau Keep source field on parse success diaktifkan. |
Penguraian ekspresi reguler
Mengekstrak bidang dari log menggunakan ekspresi reguler dan menguraikannya menjadi pasangan kunci-nilai. Sangat fleksibel dan dapat disesuaikan dengan hampir semua format teks.
Konfigurasi
-
Detail parameter
Selain parameter umum, plugin ini memiliki parameter inti berikut:
Parameter
Deskripsi
Regular Expression
Ekspresi reguler yang digunakan untuk mencocokkan konten log.
-
Jika Anda memberikan contoh log, Anda dapat menghasilkan atau memasukkan ekspresi reguler secara manual.
-
Klik Generate. Di kotak teks Log Sample, sorot konten yang ingin diekstrak, lalu klik Generate Regular Expression. Simple Log Service akan menghasilkan ekspresi reguler berdasarkan pilihan Anda.
-
Klik Manually Enter Regular Expression dan masukkan ekspresi reguler. Setelah memasukkan ekspresi tersebut, klik Validate untuk memastikan ekspresi tersebut mengurai konten log dengan benar. Untuk informasi lebih lanjut, lihat How do I test a regular expression.
-
-
Jika Anda tidak memberikan contoh log, Anda harus memasukkan ekspresi reguler secara manual yang sesuai dengan format log Anda.
Extracted Field
Menentukan nama bidang (kunci) untuk konten log yang diekstrak (nilai).
-
-
Contoh konfigurasi
-
Log Masukan
127.0.0.1 - - [16/Oct/2023:12:36:49 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" -
Konfigurasi plugin
Ikuti Prosedur untuk mengonfigurasi plugin. Ekspresi regulernya adalah
(\S+)\s-\s(\S+)\s\[([^]]+)]\s"(\w+)\s(\S+)\s([^"]+)"\s(\d+)(\s\d+)[^-]+([^"]+)"\s"([^"]+).*.Atur Source field ke
contentdan masukkan log akses Nginx di kotak teks Log sample. Mengurai log dengan ekspresi reguler tersebut akan mengisi bagian Extracted log fields dengan pasangan kunci-nilai, seperti remote_addr, remote_user, time_local, request_method, request_uri, request_protocol, status, body_bytes_sent, http_referer, dan http_user_agent. Opsi Keep source field on parse failure dan Keep source field on parse success tidak dipilih. -
Hasil penguraian
-
Penguraian JSON
Mengurai objek JSON menjadi pasangan kunci-nilai.
Batasan
Plugin JSON hanya mengekstrak pasangan kunci-nilai tingkat atas dari objek JSON. Plugin ini tidak mengurai array JSON secara langsung. Untuk menangani JSON kompleks, gunakan pendekatan How to Process Complex JSON.
Konfigurasi
-
Parameter
Plugin ini hanya menggunakan parameter konfigurasi umum.
-
Contoh konfigurasi
-
Log input
{"url": "POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek********&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1", "ip": "10.200.98.220", "user-agent": "aliyun-sdk-java", "request": {"status": "200", "latency": "18204"}, "time": "05/Jan/2020:13:30:28"} -
Konfigurasi plugin
Ikuti Prosedur. Atur processor type ke JSON dan source field ke
content. Kosongkan centang pada opsi keep source field on failure dan keep source field on success. Nonaktifkan advanced parameters, lalu klik OK. -
Hasil penguraian
url: POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek********&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1 ip: 10.200.98.220 user-agent: aliyun-sdk-java request: {"status": "200", "latency": "18204"} time: 05/Jan/2020:13:30:28
-
Penguraian mode delimiter
Plugin penguraian mode delimiter menggunakan delimiter untuk menyusun konten log, menguraikannya menjadi beberapa pasangan kunci-nilai.
Konfigurasi
-
Parameter
Selain parameter umum, plugin ini memiliki parameter berikut:
Parameter
Deskripsi
Delimiter
Pilih delimiter yang sesuai dengan konten log Anda, seperti pipe (|).
CatatanUntuk menentukan Non-printable Character sebagai delimiter, cari nilai heksadesimalnya di tabel kode ASCII dan masukkan dalam format
0x<hexadecimal value>. Misalnya, karakter non-printable dengan kode ASCII 1 dimasukkan sebagai 0x01.Quote
Jika bidang log berisi delimiter, Anda harus membungkus bidang tersebut dengan karakter quote. Simple Log Service mengurai konten yang dibungkus oleh karakter quote sebagai satu bidang. Pilih karakter quote yang sesuai dengan format log Anda.
CatatanUntuk menentukan Non-printable Character sebagai karakter quote, cari nilai heksadesimalnya di tabel kode ASCII dan masukkan dalam format
0x<hexadecimal value>. Misalnya, karakter non-printable dengan kode ASCII 1 dimasukkan sebagai 0x01.Extracted log fields
-
Jika Anda memberikan contoh log, Simple Log Service mengekstrak konten log berdasarkan contoh dan delimiter yang ditentukan. Layanan Log mengekstrak konten tersebut menjadi Values. Anda harus menetapkan Key untuk setiap Value.
-
Jika Anda tidak memberikan contoh log, daftar Value tidak dihasilkan, dan Anda harus memasukkan Key secara manual berdasarkan data log dan delimiter Anda.
Key hanya boleh berisi huruf, angka, dan garis bawah (_), serta harus dimulai dengan huruf atau garis bawah (_). Panjang maksimum adalah 128 byte.
Allow Missing Field
Pengaturan ini menentukan apakah log akan diunggah ke Simple Log Service ketika jumlah Value yang diekstrak kurang dari jumlah Key yang ditentukan. Pilih Allow Missing Field untuk mengunggah log tersebut.
Contohnya, jika log adalah
11|22|33|44, delimiter adalah pipe (|), dan Key-nya adalahA,B,C,D, danE.-
Jika Anda memilih Allow Missing Field, Value untuk bidang
Eakan kosong, dan Simple Log Service akan mengunggah log tersebut. -
Jika Anda tidak memilih Allow Missing Field, log tersebut akan dibuang.
CatatanParameter Allow Missing Field untuk penguraian mode delimiter didukung di Logtail untuk Linux 1.0.28 ke atas dan Logtail untuk Windows 1.0.28.0 ke atas.
Processing Method of Field to which Excess Part is Assigned
Menentukan cara menangani log ketika jumlah Value yang diekstrak melebihi jumlah Key yang ditentukan.
-
Expand: Mempertahankan Value berlebih dan menambahkannya ke bidang terpisah dalam format
__column$i__, di mana$iadalah indeks bidang berlebih, dimulai dari 0. Contohnya,__column0__dan__column1__. -
Retain: Menambahkan semua Value berlebih ke satu bidang bernama
__column0__. -
Discard: Membuang Value berlebih.
-
-
Contoh konfigurasi
-
Contoh 1: Delimiter karakter tunggal
-
Log input
05/May/2025:13:30:28,10.10.*.*,"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1",200,18204,aliyun-sdk-java -
Konfigurasi plugin
Ikuti Prosedur. Gunakan koma (,) sebagai delimiter dan tanda kutip ganda (") sebagai karakter quote.
CatatanDelimiter: Anda dapat menggunakan satu karakter untuk memisahkan log, seperti tab (
\t), pipe (|), spasi, koma (,), titik koma (;), atau karakter non-printable. Delimiter tidak boleh berupa tanda kutip ganda (").Jika tanda kutip ganda (") muncul di dalam bidang, Anda harus meng-escape-nya sebagai
""di log. Simple Log Service secara otomatis mengembalikan""menjadi"saat mengurai bidang tersebut. Misalnya, jika delimiter adalah koma (,) dan karakter quote adalah tanda kutip ganda ("), serta bidang berisi koma dan tanda kutip ganda, Anda harus membungkus bidang tersebut dengan karakter quote dan meng-escape tanda kutip ganda sebagai"". Entri log yang dihasilkan,Chevy,"Venture ""Extended Edition, Very Large""","", diurai menjadi tiga bidang:Chevy,Venture "Extended Edition, Very Large", dan bidang kosong.Karakter quote: Jika bidang log berisi delimiter, Anda harus membungkus bidang tersebut dengan karakter quote. Layanan Log mengurai konten yang dibungkus sebagai satu bidang. Karakter quote dapat berupa satu karakter, seperti tab (
\t), pipe (|), spasi, koma (,), titik koma (;), atau karakter non-printable.Contohnya, jika delimiter adalah koma (,) dan karakter quote adalah tanda kutip ganda ("), Layanan Log mengurai log
1997,"ac,moon",3000.00menjadi tiga bidang:1997,ac,moon, dan3000.00. -
Hasil penguraian
ip:10.10.*.* request:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 size:18204 status:200 time:05/May/2025:13:30:28 user_agent:aliyun-sdk-java
-
-
Contoh 2: Delimiter multi-karakter
-
Log Masukan
05/May/2022:13:30:28&&10.200.**.**&&POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1&&200&&18204&&aliyun-sdk-java -
Konfigurasi plugin
Ikuti Prosedur. Gunakan
&&sebagai delimiter dan pertahankan karakter quote default, yaitu tanda kutip ganda (").PentingDalam mode multi-karakter, delimiter dapat terdiri dari dua atau tiga karakter, seperti
||,&&&, atau^_^. Logtail mengurai log berdasarkan pencocokan delimiter, sehingga Anda tidak perlu membungkus bidang dengan karakter quote. Pastikan tidak ada konten bidang yang mengandung kecocokan penuh dengan delimiter. Jika tidak, Logtail mungkin salah memisahkan bidang tersebut. -
Hasil penguraian
ip:10.200.**.** request:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 size:18204 status:200 time:05/May/2022:13:30:28 user_agent:aliyun-sdk-java
-
-
Penanganan kegagalan penguraian delimiter
Jika delimiter tercampur dengan karakter lain dalam konten log—misalnya, timestamp itu sendiri berisi spasi dan koma, atau spasi mengelilingi delimiter—penguraian mode delimiter mungkin tidak membagi batas bidang seperti yang diharapkan, sehingga nilai bidang yang diekstrak bisa salah.
Contoh
Log berikut menggunakan pipe (|) sebagai delimiter:
2026-03-06 21:04:32,701 - | 4 | 45 | 980
Karena timestamp itu sendiri berisi spasi, penguraian mode delimiter menyimpan tanda hubung di akhir timestamp, sehingga menjadi 2026-03-06 21:04:32,701 -, dan bidang numerik 4, 45, dan 980 membawa spasi di awal dan akhir.
Dalam kasus ini, beralihlah ke penguraian ekspresi reguler dan gunakan Regular Expression untuk menulis ekspresi reguler yang mencocokkan setiap nilai bidang secara tepat. Misalnya, ekspresi reguler berikut dengan benar mengekstrak log di atas menjadi empat bidang:
^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3})\s+-\s+\|\s+(\d+)\s+\|\s+(\d+)\s+\|\s+(\d+)$
Atur Extracted Field menjadi time, field1, field2, dan field3 secara berurutan. Hasil penguraiannya adalah sebagai berikut:
time: 2026-03-06 21:04:32,701
field1: 4
field2: 45
field3: 980
Untuk informasi tentang cara men-debug ekspresi reguler, lihat How do I test a regular expression.
Pemecahan masalah
Jika Anda tidak yakin apakah plugin di Processor Configurations menyebabkan kegagalan penguraian, hapus plugin satu per satu dan kumpulkan ulang log untuk memverifikasi:
-
Pada daftar Logtail Configurations, temukan konfigurasi Logtail target dan klik Manage Logtail Configuration.
-
Klik Edit. Di bagian Processor Configurations, hapus satu plugin pemrosesan dan klik Save.
-
Kumpulkan ulang file log dan periksa apakah hasil penguraian kembali normal.
-
Ulangi langkah-langkah di atas untuk menghapus plugin satu per satu hingga Anda mengidentifikasi plugin yang menyebabkan kegagalan penguraian.
Penguraian mode Nginx
Plugin mode Nginx mengurai konten log menjadi pasangan kunci-nilai berdasarkan definisi log_format.
Log Nginx
Konfigurasi
-
Parameter
Selain parameter umum, plugin ini memiliki parameter berikut:
Parameter
Deskripsi
NGINX Log Configuration
Definisi log_format dari file konfigurasi Nginx Anda.
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$request_time $request_length ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"';Extracted Field
Plugin secara otomatis mengekstrak bidang log (kunci) berdasarkan NGINX Log Configuration.
-
Contoh konfigurasi
-
Log input
192.168.*.* - - [15/Apr/2025:16:40:00 +0800] "GET /nginx-logo.png HTTP/1.1" 0.000 514 200 368 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.*.* Safari/537.36" -
Konfigurasi plugin
Ikuti Prosedur. Di lingkungan produksi,
log_formatharus sesuai dengan definisi di file konfigurasi Nginx Anda (biasanya /etc/nginx/nginx.conf).log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$request_time $request_length $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; -
Hasil penguraian
body_bytes_sent: 368 http_referer: - http_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.*.* Safari/537.36 remote_addr: 192.168.*.* remote_user: - request_length: 514 request_method: GET request_time: 0.000 request_uri: /nginx-logo.png status: 200 time_local: 15/Apr/2025:16:40:00
-
Penguraian pola Apache
Plugin penguraian pola Apache menyusun konten log menjadi pasangan kunci-nilai berdasarkan definisi dalam file konfigurasi log Apache Anda.
Log Apache
Konfigurasi
-
Parameter
Selain parameter umum, plugin ini memiliki parameter berikut:
Parameter
Deskripsi
Log Format
Pilih format log yang didefinisikan dalam file konfigurasi log Apache Anda. Opsi meliputi
common,combined, dancustom.APACHE LogFormat Configuration
Direktif
LogFormatdari file konfigurasi Apache Anda.-
Saat Anda mengatur Log Format ke common atau combined, bidang konfigurasi yang sesuai akan diisi secara otomatis. Pastikan formatnya konsisten dengan yang didefinisikan dalam file konfigurasi Apache.
-
Saat Anda mengatur Log Format ke Custom, masukkan string format aktual. Misalnya,
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %f %k %p %q %R %T %I %O" customized.
Extracted Field
Bidang log (kunci) yang diekstrak secara otomatis berdasarkan isi APACHE LogFormat Configuration.
-
-
Contoh konfigurasi
-
Log input
192.168.1.10 - - [08/May/2024:15:30:28 +0800] "GET /index.html HTTP/1.1" 200 1234 "https://www.example.com/referrer" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.X.X Safari/537.36" -
Konfigurasi plugin
Ikuti Prosedur. Atur Log format ke
combined. -
Hasil penguraian
http_referer:https://www.example.com/referrer http_user_agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.X.X Safari/537.36 remote_addr:192.168.1.10 remote_ident:- remote_user:- request_method:GET request_protocol:HTTP/1.1 request_uri:/index.html response_size_bytes:1234 status:200 time_local:[08/May/2024:15:30:28 +0800]
-
Penguraian mode IIS
Plugin mode IIS mengurai konten log menjadi beberapa pasangan kunci-nilai berdasarkan definisi format log IIS.
Log IIS
Konfigurasi
-
Deskripsi parameter
Selain parameter umum, plugin ini memiliki parameter berikut:
Parameter
Deskripsi
Log Format
Format log yang digunakan oleh server IIS. Format yang didukung meliputi IIS, NCSA, dan W3C.
IIS Configuration Fields
-
Jika format log adalah IIS atau NCSA, Layanan Log mengatur bidang konfigurasi IIS secara default.
-
Jika format log adalah W3C, atur parameter ini ke isi parameter
logExtFileFlagsdalam file konfigurasi IIS Anda. Contohnya:logExtFileFlags="Date, Time, ClientIP, UserName, SiteName, ComputerName, ServerIP, Method, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent, BytesRecv, TimeTaken, ServerPort, UserAgent, Cookie, Referer, ProtocolVersion, Host, HttpSubStatus"-
Path file konfigurasi IIS 5 default:
C:\WINNT\system32\inetsrv\MetaBase.bin. -
Path file konfigurasi IIS 6 default:
C:\WINDOWS\system32\inetsrv\MetaBase.xml. -
Path file konfigurasi IIS 7 default:
C:\Windows\System32\inetsrv\config\applicationHost.config.
-
Extracted Field
Layanan Log secara otomatis menghasilkan bidang log yang diekstrak (kunci) berdasarkan isi parameter IIS Configuration Fields.
-
-
Contoh konfigurasi
-
Log Masukan
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken 2023-10-27 08:00:00 W3SVC1 192.168.1.1 GET /index.html - 80 - 10.0.0.5 Mozilla/5.0 200 0 0 500 100 150 -
Konfigurasi plugin
Ikuti Prosedur. Atur Log format ke IIS.
-
Hasil penguraian
date: 2023-10-27 time: 08:00:00 s-sitename: W3SVC1 s-ip: 192.168.1.1 cs-method: GET cs-uri-stem: /index.html cs-uri-query: - s-port: 80 cs-username: - c-ip: 10.0.0.5 cs(User-Agent): Mozilla/5.0 sc-status: 200 sc-substatus: 0 sc-win32-status: 0 sc-bytes: 500 cs-bytes: 100 time-taken: 150
-
FAQ
Kegagalan regex di Layanan Log
Periksa masalah umum berikut:
-
Contoh log tidak cocok: Pastikan contoh log yang digunakan dalam konfigurasi Logtail persis sesuai dengan format log yang dikumpulkan, termasuk spasi dan karakter khusus.
-
Format log campuran: Jika sumber log Anda berisi beberapa format, satu regex mungkin tidak cocok dengan semuanya. Aktifkan opsi keep unmatched content untuk mempertahankan log mentah saat penguraian gagal. Anda juga dapat menggunakan beberapa konfigurasi Logtail untuk menangani format secara terpisah.
-
Perbedaan escaping antara kode dan konsol: Ekspresi reguler yang disalin dari kode mungkin berisi karakter escape tambahan, seperti
\\S+. Di konsol Layanan Log, gunakan satu backslash saja, seperti\S+.
Mengkueri log dari file tertentu
Layanan Log secara otomatis menambahkan bidang metadata __tag__:__path__ ke setiap entri log, yang berisi path lengkap file sumber. Gunakan bidang ini untuk memfilter log dari file tertentu seperti /var/log/app/error.log: * AND __tag__:__path__: /var/log/app/error.log.
Tidak dapat mengkueri data historis setelah modifikasi indeks
Perubahan indeks hanya berlaku untuk data yang baru dimasukkan. Untuk mengkueri data historis yang sudah ada dengan konfigurasi indeks baru, jalankan tugas reindex.
Menangani log JSON dengan array
Plugin penguraian JSON tidak dapat langsung membagi array JSON menjadi entri log terpisah.
Solusi:
Layanan Log menyediakan plugin pembongkaran bidang JSON untuk membongkar atau membagi bidang array JSON.
Cara kerja: Dengan menentukan kedalaman pembongkaran, plugin melakukan iterasi melalui bidang array dan menghasilkan entri log baru untuk setiap elemen dalam array. Plugin menyalin bidang lain (anggota non-array) dari log asli ke setiap entri log baru.
Contoh perbandingan:
-
Operasi ini meningkatkan jumlah entri log. Satu log yang berisi array N elemen menjadi N entri log. Pertimbangkan hal ini saat merencanakan biaya penyimpanan dan pengindeksan log Anda.
-
Kedalaman pembongkaran: Tingkat sejauh mana objek JSON dibongkar. Nilai 0 (default) membongkar objek sepenuhnya, 1 hanya membongkar level saat ini, dan seterusnya.
|
Log mentah |
Kedalaman pembongkaran: 0 (awalan ditambahkan) |
Kedalaman pembongkaran: 1 (awalan ditambahkan) |
|
|
|
Mengurai log dengan teks dan JSON tersemat
Rangkai beberapa plugin pemrosesan, di mana output satu plugin menjadi input untuk plugin berikutnya.
Kasus penggunaan:
Asumsikan log aplikasi Anda memiliki format berikut, yang mencakup timestamp, tingkat log, dan pesan JSON tersemat.
2025-11-12 10:30:15 INFO Request details: {"trace_id": "xyz-123", "user_id": 500, "action": "login"}
Strategi penguraian: Tambahkan dua plugin berikut secara berurutan. Tentukan bidang sumber yang benar untuk plugin kedua. Pendekatan perangkaian ini berlaku untuk log format campuran apa pun.
-
Gunakan plugin penguraian ekspresi reguler untuk mengekstrak bidang teks awal dan menangkap string JSON tersemat dalam bidang terpisah. Hasilnya sebagai berikut:
{ "log_time": "2025-11-12 10:30:15", "log_level": "INFO", "json_message": "{\"trace_id\": \"xyz-123\", \"user_id\": 500, \"action\": \"login\"}" } -
Tambahkan plugin penguraian JSON, dan atur
json_messagesebagai bidang sumbernya untuk mengurai konten JSON menjadi pasangan kunci-nilai. Hasilnya sebagai berikut:{ "log_time": "2025-11-12 10:30:15", "log_level": "INFO", "trace_id": "xyz-123", "user_id": 500, "action": "login" }
Dokumen terkait
-
Konfigurasi pipeline Logtail menggunakan operasi API:
-
Konfigurasi plugin pemrosesan di konsol:
-
Collect container logs from a cluster (stdout and files) using Kubernetes CRDs