Plugin penguraian data mengonversi log mentah menjadi pasangan kunci-nilai atau data terstruktur.
Contoh hasil penguraian data
Tabel berikut menunjukkan struktur data dari log mentah yang disimpan ke Layanan Log Sederhana dengan dan tanpa plugin penguraian ekspresi reguler. Menggunakan plugin penguraian untuk menyusun data mempermudah proses kueri selanjutnya.
Log mentah | Tanpa plugin penguraian | Dengan plugin penguraian ekspresi reguler |
| Isi: "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"" | Ekspresi reguler: |
Ikhtisar Plugin Penguraian Data
Simple Log Service menyediakan beberapa jenis plugin penguraian data. Anda dapat memilih plugin sesuai dengan kebutuhan Anda.
Plugin | Tipe | Deskripsi |
Penguraian Ekspresi Reguler | Native | Menggunakan ekspresi reguler untuk mengekstrak bidang dan mengubahnya menjadi pasangan kunci-nilai. |
Penguraian JSON | Native | Mengurai log berformat JSON menjadi pasangan kunci-nilai. |
Penguraian Berbasis Pemisah | Native | Menstrukturkan log berdasarkan pemisah. |
Penguraian Mode Nginx | Native | Mengurai log akses Nginx. |
Penguraian Mode Apache | Native | Mengurai log akses Apache. |
Penguraian Mode IIS | Native | Mengurai log akses IIS. |
Titik Masuk
Jika Anda ingin menggunakan plugin Logtail untuk memproses log, Anda dapat menambahkan konfigurasi plugin Logtail saat membuat atau memodifikasi konfigurasi Logtail. Untuk informasi lebih lanjut, lihat Ikhtisar.
Plugin penguraian ekspresi reguler
Plugin penguraian ekspresi reguler mengekstrak field log menggunakan ekspresi reguler dan mengurai log menjadi pasangan kunci-nilai.
Deskripsi konfigurasi
Parameter | Deskripsi |
Source Field | Bidang sumber yang berisi konten log sebelum penguraian. Nilai default adalah content. |
Regular Expression | Ekspresi reguler yang digunakan untuk mencocokkan log.
|
Extracted Log Fields | Tetapkan kunci untuk setiap nilai log yang diekstraksi. |
Keep Source Field On Parsing Failure | Jika Anda memilih Keep Source Field On Parsing Failure, bidang sumber akan tetap dipertahankan meskipun penguraian gagal. |
Keep Source Field On Parsing Success | Jika Anda memilih Keep Source Field On Parsing Success, bidang sumber akan dipertahankan saat penguraian berhasil. |
Renamed Source Field | Setelah Anda memilih Keep Source Field On Parsing Failure atau Keep Source Field On Parsing Success, Anda dapat menamai ulang bidang sumber. |
Plugin Penguraian JSON
Plugin penguraian JSON menyusun log JSON tipe objek menjadi pasangan kunci-nilai.
Batasan
Log JSON dibangun berdasarkan dua struktur: tipe objek (kumpulan pasangan kunci-nilai) dan tipe array (daftar nilai yang diurutkan). Plugin penguraian JSON dapat mengurai log JSON tipe objek dengan mengekstrak kunci dan nilai tingkat pertama. Plugin ini tidak mendukung penguraian log JSON tipe array.
Parameter
Parameter | Deskripsi |
Source Field | Bidang sumber yang berisi konten log sebelum penguraian. Nilai default adalah content. |
Keep Source Field On Parsing Failure | Jika Anda memilih Keep Source Field On Parsing Failure, bidang sumber akan tetap dipertahankan jika penguraian gagal. |
Keep Source Field On Parsing Success | Jika Anda memilih Keep Source Field On Parsing Success, bidang sumber akan tetap dipertahankan saat penguraian berhasil. |
Renamed Source Field | Setelah Anda memilih Keep Source Field On Parsing Failure atau Keep Source Field On Parsing Success, Anda dapat menamai ulang bidang sumber. |
Plugin penguraian berbasis pemisah
Plugin penguraian berbasis pemisah menggunakan pemisah untuk menyusun konten log menjadi beberapa pasangan kunci-nilai.
Parameter
Parameter | Deskripsi |
Source Field | Bidang sumber yang berisi konten log sebelum penguraian. Nilai defaultnya adalah content. |
Separator | Pemisah yang digunakan untuk membagi konten log, seperti VERTICAL LINE (|). Catatan Ketika Anda menentukan sebuah Invisible Character sebagai pemisah, Anda harus menemukan nilai heksadesimal yang sesuai di tabel ASCII. Format inputnya adalah |
Quote | Jika bidang log berisi pemisah, Anda harus mengapit bidang tersebut dengan karakter kutipan. Simple Log Service mengurai konten yang diapit dalam tanda kutip sebagai satu bidang tunggal. Karakter kutipan harus sesuai dengan format log Anda. Catatan Ketika Anda menentukan sebuah Invisible Character sebagai karakter kutipan, Anda harus menemukan nilai heksadesimal yang sesuai di tabel ASCII. Format inputnya adalah |
Extracted Log Fields |
Sebuah kunci hanya dapat berisi huruf, angka, dan garis bawah (_). Harus dimulai dengan huruf atau garis bawah (_). Panjang maksimumnya adalah 128 byte. |
Allow Partial Match | Menentukan apakah akan mengunggah log ke Simple Log Service jika jumlah nilai yang diekstraksi lebih sedikit daripada jumlah kunci. Jika Anda memilih Allow Partial Match, log akan diunggah. Sebagai contoh, log adalah
|
Action On Extra Fields | Tindakan yang harus diambil ketika jumlah nilai yang diekstraksi lebih besar daripada jumlah kunci.
|
Keep Source Field On Parsing Failure | Jika Anda memilih Keep Source Field On Parsing Failure, bidang sumber akan tetap ada saat penguraian gagal. |
Keep Source Field On Parsing Success | Jika Anda memilih Keep Source Field On Parsing Success, bidang sumber akan tetap ada setelah penguraian berhasil. |
Renamed Source Field | Setelah Anda memilih Keep Source Field On Parsing Failure atau Keep Source Field On Parsing Success, Anda dapat mengubah nama bidang sumber. |
Lampiran
Plugin penguraian berbasis pemisah mendukung pemisah satu karakter dan multi-karakter.
Karakter Tunggal
Berikut ini adalah contoh log dengan pemisah satu karakter.
05/May/2022: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
05/May/2022:13:31:23,10.10.*.*,"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1",401,23472,aliyun-sdk-javaDalam mode karakter tunggal, Anda harus menentukan pemisah. Anda juga dapat menentukan karakter kutipan.
Pemisah: Satu karakter yang digunakan untuk membagi log, seperti karakter tab (\t), VERTICAL LINE (|), spasi, koma (,), titik koma (;), atau karakter tak terlihat. Tanda kutip ganda (") tidak dapat digunakan sebagai pemisah.
Tanda kutip ganda (") dapat digunakan sebagai karakter kutipan di batas bidang atau sebagai bagian dari konten bidang. Jika tanda kutip ganda (") merupakan bagian dari konten bidang, itu harus diloloskan sebagai
""dalam log. Simple Log Service secara otomatis memulihkan""menjadi"selama penguraian. Sebagai contoh, asumsikan bahwa pemisahnya adalah koma (,) dan karakter kutipan adalah tanda kutip ganda ("). Jika bidang log berisi tanda kutip ganda (") dan koma (,), Anda harus mengapit bidang tersebut dengan karakter kutipan dan meloloskan tanda kutip ganda (") sebagai"". Sebagai contoh, log1999,Chevy,"Venture ""Extended Edition, Very Large""","",5000.00diurai menjadi lima bidang:1999,Chevy,Venture "Extended Edition, Very Large", bidang kosong, dan 5000.00.Kutipan: Jika bidang log berisi pemisah, Anda harus mengapit bidang tersebut dengan karakter kutipan. Simple Log Service kemudian mengurai konten yang diapit dalam tanda kutip sebagai satu bidang tunggal.
Karakter kutipan bisa berupa satu karakter, seperti karakter tab (\t), VERTICAL LINE (|), spasi, koma (,), titik koma (;), atau karakter tak terlihat.
Sebagai contoh, jika pemisahnya adalah koma (,) dan karakter kutipan adalah tanda kutip ganda ("), log
1997,Ford,E350,"ac, abs, moon",3000.00diurai menjadi lima bidang:1997,Ford,E350,ac, abs, moon, dan3000.00.
Multi-karakter
Berikut ini adalah contoh log dengan pemisah multi-karakter.
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
05/May/2022:13:31:23&&10.200.**.**&&POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1&&401&&23472&&aliyun-sdk-javaDalam mode multi-karakter, pemisah terdiri dari dua atau tiga karakter, seperti ||, &&&, atau ^_^. Penguraian log didasarkan pada pencocokan pemisah. Anda tidak perlu mengapit bidang log dengan karakter kutipan.
Pastikan bahwa urutan pemisah lengkap tidak muncul di dalam konten bidang log apa pun. Jika tidak, bidang mungkin terpecah secara salah.
Sebagai contoh, jika pemisahnya adalah &&, log 1997&&Ford&&E350&&ac&abs&moon&&3000.00 diurai menjadi lima bidang: 1997, Ford, E350, ac&abs&moon, dan 3000.00.
Plugin penguraian mode Nginx
Plugin mode Nginx mengonstruksi konten log menjadi beberapa pasangan kunci-nilai berdasarkan definisi log_format.
Pengenalan log Nginx
Server Nginx mengeluarkan log akses Nginx berdasarkan konfigurasi log_format dan access_log. Berikut adalah nilai default untuk log_format dan access_log.
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$request_time $request_length '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
access_log /var/logs/nginx/access.log mainTabel berikut menjelaskan bidang log.
Nama Bidang | Deskripsi |
remote_addr | Alamat IP Klien. |
remote_user | Nama pengguna Klien. |
time_local | Waktu server. Harus diapit oleh tanda kurung siku ([]). |
request | URI permintaan dan protokol HTTP. |
request_time | Total waktu permintaan, dalam detik. |
request_length | Panjang permintaan, termasuk baris permintaan, header permintaan, dan badan permintaan. |
status | Status permintaan. |
body_bytes_sent | Jumlah byte yang dikirim ke Klien, tidak termasuk ukuran header respons. |
http_referer | URL dari referensi. |
http_user_agent | Informasi tentang browser Klien. |
Deskripsi Konfigurasi
Parameter | Deskripsi |
NGINX Log Configuration | Blok konfigurasi log dalam file konfigurasi Nginx. Dimulai dengan log_format. Contoh: |
Source Field | Bidang sumber yang berisi konten log sebelum penguraian. Nilai defaultnya adalah content. |
Extracted Log Fields | Kunci log secara otomatis diekstraksi berdasarkan NGINX Log Configuration. |
Keep Source Field On Parsing Failure | Jika Anda memilih Keep Source Field On Parsing Failure, bidang sumber akan tetap disimpan jika penguraian gagal. |
Keep Source Field On Parsing Success | Jika Anda memilih Keep Source Field On Parsing Success, bidang sumber akan tetap disimpan saat penguraian berhasil. |
Renamed Source Field | Setelah Anda memilih Keep Source Field On Parsing Failure atau Keep Source Field On Parsing Success, Anda dapat mengubah nama bidang sumber. |
Plugin penguraian mode-Apache
Plugin penguraian mode-Apache menyusun konten log menjadi beberapa pasangan kunci-nilai berdasarkan definisi dalam file konfigurasi log Apache.
Pengenalan log Apache
Server Apache mengeluarkan log Apache berdasarkan format log, jalur, dan nama yang ditentukan dalam file konfigurasi log Apache. Sebagai contoh, CustomLog "/var/log/apache2/access_log" combined menunjukkan bahwa format gabungan digunakan untuk pencatatan dan jalur file log adalah /var/log/apache2/access_log.
Format Log Apache
format gabungan
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedformat umum
LogFormat "%h %l %u %t \"%r\" %>s %b"Format Kustom
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %f %k %p %q %R %T %I %O" customized
Tabel berikut menjelaskan bidang terkait. Untuk informasi lebih lanjut, lihat mod_log_config.
String Format
Nama Bidang
Deskripsi
%a
client_addr
Alamat IP Klien.
%A
local_addr
Alamat IP lokal.
%b
response_size_bytes
Ukuran respons dalam byte. Tanda hubung (-) ditampilkan untuk nilai kosong.
%B
response_bytes
Ukuran respons dalam byte. Angka 0 ditampilkan untuk nilai kosong.
%D
request_time_msec
Waktu yang diperlukan untuk melayani permintaan, dalam mikrodetik.
%f
filename
Nama file.
%h
remote_addr
Nama host jarak jauh.
%H
request_protocol_supple
Protokol permintaan.
%I
bytes_received
Jumlah byte yang diterima oleh server. Modul mod_logio harus diaktifkan.
%k
keep_alive
Jumlah permintaan keep-alive yang ditangani pada koneksi ini.
%l
remote_ident
Informasi identifikasi host jarak jauh.
%m
request_method_supple
Metode permintaan.
%O
bytes_sent
Jumlah byte yang dikirim oleh server. Modul mod_logio harus diaktifkan.
%p
remote_port
Nomor port server.
%P
child_process
ID proses anak.
%q
request_query
String kueri. Jika tidak ada string kueri, ini adalah string kosong.
%r
request
Baris permintaan, termasuk metode, URI, dan protokol HTTP.
%R
response_handler
Penanganan di server yang menghasilkan respons.
%s
status
Status HTTP dari respons (status awal).
%>s
status
Status HTTP dari respons (status akhir).
%t
time_local
Waktu server.
%T
request_time_sec
Waktu yang diperlukan untuk melayani permintaan, dalam detik.
%u
remote_user
Nama pengguna klien.
%U
request_uri_supple
Jalur URL yang diminta, tidak termasuk string kueri apa pun.
%v
server_name
Nama server.
%V
server_name_canonical
Nama server kanonik yang ditetapkan oleh direktif UseCanonicalName.
“%{User-Agent}i”
http_user_agent
Informasi klien.
“%{Referer}i”
http_referer
Halaman referensi.
Parameter
Parameter | Deskripsi |
Log Format | Format log yang didefinisikan dalam file konfigurasi log Apache Anda. Opsi termasuk common, combined, dan custom. |
APACHE Configuration Field | Bidang konfigurasi log dalam file konfigurasi Apache. Biasanya dimulai dengan LogFormat.
|
Source Field | Bidang sumber yang berisi konten log sebelum penguraian. Nilai default adalah content. |
Regular Expression | Ekspresi reguler yang digunakan untuk mengekstrak log Apache. Simple Log Service secara otomatis menghasilkan ekspresi reguler ini berdasarkan konten dalam APACHE Configuration Field. |
Extracted Log Fields | Kunci log dihasilkan secara otomatis berdasarkan konten dalam APACHE Configuration Field. |
Keep Source Field On Parsing Failure | Jika Anda memilih Keep Source Field On Parsing Failure, bidang sumber akan tetap ada jika penguraian gagal. |
Keep Source Field On Parsing Success | Jika Anda memilih Keep Source Field On Parsing Success, bidang sumber akan tetap ada setelah penguraian berhasil. |
Renamed Source Field | Setelah Anda memilih Keep Source Field On Parsing Failure atau Keep Source Field On Parsing Success, Anda dapat mengubah nama bidang sumber. |
Plugin penguraian mode IIS
Plugin mode IIS menyusun konten log menjadi beberapa pasangan kunci-nilai berdasarkan definisi format log IIS.
Pengenalan log IIS
Server Windows menghasilkan log IIS berdasarkan format log yang Anda pilih (IIS, NCSA, atau W3C).
Format Log
#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-takenDeskripsi Awalan Bidang
Awalan
Deskripsi
s-
Aksi server.
c-
Aksi klien.
cs-
Aksi dari klien ke server.
sc-
Aksi dari server ke klien.
Deskripsi Bidang
Bidang
Deskripsi
date
Tanggal saat klien membuat permintaan.
time
Waktu saat klien membuat permintaan.
s-sitename
Nama layanan Internet dan nomor instans situs yang diakses oleh klien.
s-computername
Nama server tempat entri log dihasilkan.
s-ip
Alamat IP server tempat entri log dihasilkan.
cs-method
Metode permintaan, seperti GET atau POST.
cs-uri-stem
Sumber daya URI, yaitu target dari aksi.
cs-uri-query
String kueri yang diminta oleh klien. Ini adalah informasi yang mengikuti tanda tanya (?).
s-port
Nomor port server.
cs-username
Domain atau nama pengguna yang telah diautentikasi.
Untuk pengguna terautentikasi, formatnya adalah
Domain\Username.Untuk pengguna anonim, tanda hubung (-) ditampilkan.
c-ip
Alamat IP asal klien yang mengakses server.
cs-version
Versi protokol, seperti HTTP 1.0 atau HTTP 1.1.
cs(User-Agent)
Browser yang digunakan oleh klien.
Cookie
Konten cookie yang dikirim atau diterima. Jika tidak ada cookie, tanda hubung (-) ditampilkan.
referer
Situs yang terakhir dikunjungi oleh pengguna.
cs-host
Informasi host.
sc-status
Status pengembalian protokol HTTP.
sc-substatus
Status subprotokol HTTP.
sc-win32-status
Status operasi dalam istilah Windows.
sc-bytes
Jumlah byte yang dikirim oleh server.
cs-bytes
Jumlah byte yang diterima oleh server.
time-taken
Waktu yang dibutuhkan untuk memproses permintaan, dalam milidetik.
Parameter
Parameter | Deskripsi |
Log Format | Format log yang digunakan oleh server IIS Anda.
|
IIS Configuration Field | Bidang konfigurasi IIS.
|
Source Field | Bidang sumber yang berisi konten log sebelum penguraian. Nilai default adalah content. |
Regular Expression | Ekspresi reguler yang digunakan untuk mengekstrak log IIS. Simple Log Service secara otomatis menghasilkan ekspresi reguler ini berdasarkan konten dalam IIS Configuration Field. |
Extracted Log Fields | Kunci log dihasilkan secara otomatis berdasarkan konten dalam IIS Configuration Field. |
Keep Source Field On Parsing Failure | Jika Anda memilih Keep Source Field On Parsing Failure, bidang sumber akan tetap disimpan saat penguraian gagal. |
Keep Source Field On Parsing Success | Jika Anda memilih Keep Source Field On Parsing Success, bidang sumber akan tetap disimpan setelah penguraian berhasil. |
Renamed Source Field | Setelah Anda memilih Keep Source Field On Parsing Failure atau Keep Source Field On Parsing Success, Anda dapat mengubah nama bidang sumber. |
Referensi
Konfigurasikan pipeline Logtail dengan memanggil operasi API:
GetLogtailPipelineConfig - Dapatkan konfigurasi pipeline Logtail
ListLogtailPipelineConfig - Daftar konfigurasi pipeline Logtail
CreateLogtailPipelineConfig - Buat konfigurasi pipeline Logtail
DeleteLogtailPipelineConfig - Hapus konfigurasi pipeline Logtail
UpdateLogtailPipelineConfig - Perbarui konfigurasi pipeline Logtail
Konfigurasikan plugin pemrosesan di Konsol:
Gunakan Kubernetes CRD untuk mengumpulkan log kontainer (stdout dan file) dari kluster



