All Products
Search
Document Center

Simple Log Service:Plugin penguraian data

Last Updated:Jun 04, 2026

Layanan Log menyimpan log mentah di field content secara default. Gunakan plugin penguraian untuk mengekstrak pasangan kunci-nilai terstruktur guna mendukung kueri berbasis field, agregasi, dan visualisasi. Plugin penguraian dapat diterapkan pada field apa pun—tentukan field target dan pilih plugin yang sesuai dengan format kontennya.

Contoh penguraian data

Log aplikasi umum sebelum dan setelah penguraian:

Tanpa plugin penguraian data

Tanpa penguraian, semua informasi disimpan dalam satu field content, sehingga data sulit dikueri dan dianalisis berdasarkan field.

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 field 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 terstruktur atau tidak beraturan yang tidak dapat ditangani oleh mode lain. Regex sangat fleksibel tetapi lebih sulit ditulis dan didebug, serta dapat mengurangi throughput.

Prosedur

Tambahkan plugin penguraian saat membuat atau mengubah konfigurasi Logtail.

Ubah konfigurasi yang sudah ada

  1. Masuk ke Konsol Simple Log Service.

  2. Pada bagian Projects, klik project yang diinginkan.

    image

  3. Pada tab Log Storage > Logstores, klik > di samping Logstore target, lalu pilih Data Collection > Logtail Configurations.

  4. Dari daftar Logtail Configurations, klik Manage Logtail Configuration pada kolom Actions dari konfigurasi target.

  5. Klik Edit di bagian atas halaman. Pada bagian Processor Configurations di bagian bawah halaman, tambahkan plugin Logtail, lalu klik Save.

Buat konfigurasi baru

  1. Masuk ke Konsol Simple Log Service.

  2. Klik kartu Quick Data Import di sisi kanan konsol.

  3. Pada kotak dialog Import Data, klik kartu sumber data dan ikuti panduan. Pada langkah Logtail Configurations, tambahkan plugin Logtail di bagian Logtail Configurations.

    Catatan

    Pengaturan 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

Field sumber yang berisi konten log yang akan diurai. Secara default, ini adalah content, yang menyimpan seluruh entri log mentah.

Retain Original Field if Parsing Fails

Disarankan. Mempertahankan konten asli di field sumber jika 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 field 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 field 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 field (kunci) untuk konten log yang diekstrak (nilai).

  • Contoh konfigurasi

    • Input log

      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 content dan 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

    • Input log

      {"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 mengstruktur 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 (|).

    Catatan

    Untuk 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 field log berisi delimiter, Anda harus membungkus field tersebut dengan karakter quote. Simple Log Service mengurai konten yang dibungkus oleh karakter quote sebagai satu field. Pilih karakter quote yang sesuai dengan format log Anda.

    Catatan

    Untuk 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 lebih sedikit daripada jumlah Key yang ditentukan. Pilih Allow Missing Field untuk mengunggah log tersebut.

    Sebagai contoh, jika log adalah 11|22|33|44, delimiter adalah pipe (|), dan Key-nya adalah A, B, C, D, dan E.

    • Jika Anda memilih Allow Missing Field, Value untuk field E kosong, dan Simple Log Service mengunggah log tersebut.

    • Jika Anda tidak memilih Allow Missing Field, log tersebut akan dibuang.

      Catatan

      Parameter 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 field terpisah dalam format __column$i__, di mana $i adalah indeks field berlebih, dimulai dari 0. Contohnya, __column0__ dan __column1__.

    • Retain: Menambahkan semua Value berlebih ke satu field bernama __column0__.

    • Discard: Membuang nilai yang berlebih.

  • Contoh konfigurasi

    • Contoh 1: Delimiter karakter tunggal

      • Input log

        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.

        Catatan

        Delimiter: 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 field, Anda harus meng-escape-nya sebagai "" di dalam log. Simple Log Service secara otomatis mengembalikan "" menjadi " saat mengurai field tersebut. Misalnya, jika delimiter adalah koma (,) dan karakter quote adalah tanda kutip ganda ("), serta field berisi koma dan tanda kutip ganda, Anda harus membungkus field tersebut dengan karakter quote dan meng-escape tanda kutip ganda sebagai "". Entri log yang dihasilkan, Chevy,"Venture ""Extended Edition, Very Large""","", diurai menjadi tiga field: Chevy, Venture "Extended Edition, Very Large", dan field kosong.

        Karakter quote: Jika field log berisi delimiter, Anda harus membungkus field tersebut dengan karakter quote. Layanan Log mengurai konten yang dibungkus sebagai satu field. Karakter quote dapat berupa satu karakter, seperti tab (\t), pipe (|), spasi, koma (,), titik koma (;), atau karakter non-printable.

        Sebagai contoh, jika delimiter adalah koma (,) dan karakter quote adalah tanda kutip ganda ("), Layanan Log mengurai log 1997,"ac,moon",3000.00 menjadi tiga field: 1997, ac,moon, dan 3000.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

      • Input log

        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 (").

        Penting

        Dalam mode multi-karakter, delimiter dapat terdiri dari dua atau tiga karakter, seperti ||, &&&, atau ^_^. Logtail mengurai log berdasarkan pencocokan delimiter, sehingga Anda tidak perlu membungkus field dengan karakter quote. Pastikan tidak ada konten field yang mengandung kecocokan penuh dengan delimiter. Jika tidak, Logtail mungkin membagi field secara salah.

      • 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

Penguraian mode Nginx

Plugin mode Nginx mengurai konten log menjadi pasangan kunci-nilai berdasarkan definisi log_format.

Log Nginx

Server Nginx menghasilkan log akses berdasarkan direktif log_format dan access_log. Direktif tersebut secara default memiliki konfigurasi berikut:

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 main

Log tersebut berisi field-field berikut:

Nama field

Deskripsi

remote_addr

Alamat IP klien.

remote_user

Username klien.

time_local

Waktu server. Harus diapit tanda kurung siku ([]).

request

URI permintaan dan protokol HTTP.

request_time

Total waktu pemrosesan permintaan, dalam detik.

request_length

Panjang permintaan, termasuk baris permintaan, header permintaan, dan badan permintaan.

status

Kode status permintaan.

body_bytes_sent

Jumlah byte yang dikirim ke klien, tidak termasuk ukuran header respons.

http_referer

Referer.

http_user_agent

Informasi tentang klien, seperti jenis dan versi browser.

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 field log (kunci) berdasarkan NGINX Log Configuration.

  • Contoh konfigurasi

    • Input log

      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_format harus 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 mengstruktur konten log menjadi pasangan kunci-nilai berdasarkan definisi di file konfigurasi log Apache Anda.

Log Apache

Server Apache menghasilkan log berdasarkan format log, path, dan nama yang ditentukan di file konfigurasi lognya. Sebagai contoh, direktif CustomLog "/var/log/apache2/access_log" combined menulis log dalam format combined ke /var/log/apache2/access_log.

  • Format log Apache

    • format gabungan

      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    • format 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 field-field tersebut. Lihat mod_log_config untuk referensi lengkap.

    Format

    Parameter

    Deskripsi

    %a

    client_addr

    Alamat IP klien.

    %A

    local_addr

    Alamat IP lokal.

    %b

    response_size_bytes

    Ukuran respons dalam byte. Nilai null dicatat sebagai tanda hubung (-).

    %B

    response_bytes

    Ukuran respons dalam byte. Nilai null dicatat sebagai 0.

    %D

    request_time_msec

    Waktu yang dibutuhkan untuk melayani permintaan, dalam mikrodetik.

    %f

    filename

    Nama file.

    %h

    remote_addr

    Hostname jarak jauh.

    %H

    request_protocol_supple

    Protokol permintaan.

    %I

    bytes_received

    Byte yang diterima oleh server. Memerlukan modul mod_logio.

    %k

    keep_alive

    Jumlah permintaan yang ditangani dalam koneksi ini.

    %l

    remote_ident

    Nama log jarak jauh dari identd, jika tersedia.

    %m

    request_method_supple

    Metode permintaan.

    %O

    bytes_sent

    Byte yang dikirim oleh server. Memerlukan modul mod_logio.

    %p

    remote_port

    Nomor port server.

    %P

    child_process

    ID proses anak.

    %q

    request_query

    String kueri. String kosong dicatat jika tidak ada.

    %r

    request

    Baris permintaan, yang mencakup metode, URI, dan protokol HTTP.

    %R

    response_handler

    Jenis handler di server.

    %s

    status

    Status HTTP awal dari respons.

    %>s

    status

    Status HTTP akhir dari respons.

    %t

    time_local

    Waktu server.

    %T

    request_time_sec

    Waktu yang dibutuhkan untuk melayani permintaan, dalam detik.

    %u

    remote_user

    User jarak jauh, jika permintaan diautentikasi.

    %U

    request_uri_supple

    Jalur URI yang diminta, tanpa string kueri.

    %v

    server_name

    Nama server.

    %V

    server_name_canonical

    Nama server sebagaimana ditentukan oleh direktif UseCanonicalName.

    %{User-Agent}i

    http_user_agent

    Header permintaan HTTP User-Agent.

    %{Referer}i

    http_referer

    URL halaman tempat permintaan berasal.

Konfigurasi

  • Parameter

    Selain parameter umum, plugin ini memiliki parameter berikut:

    Parameter

    Deskripsi

    Log Format

    Pilih format log yang didefinisikan di file konfigurasi log Apache Anda. Opsi termasuk common, combined, dan custom.

    APACHE LogFormat Configuration

    Direktif LogFormat dari file konfigurasi Apache Anda.

    • Saat Anda mengatur Log Format ke common atau combined, field konfigurasi yang sesuai akan diisi secara otomatis. Pastikan formatnya konsisten dengan yang didefinisikan di file konfigurasi Apache.

    • Saat Anda mengatur Log Format ke Custom, masukkan string format aktual. Contohnya, 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

    Field log (kunci) yang diekstrak secara otomatis berdasarkan isi APACHE LogFormat Configuration.

  • Contoh konfigurasi

    • Input log

      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

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-taken
    • Deskripsi awalan field

      Awalan

      Deskripsi

      s-

      Aksi server.

      c-

      Aksi klien.

      cs-

      Aksi klien-ke-server.

      sc-

      Aksi server-ke-klien.

    • Deskripsi field

      Field

      Deskripsi

      date

      Tanggal permintaan.

      time

      Waktu permintaan.

      s-sitename

      Nama layanan Internet dan nomor instans situs yang diakses klien.

      s-computername

      Nama server yang menghasilkan entri log.

      s-ip

      Alamat IP server yang menghasilkan entri log.

      cs-method

      Metode permintaan, seperti GET atau POST.

      cs-uri-stem

      Sumber daya URI yang diminta klien.

      cs-uri-query

      Kueri URI: informasi yang mengikuti tanda tanya (?) dalam permintaan.

      s-port

      Port server.

      cs-username

      Domain atau username yang diautentikasi.

      • Untuk user yang diautentikasi, formatnya adalah Domain\Username.

      • Untuk user anonim, ditampilkan tanda hubung (-).

      c-ip

      Alamat IP klien yang mengakses server.

      cs-version

      Versi protokol, seperti HTTP/1.0 atau HTTP/1.1.

      cs(User-Agent)

      Browser yang digunakan klien.

      Cookie

      Isi cookie yang dikirim atau diterima. Jika tidak ada cookie, ditampilkan tanda hubung (-).

      referer

      Situs tempat user dirujuk.

      cs-host

      Informasi header host.

      sc-status

      Kode status HTTP.

      sc-substatus

      Kode substatus HTTP.

      sc-win32-status

      Kode status operasional khusus 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.

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 field konfigurasi IIS secara default.

    • Jika format log adalah W3C, atur parameter ini ke isi parameter logExtFileFlags di 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 default IIS 5: C:\WINNT\system32\inetsrv\MetaBase.bin.

      • Path file konfigurasi default IIS 6: C:\WINDOWS\system32\inetsrv\MetaBase.xml.

      • Path file konfigurasi default IIS 7: C:\Windows\System32\inetsrv\config\applicationHost.config.

    Extracted Field

    Layanan Log secara otomatis menghasilkan field log yang diekstrak (kunci) berdasarkan isi parameter IIS Configuration Fields.

  • Contoh konfigurasi

    • Input 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-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:

  1. Contoh log tidak cocok: Pastikan contoh log yang digunakan dalam konfigurasi Logtail persis sesuai dengan format log yang dikumpulkan, termasuk spasi dan karakter khusus.

  2. Format log campuran: Jika sumber log Anda berisi beberapa format, satu regex mungkin tidak cocok untuk semuanya. Aktifkan keep unmatched content untuk mempertahankan log mentah saat penguraian gagal. Anda juga dapat menggunakan beberapa konfigurasi Logtail untuk menangani format secara terpisah.

  3. 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 field metadata __tag__:__path__ ke setiap entri log, yang berisi path lengkap file sumber. Gunakan field 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 unwrapping field JSON untuk membuka atau membagi field array JSON.

Cara kerja: Dengan menentukan kedalaman unwrapping, plugin melakukan iterasi melalui field array dan menghasilkan entri log baru untuk setiap elemen dalam array. Plugin menyalin field lain (anggota non-array) dari log asli ke setiap entri log baru.

Contoh perbandingan:

Catatan
  • Operasi ini meningkatkan jumlah entri log. Satu log yang berisi array dengan N elemen menjadi N entri log. Pertimbangkan hal ini saat merencanakan biaya penyimpanan dan pengindeksan log Anda.

  • Kedalaman unwrapping: Tingkat pembukaan objek JSON. Nilai 0 (default) membuka sepenuhnya, 1 hanya membuka level saat ini, dan seterusnya.

Log mentah

Kedalaman unwrapping: 0 (awalan ditambahkan)

Kedalaman unwrapping: 1 (awalan ditambahkan)

{"s_key":{"k1":{"k2":{"k3":{"k4":{"k51":"51","k52":"52"},"k41":"41"}}}}}
0_s_key_k1_k2_k3_k41:41
0_s_key_k1_k2_k3_k4_k51:51
0_s_key_k1_k2_k3_k4_k52:52
1_s_key:{"k1":{"k2":{"k3":{"k4":{"k51":"51","k52":"52"},"k41":"41"}}}}

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 field sumber yang benar untuk plugin kedua. Pendekatan perangkaian ini berlaku untuk log format campuran apa pun.

  1. Gunakan plugin penguraian ekspresi reguler untuk mengekstrak field teks awal dan menangkap string JSON tersemat dalam field 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\"}"
    }
  2. Tambahkan plugin penguraian JSON, dan atur json_message sebagai field 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