All Products
Search
Document Center

Simple Log Service:Plugin pemrosesan field

Last Updated:Jun 13, 2026

Plugin pemrosesan field menambahkan, menghapus, memodifikasi, mengemas, memperluas, dan mengekstraksi field.

Contoh pemrosesan field

Tabel ini menjelaskan struktur data dari log mentah yang disimpan di SLS serta membandingkan penggunaan plugin ekstraksi field dalam mode anchor dengan tidak menggunakan plugin sama sekali. Penggunaan plugin ekstraksi field menyusun data Anda sehingga menyederhanakan kueri berikutnya.

Log mentah

Tanpa plugin

Anchor mode

"time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"

Content: "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"

Gunakan mode anchor untuk mengekstraksi nilai field, dan atur nama field menjadi time, val_key1, val_key2, val_key3, value_key4_inner1, dan value_key4_inner2.

"time" : "2022.09.12 20:55:36"
"val_key1" : "xx"
"val_key2" : "false"
"val_key3" : "123.456"
"value_key4_inner1" : "1"
"value_key4_inner2" : "false"

Plugin pemrosesan field

SLS menyediakan jenis plugin pemrosesan field berikut. Pilih salah satu yang sesuai dengan kebutuhan Anda.

Nama plugin

Jenis

Deskripsi

Ekstrak field

Extended

Mendukung mode berikut:

  • Mode Regex: Mengekstraksi field menggunakan pencocokan ekspresi reguler.

  • Mode Anchor: Mengekstraksi field berdasarkan posisi atau penanda.

  • Mode CSV: Mengekstraksi field dalam format CSV.

  • Mode delimiter karakter tunggal: Mengekstraksi field menggunakan delimiter karakter tunggal.

  • Multi-character delimiter mode: Mengekstraksi bidang menggunakan pembatas multi-karakter.

  • Mode pasangan kunci-nilai: Mengekstraksi field dari format pasangan kunci-nilai.

  • Mode Grok: Mengekstraksi field terstruktur menggunakan sintaks Grok.

Tambahkan field

Extended

Menambahkan field baru ke log.

Hapus field

Extended

Menghapus field yang ditentukan.

Ubah nama field

Extended

Mengubah nama field.

Kemas field

Extended

Mengemas beberapa field menjadi satu objek JSON.

Perluas field JSON

Extended

Memperluas field string JSON menjadi field terpisah.

Petakan nilai field

Extended

Mengganti atau mengubah nilai field berdasarkan tabel pemetaan.

Ganti string

Extended

Menjalankan penggantian teks penuh, penggantian berbasis ekspresi reguler, atau penghapusan karakter escape pada log teks.

Titik masuk

Untuk menggunakan plugin Logtail dalam pemrosesan log, tambahkan plugin tersebut saat membuat atau mengubah konfigurasi Logtail. Untuk informasi selengkapnya, lihat Ikhtisar.

Batasan

  • Log teks dan output standar kontainer hanya mendukung konfigurasi berbasis formulir, sedangkan semua sumber input lainnya hanya mendukung konfigurasi berbasis JSON.

  • Batasan berikut berlaku saat mengekstraksi field dalam mode regex.

    Engine ekspresi reguler Go, yang berbasis RE2, memiliki batasan berikut dibandingkan engine PCRE:

    • Perbedaan sintaks grup bernama

      Go menggunakan sintaks (?P<name>...) alih-alih sintaks PCRE (?<name>...).

    • Pola ekspresi reguler yang tidak didukung

      • Assertion: (?=...), (?!...), (?<=...), dan (?<!...).

      • Ekspresi kondisional: (?(condition)true|false).

      • Pencocokan rekursif: (?R) dan (?0).

      • Referensi subrutin: (?&name) dan (?P>name).

      • Grup atomik: (?>...).

    Saat melakukan debugging ekspresi reguler dengan alat seperti Regex101, hindari pola yang tidak didukung yang tercantum di atas karena plugin tidak dapat memproses log yang menggunakannya.

Plugin ekstraksi field

Mengekstraksi field log menggunakan mode regex, mode anchor, mode CSV, mode delimiter karakter tunggal, mode delimiter multi-karakter, mode pasangan kunci-nilai, atau mode Grok.

Mode Regex

Mengekstraksi field menggunakan ekspresi reguler.

Formulir

  • Parameter

    Atur jenis prosesor ke Extract Field (Regex Mode). Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    Original Field

    Nama field sumber.

    Regular Expression

    Ekspresi reguler. Anda harus menggunakan tanda kurung () untuk menentukan field yang akan diekstraksi.

    New Field

    Nama yang diberikan untuk konten yang diekstraksi. Anda dapat menambahkan beberapa nama field.

    Report Original Field Missing Error

    Pilih opsi ini untuk melaporkan error jika field sumber yang ditentukan tidak ditemukan dalam log mentah.

    Report Regex Mismatch Error

    Pilih opsi ini untuk melaporkan error jika nilai field sumber tidak cocok dengan ekspresi reguler.

    Retain Original Field

    Pilih opsi ini untuk mempertahankan field sumber dalam log yang telah diurai.

    Retain Original Field If Parsing Fails

    Pilih opsi ini untuk mempertahankan field sumber dalam log yang telah diurai jika penguraian gagal.

    Full Regex Match

    Pilih opsi ini untuk mengekstraksi nilai hanya jika ekspresi reguler menemukan kecocokan untuk semua field yang Anda definisikan di New Field.

  • Contoh konfigurasi

    Gunakan mode regex untuk mengekstraksi nilai field content, dan atur nama field menjadi ip, time, method, url, request_time, request_length, status, length, ref_url, dan browser. Contoh konfigurasinya sebagai berikut:

    • Log mentah

      "content" : "10.200.**.** - - [10/Aug/2022:14:57:51 +0800] \"POST /PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature> HTTP/1.1\" 0.024 18204 200 37 \"-\" \"aliyun-sdk-java"
    • Konfigurasi plugin Logtail: Atur field sumber ke content, konfigurasikan ekspresi reguler, dan atur nama field hasil ke ip, time, method, url, request_time, request_length, status, length, ref_url, dan browser. Pilih opsi laporkan error jika field sumber tidak ditemukan dan laporkan error ketidakcocokan regex.

    • Hasil

      "ip" : "10.200.**.**"
      "time" : "10/Aug/2022:14:57:51"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "length" : "27"
      "ref_url" : "-"
      "browser" : "aliyun-sdk-java"

JSON

  • Parameter

    Atur type ke processor_regex. Tabel berikut menjelaskan parameter untuk objek detail.

    Parameter

    Tipe

    Wajib

    Deskripsi

    SourceKey

    String

    Ya

    Nama field sumber.

    Regex

    String

    Ya

    Ekspresi reguler. Anda harus menggunakan tanda kurung () untuk menentukan field yang akan diekstraksi.

    Keys

    Array of strings

    Ya

    Nama yang diberikan untuk konten yang diekstraksi. Contoh: ["ip", "time", "method"].

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika field sumber tidak ditemukan dalam log mentah.

    • true: Melaporkan error.

    • false (default): Tidak melaporkan error.

    NoMatchError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika nilai field sumber tidak cocok dengan ekspresi reguler.

    • true (default): Melaporkan error.

    • false: Tidak melaporkan error.

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan mempertahankan field sumber dalam log yang telah diurai.

    • true: Mempertahankan field sumber.

    • false (default): Tidak mempertahankan field sumber.

    FullMatch

    Boolean

    Tidak

    Menentukan apakah pencocokan penuh diperlukan untuk ekstraksi.

    • true (nilai default): Nilai field diekstraksi hanya jika ekspresi reguler dalam parameter Regex menemukan kecocokan untuk semua field yang ditentukan dalam parameter Keys dalam nilai field sumber.

    • false: Nilai field diekstraksi meskipun hanya ditemukan kecocokan parsial.

    KeepSourceIfParseError

    Boolean

    Tidak

    Menentukan apakah akan mempertahankan field sumber dalam log yang telah diurai jika penguraian gagal.

    • true (default): Mempertahankan field sumber.

    • false: Tidak mempertahankan field sumber.

  • Contoh konfigurasi

    Contoh ini menunjukkan cara menggunakan mode regex untuk mengekstraksi nilai dari field content dan menetapkannya ke field hasil ip, time, method, url, request_time, request_length, status, length, ref_url, dan browser.

    • Log mentah

      "content" : "10.200.**.** - - [10/Aug/2022:14:57:51 +0800] \"POST /PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature> HTTP/1.1\" 0.024 18204 200 37 \"-\" \"aliyun-sdk-java"
    • Konfigurasi plugin Logtail

      {
          "type" : "processor_regex",
          "detail" : {"SourceKey" : "content",
               "Regex" : "([\\d\\.]+) \\S+ \\S+ \\[(\\S+) \\S+\\] \"(\\w+) ([^\\\"]*)\" ([\\d\\.]+) (\\d+) (\\d+) (\\d+|-) \"([^\\\"]*)\" \"([^\\\"]*)\" (\\d+)",
               "Keys"   : ["ip", "time", "method", "url", "request_time", "request_length", "status", "length", "ref_url", "browser"],
               "NoKeyError" : true,
               "NoMatchError" : true,
               "KeepSource" : false
          }
      }
    • Hasil

      "ip" : "10.200.**.**"
      "time" : "10/Aug/2022:14:57:51"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "length" : "27"
      "ref_url" : "-"
      "browser" : "aliyun-sdk-java"

Mode Jangkar

Mengekstraksi field dengan menentukan kata kunci awal dan akhir. Jika field dalam format JSON, Anda juga dapat melakukan ekspansi JSON.

Konsol

  • Parameter

    Atur jenis prosesor ke Extract Field (Anchor Mode). Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    Original Field

    Nama field asal.

    Anchor Parameters

    Daftar konfigurasi anchor untuk ekstraksi field.

    Start Keyword

    Kata kunci yang menandai awal teks yang akan diekstraksi. Jika dibiarkan kosong, ekstraksi dimulai dari awal nilai field asal.

    End Keyword

    Kata kunci yang menandai akhir teks yang akan diekstraksi. Jika dibiarkan kosong, ekstraksi berlanjut hingga akhir nilai field asal.

    New Field

    Nama field yang menyimpan konten yang diekstraksi.

    Field Type

    Tipe data field. Nilai yang valid adalah string dan json.

    JSON Expansion

    Menentukan apakah akan melakukan ekspansi JSON.

    Character to Concatenate Expanded Keys

    Karakter yang digunakan untuk menggabungkan kunci selama ekspansi JSON. Nilai default adalah garis bawah (_).

    Maximum Depth of JSON Expansion

    Kedalaman rekursi maksimum untuk ekspansi JSON. Nilai default adalah 0, yang berarti tidak ada batasan.

    Report Original Field Missing Error

    Jika diaktifkan, melaporkan error jika field asal yang ditentukan tidak ditemukan dalam log mentah.

    Report Keywords Missing Error

    Jika diaktifkan, melaporkan error jika tidak ditemukan anchor yang cocok dalam log mentah.

    Retain Original Field

    Jika diaktifkan, mempertahankan field asal dalam log yang telah diurai.

  • Contoh konfigurasi

    Contoh ini menunjukkan cara menggunakan mode anchor untuk mengekstraksi nilai dari field content dan membuat field hasil time, val_key1, val_key2, val_key3, value_key4_inner1, dan value_key4_inner2.

    • Log mentah

      "content" : "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"
    • Konfigurasi plugin Logtail: Konfigurasikan dua aturan. Untuk aturan pertama, atur nama field sumber ke time, delimiter awal ke \t, nama field tujuan ke time, dan jenis tujuan ke string. Untuk aturan kedua, atur nama field sumber ke json, nama field tujuan ke val, jenis tujuan ke json, dan aktifkan ekspansi JSON.

    • Hasil

      "time" : "2022.09.12 20:55:36"
      "val_key1" : "xx"
      "val_key2" : "false"
      "val_key3" : "123.456"
      "value_key4_inner1" : "1"
      "value_key4_inner2" : "false"

JSON

  • Parameter

    Atur type ke processor_anchor. Parameter detail dijelaskan dalam tabel berikut.

    Parameter

    Tipe

    Wajib

    Deskripsi

    SourceKey

    String

    Ya

    Nama field asal.

    Anchors

    Array of Anchor objects

    Ya

    Daftar parameter anchor.

    Start

    String

    Ya

    Kata kunci awal. Jika dibiarkan kosong, pencocokan dimulai dari awal string.

    Stop

    String

    Ya

    Kata kunci akhir. Jika dibiarkan kosong, pencocokan berlanjut hingga akhir string.

    FieldName

    String

    Ya

    Nama field untuk konten yang diekstraksi.

    FieldType

    String

    Ya

    Tipe data field. Nilai yang valid adalah string dan json.

    ExpandJson

    Boolean

    Tidak

    Menentukan apakah akan melakukan ekspansi JSON.

    • true: Lakukan ekspansi JSON.

    • false (default): Jangan lakukan ekspansi JSON.

    Hanya berlaku ketika FieldType adalah json.

    ExpandConnector

    String

    Tidak

    Karakter yang digunakan untuk menggabungkan kunci selama ekspansi JSON. Nilai default adalah garis bawah (_).

    MaxExpandDepth

    Int

    Tidak

    Kedalaman maksimum ekspansi JSON. Nilai default adalah 0, yang berarti tidak ada batasan.

    NoAnchorError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika tidak ditemukan anchor yang cocok.

    • true: Laporkan error.

    • false (default): Jangan laporkan error.

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika field asal yang ditentukan tidak ditemukan dalam log mentah.

    • true: Laporkan error.

    • false (default): Jangan laporkan error.

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan mempertahankan field asal setelah penguraian.

    • true: Pertahankan field asal.

    • false (default): Buang field asal.

  • Contoh konfigurasi

    Gunakan mode anchor untuk mengekstraksi nilai field content, dan atur nama field menjadi time, val_key1, val_key2, val_key3, value_key4_inner1, dan value_key4_inner2. Berikut contoh konfigurasinya:

    • Log mentah

      "content" : "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"
    • Konfigurasi plugin Logtail

      {
         "type" : "processor_anchor",
         "detail" : {"SourceKey" : "content",
            "Anchors" : [
                {
                    "Start" : "time:",
                    "Stop" : "\t",
                    "FieldName" : "time",
                    "FieldType" : "string",
                    "ExpandJson" : false
                },
                {
                    "Start" : "json:",
                    "Stop" : "",
                    "FieldName" : "val",
                    "FieldType" : "json",
                    "ExpandJson" : true 
                }
            ]
        }
      }
    • Hasil

      "time" : "2022.09.12 20:55:36"
      "val_key1" : "xx"
      "val_key2" : "false"
      "val_key3" : "123.456"
      "value_key4_inner1" : "1"
      "value_key4_inner2" : "false"

Mode CSV

Gunakan mode CSV untuk mengurai log berformat CSV.

Formulir

  • Parameter

    Atur Jenis Prosesor ke Extract Field (CSV Mode). Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    Original Field

    Nama field sumber.

    New Field

    Tentukan satu atau beberapa nama field untuk nilai yang diekstraksi.

    Penting

    Jika jumlah field yang akan dipisahkan lebih sedikit daripada jumlah field di New Field, field berlebih di New Field akan diabaikan.

    Delimiter

    Delimiter yang digunakan untuk memisahkan nilai. Nilai default adalah koma (,).

    Retain Excess Part

    Jika Anda memilih opsi ini dan jumlah field yang akan dipisahkan lebih banyak daripada jumlah field di New Field, sistem akan mempertahankan bagian berlebih tersebut.

    Parse Excess Part

    Pilih opsi ini untuk mengurai konten berlebih. Gunakan Name Prefix of Field to which Excess Part is Assigned untuk menentukan awalan nama field berlebih tersebut.

    Jika Anda memilih Retain Excess Part tetapi tidak memilih Parse Excess Part, konten berlebih akan disimpan ke field _decode_preserve_.

    Catatan

    Jika konten berlebih tidak sesuai dengan format CSV, Anda harus menormalisasikannya sebelum penyimpanan.

    Name Prefix of Field to which Excess Part is Assigned

    Awalan nama untuk field berlebih. Misalnya, jika Anda mengatur parameter ini ke expand_, field-field tersebut akan dinamai expand_1, expand_2, dan seterusnya.

    Ignore Spaces before Field

    Pilih opsi ini untuk menghapus spasi awal dari nilai field.

    Retain Original Field

    Pilih opsi ini untuk mempertahankan field sumber dalam log yang telah diurai.

    Report Original Field Missing Error

    Pilih opsi ini untuk melaporkan error jika field sumber tidak ditemukan.

  • Contoh konfigurasi

    Contoh berikut menunjukkan cara mengekstraksi nilai dari field csv:

    • Log mentah

      {
          "csv": "2022-06-09,192.0.2.0,\"{\"\"key1\"\":\"\"value\"\",\"\"key2\"\":{\"\"key3\"\":\"\"string\"\"}}\"",
          ......
      }
    • Konfigurasi plugin Logtail: Atur Field sumber ke csv, Delimiter ke koma (,), dan Field hasil ke date, ip, dan content.

    • Hasil

      {
          "date": "2022-06-09",
          "ip": "192.0.2.0",
          "content": "{\"key1\":\"value\",\"key2\":{\"key3\":\"string\"}}"
          ......
      
      }

JSON

  • Parameter

    Atur type ke processor_csv. Tabel berikut menjelaskan detail.

    Parameter

    Tipe

    Wajib

    Deskripsi

    SourceKey

    String

    Ya

    Nama field sumber.

    SplitKeys

    String array

    Ya

    Nama field hasil. Contoh: ["date", "ip", "content"].

    Penting

    Jika jumlah field yang akan dipisahkan lebih sedikit daripada jumlah field dalam parameter SplitKeys, field berlebih dalam parameter SplitKeys akan diabaikan.

    PreserveOthers

    Boolean

    Tidak

    Menentukan apakah akan mempertahankan bagian berlebih dari field sumber jika berisi lebih banyak nilai daripada yang ditentukan dalam SplitKeys.

    • true: Mempertahankan bagian berlebih.

    • false (default): Tidak mempertahankan bagian berlebih.

    ExpandOthers

    Boolean

    Tidak

    Menentukan apakah akan mengurai bagian berlebih.

    • true: Mengurai bagian berlebih.

      Anda dapat menggunakan parameter ExpandOthers untuk mengurai bagian berlebih, lalu menentukan awalan penamaan untuk field bagian berlebih tersebut dengan menggunakan parameter ExpandKeyPrefix.

    • false (default): Tidak mengurai bagian berlebih.

      Jika Anda mengatur PreserveOthers ke true dan ExpandOthers ke false, konten berlebih akan disimpan ke field _decode_preserve_.

      Catatan

      Jika konten berlebih tidak sesuai dengan format CSV, Anda harus menormalisasikannya sebelum penyimpanan.

    ExpandKeyPrefix

    String

    Tidak

    Awalan nama untuk field berlebih. Misalnya, jika Anda mengatur parameter ini ke expand_, field-field tersebut akan dinamai expand_1, expand_2, dan seterusnya.

    TrimLeadingSpace

    Boolean

    Tidak

    Menentukan apakah akan menghapus spasi awal dari nilai field.

    • true: Menghapus spasi awal.

    • false (default): Tidak menghapus spasi awal.

    SplitSep

    String

    Tidak

    Delimiter yang memisahkan nilai. Nilai default adalah koma (,).

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan mempertahankan field sumber dalam log yang telah diurai.

    • true: Mempertahankan field sumber.

    • false (default): Tidak mempertahankan field sumber.

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika field sumber tidak ditemukan dalam log mentah.

    • true: Melaporkan error.

    • false (default): Tidak melaporkan error.

  • Contoh konfigurasi

    Contoh berikut menunjukkan cara mengekstraksi nilai dari field csv:

    • Log mentah

      {
          "csv": "2022-06-09,192.0.2.0,\"{\"\"key1\"\":\"\"value\"\",\"\"key2\"\":{\"\"key3\"\":\"\"string\"\"}}\"",
          ......
      }
    • Konfigurasi plugin Logtail

       {
          ......
          "type":"processor_csv",
          "detail":{
              "SourceKey":"csv",
              "SplitKeys":["date", "ip", "content"],
          }
          ......
      }
    • Hasil

      {
          "date": "2022-06-09",
          "ip": "192.0.2.0",
          "content": "{\"key1\":\"value\",\"key2\":{\"key3\":\"string\"}}"
          ......
      
      }

Mode delimiter karakter tunggal

Catatan

Mengekstraksi field menggunakan delimiter karakter tunggal. Mode ini mendukung penggunaan karakter kutipan untuk membungkus field yang mengandung delimiter.

Formulir

  • Parameter

    Atur jenis prosesor ke Extract Field (Single-character Delimiter Mode). Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    Original Field

    Nama field sumber.

    Delimiter

    Delimiter. Ini harus berupa satu karakter dan dapat diatur ke karakter non-printable, seperti \u0001.

    New Field

    Menentukan nama field yang akan dibuat untuk konten yang diekstraksi.

    Use Quote

    Menentukan apakah akan menggunakan karakter kutipan.

    Quote

    Karakter kutipan. Ini harus berupa satu karakter dan dapat berupa karakter non-printable, seperti \u0001.

    Report Original Field Missing Error

    Menentukan apakah akan melaporkan error jika field sumber yang ditentukan tidak ditemukan dalam log mentah.

    Report Delimiter Mismatch Error

    Menentukan apakah akan melaporkan error jika delimiter yang ditentukan tidak ditemukan dalam log mentah.

    Retain Original Field

    Menentukan apakah akan mempertahankan field sumber dalam log yang telah diurai.

  • Contoh

    Gunakan tanda pipa (|) sebagai delimiter untuk mengekstraksi nilai field content, dan atur nama field menjadi ip, time, method, url, request_time, request_length, status, length, ref_url, dan browser. Berikut contoh konfigurasinya:

    • Log mentah

      "content" : "10.**.**.**|10/Aug/2022:14:57:51 +0800|POST|PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>|0.024|18204|200|37|-|
      aliyun-sdk-java"
    • Konfigurasi plugin Logtail: delimiter diatur ke tanda pipa (|), dan field hasil mencakup ip, time, method, url, request_time, request_length, status, length, ref_url, dan browser.

    • Hasil

      "ip" : "10.**.**.**"
      "time" : "10/Aug/2022:14:57:51 +0800"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "length" : "27"
      "ref_url" : "-"
      "browser" : "aliyun-sdk-java"

JSON

  • Parameter

    Atur type ke processor_split_char. Tabel berikut menjelaskan parameter detail.

    Parameter

    Tipe

    Wajib

    Deskripsi

    SourceKey

    String

    Ya

    Nama field sumber.

    SplitSep

    String

    Ya

    Delimiter harus berupa satu karakter dan dapat diatur ke karakter non-printable, seperti \u0001.

    SplitKeys

    String array

    Ya

    Array string yang menentukan nama untuk field baru. Contoh: ["ip", "time", "method"].

    PreserveOthers

    Boolean

    Tidak

    Menentukan apakah akan mempertahankan bagian berlebih ketika jumlah field yang akan dipisahkan lebih banyak daripada jumlah field dalam parameter SplitKeys.

    • true: Mempertahankan bagian berlebih.

    • false (default): Tidak mempertahankan bagian berlebih.

    QuoteFlag

    Boolean

    Tidak

    Menentukan apakah akan menggunakan karakter kutipan.

    • true: Gunakan karakter kutipan.

    • false (default): Jangan gunakan karakter kutipan.

    Quote

    String

    Tidak

    Karakter kutipan. Harus berupa satu karakter dan dapat berupa karakter non-printable, seperti \u0001.

    Parameter ini hanya berlaku ketika QuoteFlag diatur ke true.

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika field sumber yang ditentukan tidak ditemukan dalam log mentah.

    • true: Laporkan error.

    • false (default): Jangan laporkan error.

    NoMatchError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika delimiter yang ditentukan tidak ditemukan dalam log mentah.

    • true: Laporkan error.

    • false (default): Jangan laporkan error.

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan mempertahankan field sumber dalam log yang telah diurai.

    • true: Mempertahankan field sumber.

    • false (default): Tidak mempertahankan field sumber.

  • Contoh

    Gunakan delimiter tanda pipa (|) untuk mengekstraksi nilai field content, dan atur nama field menjadi ip, time, method, url, request_time, request_length, status, length, ref_url, dan browser. Berikut contoh konfigurasinya:

    • Log mentah

      "content" : "10.**.**.**|10/Aug/2022:14:57:51 +0800|POST|PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>|0.024|18204|200|37|-|
      aliyun-sdk-java"
    • Konfigurasi plugin Logtail

      {
         "type" : "processor_split_char",
         "detail" : {"SourceKey" : "content",
            "SplitSep" : "|",
            "SplitKeys" : ["ip", "time", "method", "url", "request_time", "request_length", "status", "length", "ref_url", "browser"]     
        }
      }
    • Hasil

      "ip" : "10.**.**.**"
      "time" : "10/Aug/2022:14:57:51 +0800"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "length" : "27"
      "ref_url" : "-"
      "browser" : "aliyun-sdk-java"

Mode pembatas multi-karakter

Catatan

Anda dapat mengekstraksi field dengan separator multi-karakter. Mode ini tidak mendukung escaping separator dengan tanda kutip.

Konsol

  • Parameter

    Atur jenis prosesor ke Extract Field (Multi-character Delimiter Mode). Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    Original Field

    Nama field asal.

    Delimiter String

    Separator. Anda dapat menentukan karakter non-printable, seperti \u0001\u0002.

    New Field

    Nama field yang diekstraksi.

    Penting

    Jika jumlah field hasil lebih sedikit daripada jumlah field di New Field, field berlebih di New Field akan diabaikan.

    Report Original Field Missing Error

    Pilih opsi ini untuk melaporkan error jika field asal yang ditentukan tidak ditemukan dalam log.

    Report Delimiter Mismatch Error

    Pilih opsi ini untuk melaporkan error jika separator yang ditentukan tidak ditemukan dalam field asal.

    Retain Original Field

    Pilih opsi ini untuk mempertahankan field asal dalam log yang telah diurai.

    Retain Excess Part

    Pilih opsi ini untuk mempertahankan konten berlebih jika hasil pemisahan menghasilkan lebih banyak nilai daripada jumlah nama yang ditentukan di New Field.

    Parse Excess Part

    Pilih opsi ini untuk mengurai konten berlebih menjadi field baru jika hasil pemisahan menghasilkan lebih banyak nilai daripada jumlah nama yang ditentukan di New Field. Anda kemudian dapat menggunakan Name Prefix of Field to which Excess Part is Assigned untuk menentukan awalan nama field baru tersebut.

    Name Prefix of Field to which Excess Part is Assigned

    Awalan untuk nama field berlebih. Misalnya, jika Anda mengatur parameter ini ke expand_, field berlebih akan dinamai expand_1, expand_2, dan seterusnya.

  • Contoh konfigurasi

    Gunakan separator |#| untuk mengekstraksi nilai dari field content dan membuat field ip, time, method, url, request_time, request_length, status, expand_1, expand_2, dan expand_3. Berikut contoh konfigurasinya:

    • Log mentah

      "content" : "10.**.**.**|#|10/Aug/2022:14:57:51 +0800|#|POST|#|PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>|#|0.024|#|18204|#|200|#|27|#|-|#|
      aliyun-sdk-java"
    • Konfigurasi plugin Logtail: Atur string delimiter ke |#|, atur awalan nama field bagian berlebih ke expand_, dan tambahkan ip, time, method, url, request_time, request_length, dan status ke field baru.

    • Hasil

      "ip" : "10.**.**.**"
      "time" : "10/Aug/2022:14:57:51 +0800"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "expand_1" : "27"
      "expand_2" : "-"
      "expand_3" : "aliyun-sdk-java"

JSON

  • Parameter

    Atur type ke processor_split_string. Tabel berikut menjelaskan parameter dalam detail.

    Parameter

    Tipe

    Wajib

    Deskripsi

    SourceKey

    String

    Ya

    Nama field asal.

    SplitSep

    String

    Ya

    Separator. Anda dapat menentukan karakter non-printable, seperti \u0001\u0002.

    SplitKeys

    Array of strings

    Ya

    Nama untuk field yang diekstraksi, ditentukan sebagai array string. Contoh: ["key1","key2"].

    Catatan

    Jika jumlah field yang akan dipisahkan lebih sedikit daripada jumlah field dalam parameter SplitKeys, field berlebih dalam parameter SplitKeys akan diabaikan.

    PreserveOthers

    Boolean

    Tidak

    Menentukan apakah akan mempertahankan bagian berlebih jika hasil pemisahan menghasilkan lebih banyak nilai daripada jumlah kunci dalam array SplitKeys.

    • true: Mempertahankan bagian berlebih.

    • false (default): Tidak mempertahankan bagian berlebih.

    ExpandOthers

    Boolean

    Tidak

    Menentukan apakah akan mengurai bagian berlebih jika hasil pemisahan menghasilkan lebih banyak nilai daripada jumlah kunci dalam array SplitKeys.

    • true: Mengurai bagian berlebih.

      Anda dapat menggunakan parameter ExpandOthers untuk mengurai bagian berlebih dan kemudian menggunakan parameter ExpandKeyPrefix untuk menentukan awalan penamaan untuk field bagian berlebih tersebut.

    • false (default): Tidak mengurai bagian berlebih.

    ExpandKeyPrefix

    String

    Tidak

    Awalan untuk nama field berlebih. Misalnya, jika Anda mengatur parameter ini ke expand_, field berlebih akan dinamai expand_1, expand_2, dan seterusnya.

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika field yang ditentukan oleh SourceKey tidak ditemukan dalam log mentah.

    • true: Laporkan error.

    • false (default): Jangan laporkan error.

    NoMatchError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika separator yang ditentukan oleh SplitSep tidak ditemukan dalam nilai field SourceKey.

    • true: Laporkan error.

    • false (default): Jangan laporkan error.

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan mempertahankan field asal dalam log yang telah diurai.

    • true: Mempertahankan field asal.

    • false (default): Tidak mempertahankan field asal.

  • Contoh konfigurasi

    Gunakan separator |#| untuk mengekstraksi nilai dari field content dan membuat field ip, time, method, url, request_time, request_length, status, expand_1, expand_2, dan expand_3. Berikut contoh konfigurasinya:

    • Log mentah

      "content" : "10.**.**.**|#|10/Aug/2022:14:57:51 +0800|#|POST|#|PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>|#|0.024|#|18204|#|200|#|27|#|-|#|
      aliyun-sdk-java"
    • Konfigurasi plugin Logtail

      {
         "type" : "processor_split_string",
         "detail" : {"SourceKey" : "content",
            "SplitSep" : "|#|",
            "SplitKeys" : ["ip", "time", "method", "url", "request_time", "request_length", "status"],
            "PreserveOthers" : true,
            "ExpandOthers" : true,
            "ExpandKeyPrefix" : "expand_"
        }
      }
    • Hasil

      "ip" : "10.**.**.**"
      "time" : "10/Aug/2022:14:57:51 +0800"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "expand_1" : "27"
      "expand_2" : "-"
      "expand_3" : "aliyun-sdk-java"

Mode pasangan kunci-nilai

Mengekstraksi field dengan memisahkan pasangan kunci-nilai.

Catatan

Plugin processor_split_key_value didukung di Logtail 0.16.26 dan versi yang lebih baru.

Formulir

  • Parameter

    Atur jenis prosesor ke Extract Field (Key-value Pair Mode). Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    Original Field

    Nama field sumber.

    Key-value Pair Delimiter

    Delimiter antara pasangan kunci-nilai adalah karakter tab \t secara default.

    Key and Value Delimiter

    Separator antara kunci dan nilai dalam pasangan kunci-nilai. Nilai default adalah titik dua (:).

    Retain Original Field

    Mempertahankan field sumber dalam log yang telah diurai.

    Report Original Field Missing Error

    Melaporkan error jika field sumber yang ditentukan tidak ditemukan dalam log mentah.

    Drop Key-value Pairs That Fail to Match Delimiter

    Membuang pasangan kunci-nilai jika tidak mengandung separator kunci-nilai yang ditentukan.

    Report Key and Value Delimiter Missing Error

    Melaporkan error jika pasangan kunci-nilai tidak mengandung separator kunci-nilai yang ditentukan.

    Error pada kunci kosong

    Melaporkan error jika kunci kosong setelah pemisahan.

    Quote

    Jika nilai diapit oleh karakter kutipan yang ditentukan, konten di dalam tanda kutip akan diekstraksi. Karakter kutipan dapat terdiri dari beberapa karakter.

    Penting

    Backslash (\) yang mendahului karakter kutipan di dalam nilai yang dikutip diperlakukan sebagai karakter literal dan disertakan dalam nilai akhir.

  • Contoh

    • Contoh 1: Memisahkan pasangan kunci-nilai.

      Pisahkan nilai field content menjadi pasangan kunci-nilai. Delimiter antara pasangan kunci-nilai adalah karakter tab \t, dan delimiter antara kunci dan nilai adalah titik dua (:). Berikut contoh konfigurasinya:

      • Log mentah

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
      • Konfigurasi plugin Logtail: Atur delimiter pasangan kunci-nilai ke \t, atur separator kunci-nilai ke titik dua (:), dan pilih opsi pertahankan field sumber.

      • Hasil

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
        "class": "main"
        "userid": "123456"
        "method": "get"
        "message": "\"wrong user\""
    • Contoh 2: Memisahkan pasangan kunci-nilai dengan tanda kutip.

      Pisahkan nilai field content menggunakan pasangan kunci-nilai. Delimiter antara pasangan adalah karakter tab \t, delimiter dalam pasangan adalah titik dua (:), dan karakter kutipan adalah tanda kutip ganda ("). Contoh konfigurasinya sebagai berikut:

      • Log mentah

        "content": "class:main http_user_agent:\"User Agent\" \"中文\" \"hello\\t\\\"ilogtail\\\"\\tworld\""
      • Konfigurasi plugin Logtail: delimiter pasangan kunci-nilai diatur ke \t, separator kunci-nilai diatur ke titik dua (:), karakter kutipan diatur ke tanda kutip ganda ("), dan opsi pertahankan field sumber dinonaktifkan.

      • Hasil

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",
        "no_separator_key_1": "hello\t\"ilogtail\"\tworld",
    • Contoh 3: Memisahkan pasangan kunci-nilai dengan kutipan multi-karakter.

      Pisahkan nilai field content menggunakan pasangan kunci-nilai. Delimiter antara pasangan kunci-nilai adalah karakter tab \t, delimiter dalam pasangan kunci-nilai adalah titik dua (:), dan karakter kutipan adalah tanda kutip ganda ganda (""). Contoh konfigurasinya sebagai berikut:

      • Log mentah

        "content": "class:main http_user_agent:\"\"\"User Agent\"\"\" \"\"\"中文\"\"\""
      • Konfigurasi plugin Logtail: Konfigurasinya sama seperti pada Contoh 2, kecuali karakter kutipan diatur ke tiga tanda kutip ganda (""").

      • Hasil

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",

JSON

  • Parameter

    Atur parameter type ke processor_split_key_value. Tabel berikut menjelaskan parameter dalam objek detail.

    Parameter

    Tipe

    Wajib

    Deskripsi

    SourceKey

    string

    Ya

    Nama field sumber.

    Delimiter

    string

    Tidak

    Separator antara pasangan kunci-nilai. Nilai default adalah karakter tab \t.

    Separator

    string

    Tidak

    Separator antara kunci dan nilai dalam pasangan kunci-nilai. Nilai default adalah titik dua (:).

    KeepSource

    boolean

    Tidak

    Menentukan apakah akan mempertahankan field sumber dalam log yang telah diurai.

    • true: Mempertahankan field sumber.

    • false (default): Tidak mempertahankan field sumber.

    ErrIfSourceKeyNotFound

    boolean

    Tidak

    Menentukan apakah akan melaporkan error jika field sumber tidak ditemukan dalam log mentah.

    • true (default): Error dilaporkan.

    • false: Tidak ada error yang dilaporkan.

    DiscardWhenSeparatorNotFound

    boolean

    Tidak

    Menentukan apakah akan membuang pasangan kunci-nilai jika separator kunci-nilai yang ditentukan tidak ditemukan.

    • true: Pasangan kunci-nilai dibuang.

    • false (default): Pasangan kunci-nilai tidak dibuang.

    ErrIfSeparatorNotFound

    boolean

    Tidak

    Menentukan apakah akan melaporkan error jika separator kunci-nilai yang ditentukan tidak ditemukan.

    • true (default): Error dilaporkan.

    • false: Tidak ada error yang dilaporkan.

    ErrIfKeyIsEmpty

    boolean

    Tidak

    Menentukan apakah akan melaporkan error jika kunci kosong setelah pemisahan.

    • true (default): Error dilaporkan.

    • false: Tidak ada error yang dilaporkan.

    Quote

    string

    Tidak

    Menentukan karakter yang digunakan untuk mengapit nilai. Jika nilai diapit oleh karakter ini, hanya konten di dalam tanda kutip yang diekstraksi. Karakter ini dapat terdiri dari beberapa karakter. Secara default, parameter ini kosong dan fitur ini dinonaktifkan.

    Penting
    • Untuk menggunakan tanda kutip ganda (") sebagai karakter kutipan, Anda harus menggunakan backslash (\) untuk meng-escape-nya dalam konfigurasi JSON Anda. Contoh: "Quote": "\"".

    • Backslash (\) yang mendahului karakter kutipan di dalam nilai yang dikutip diperlakukan sebagai karakter literal dan disertakan dalam nilai akhir.

  • Contoh

    • Contoh 1: Memisahkan pasangan kunci-nilai.

      Pisahkan nilai field content menggunakan pasangan kunci-nilai. Delimiter antara pasangan kunci-nilai adalah karakter tab \t, dan delimiter dalam pasangan kunci-nilai adalah titik dua (:). Contoh konfigurasinya sebagai berikut:

      • Log mentah

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
      • Konfigurasi plugin Logtail

        {
          "processors":[
            {
              "type":"processor_split_key_value",
              "detail": {
                "SourceKey": "content",
                "Delimiter": "\t",
                "Separator": ":",
                "KeepSource": true
              }
            }
          ]
        }
      • Hasil

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
        "class": "main"
        "userid": "123456"
        "method": "get"
        "message": "\"wrong user\""
    • Contoh 2: Memisahkan pasangan kunci-nilai dengan tanda kutip.

      Pisahkan nilai field content menggunakan pasangan kunci-nilai. Delimiter antara pasangan kunci-nilai adalah karakter tab \t, delimiter dalam pasangan kunci-nilai adalah titik dua (:), dan karakter kutipan adalah tanda kutip ganda ("). Berikut contoh konfigurasinya:

      • Log mentah

        "content": "class:main http_user_agent:\"User Agent\" \"中文\" \"hello\\t\\\"ilogtail\\\"\\tworld\""
      • Konfigurasi plugin Logtail

        {
          "processors":[
            {
              "type":"processor_split_key_value",
              "detail": {
                "SourceKey": "content",
                "Delimiter": " ",
                "Separator": ":",
                "Quote": "\""
              }
            }
          ]
        }
      • Hasil

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",
        "no_separator_key_1": "hello\t\"ilogtail\"\tworld",
    • Contoh 3: Memisahkan pasangan kunci-nilai dengan kutipan multi-karakter.

      Pisahkan nilai field content menjadi pasangan kunci-nilai. Delimiter antara pasangan kunci-nilai adalah karakter tab (\t), delimiter dalam pasangan kunci-nilai adalah titik dua (:), dan karakter kutipan adalah tanda kutip ganda ("). Berikut contoh konfigurasinya:

      • Log mentah

        "content": "class:main http_user_agent:\"\"\"User Agent\"\"\" \"\"\"中文\"\"\""
      • Konfigurasi plugin Logtail

        {
          "processors":[
            {
              "type":"processor_split_key_value",
              "detail": {
                "SourceKey": "content",
                "Delimiter": " ",
                "Separator": ":",
                "Quote": "\"\"\""
              }
            }
          ]
        }
      • Hasil

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",

Mode Grok

Mengekstraksi field target menggunakan ekspresi grok.

Catatan

Plugin processor_grok didukung di Logtail 1.2.0 dan versi yang lebih baru.

Formulir

  • Parameter

    Atur Jenis Prosesor ke Extract Field (Grok Mode). Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    Original Field

    Nama field sumber.

    Grok Expression Array

    Array ekspresi grok. Plugin processor_grok mencoba setiap ekspresi secara berurutan dan mengembalikan field dari kecocokan pertama yang berhasil.

    Untuk daftar ekspresi default, lihat processor_grok. Jika ekspresi yang diperlukan tidak tersedia, masukkan dalam Custom Grok Pattern.

    Catatan

    Mengonfigurasi beberapa ekspresi grok dapat memengaruhi kinerja. Kami merekomendasikan untuk menggunakan tidak lebih dari lima ekspresi.

    Custom Grok Pattern

    Masukkan nama aturan kustom dan ekspresi grok.

    Custom Grok Pattern File Directory

    Direktori yang berisi file pola grok kustom Anda. Plugin processor_grok membaca semua file dalam direktori ini.

    Penting

    Setelah Anda memperbarui file pola grok kustom, Anda harus restart Logtail agar perubahan diterapkan.

    Maximum timeout

    Waktu maksimum, dalam milidetik, untuk ekspresi grok mencocokkan dan mengekstraksi field. Jika Anda mengatur ini ke 0 atau membiarkannya kosong, operasi tidak akan timeout.

    Retain Logs that Fails to be Parsed

    Mempertahankan log jika penguraian gagal.

    Retain Original Field

    Mempertahankan field sumber dalam log yang telah diurai.

    Report Original Field Missing Error

    Melaporkan error jika field sumber tidak ditemukan dalam log mentah.

    Report No Expressions Matched Error

    Melaporkan error jika tidak ada ekspresi dalam Grok Expression Array yang cocok dengan log.

    Report Match Timeout Error

    Melaporkan error jika pencocokan timeout.

  • Contoh konfigurasi

    Contoh ini menunjukkan cara menggunakan mode Grok untuk mengekstraksi nilai dari field content dan menetapkannya ke field year, month, dan day.

    • Log mentah

      "content" : "2022 October 17"
    • Konfigurasi plugin Logtail: Atur array ekspresi grok ke %{YEAR:year} %{MONTH:month} %{MONTHDAY:day} dan aktifkan opsi Pertahankan log yang gagal diurai.

    • Hasil

      "year":"2022"
      "month":"October"
      "day":"17"

JSON

  • Parameter

    Atur type ke processor_grok. Tabel berikut menjelaskan parameter dalam detail.

    Parameter

    Tipe

    Wajib

    Deskripsi

    CustomPatternDir

    Array of strings

    Tidak

    Direktori yang berisi file pola grok kustom Anda. Plugin processor_grok membaca semua file dalam direktori ini.

    Jika Anda tidak menentukan parameter ini, tidak ada file pola grok kustom yang diimpor.

    Penting

    Setelah Anda memperbarui file pola grok kustom, Anda harus restart Logtail agar perubahan diterapkan.

    CustomPatterns

    Map

    Tidak

    Pola grok kustom, di mana key adalah nama aturan dan value adalah ekspresi grok.

    Untuk ekspresi yang didukung secara default, lihat processor_grok. Jika tautan tersebut tidak berisi ekspresi yang Anda butuhkan, masukkan ekspresi grok kustom dalam Match.

    Jika Anda tidak menentukan parameter ini, pola grok kustom tidak digunakan.

    SourceKey

    String

    Tidak

    Nama field sumber. Nilai default adalah field content.

    Match

    Array of strings

    Ya

    Array ekspresi grok. Plugin processor_grok mencoba setiap ekspresi secara berurutan dan mengembalikan field dari kecocokan pertama yang berhasil.

    Catatan

    Mengonfigurasi beberapa ekspresi grok dapat memengaruhi kinerja. Kami merekomendasikan untuk menggunakan tidak lebih dari lima ekspresi.

    TimeoutMilliSeconds

    Long

    Tidak

    Waktu maksimum, dalam milidetik, untuk ekspresi grok mencocokkan dan mengekstraksi field.

    Jika Anda tidak menentukan parameter ini atau mengaturnya ke 0, operasi tidak akan timeout.

    IgnoreParseFailure

    Boolean

    Tidak

    Menentukan apakah akan mempertahankan log yang gagal diurai.

    • true (default): Mempertahankan log.

    • false: Membuang log.

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan mempertahankan field sumber setelah penguraian berhasil.

    • true (default): Mempertahankan field sumber.

    • false: Buang bidang sumber.

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika field sumber tidak ditemukan dalam log mentah.

    • true: Error dilaporkan.

    • false (default): Tidak ada error yang dilaporkan.

    NoMatchError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika tidak ada ekspresi dalam parameter Match yang cocok dengan log.

    • true (default): Error dilaporkan.

    • false: Tidak ada error yang dilaporkan.

    TimeoutError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika pencocokan timeout.

    • true (default): Error dilaporkan.

    • false: Tidak ada error yang dilaporkan.

  • Contoh 1

    Contoh ini menunjukkan cara menggunakan mode Grok untuk mengekstraksi nilai dari field content dan menetapkannya ke field year, month, dan day.

    • Log mentah

      "content" : "2022 October 17"
    • Konfigurasi plugin Logtail

      {
         "type" : "processor_grok",
         "detail" : {
            "KeepSource" : false,
            "Match" : [
               "%{YEAR:year} %{MONTH:month} %{MONTHDAY:day}"
            ],
            "IgnoreParseFailure" : false
         }
      }
    • Hasil

      "year":"2022"
      "month":"October"
      "day":"17"
  • Contoh 2

    Gunakan mode Grok untuk mengekstraksi nilai field content dari beberapa log dan menguraikannya menjadi hasil berbeda berdasarkan ekspresi grok yang berbeda. Contoh konfigurasinya sebagai berikut:

    • Log mentah

      {
          "content" : "begin 123.456 end"
      }
      {
          "content" : "2019 June 24 \"I am iron man"\"
      }
      {
          "content" : "WRONG LOG"
      }
      {
          "content" : "10.0.0.0 GET /index.html 15824 0.043"
      }
    • Konfigurasi plugin Logtail

      {
              "type" : "processor_grok",
              "detail" : {
                      "CustomPatterns" : {
                              "HTTP" : "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}"
                      },
                      "IgnoreParseFailure" : false,
                      "KeepSource" : false,
                      "Match" : [
                              "%{HTTP}",
                              "%{WORD:word1} %{NUMBER:request_time} %{WORD:word2}",
                              "%{YEAR:year} %{MONTH:month} %{MONTHDAY:day} %{QUOTEDSTRING:motto}"
                      ],
                      "SourceKey" : "content"
              },
      }
    • Hasil

      • Untuk log pertama, plugin processor_grok gagal menemukan kecocokan menggunakan ekspresi pertama %{HTTP} dalam parameter Match, tetapi berhasil menggunakan ekspresi kedua %{WORD:word1} %{NUMBER:request_time} %{WORD:word2}. Oleh karena itu, plugin mengembalikan hasil ekstraksi berdasarkan ekspresi kedua.

        Karena parameter KeepSource diatur ke false, field content dari log mentah dibuang.

      • Untuk entri log kedua, plugin processor_grok gagal mencocokkan log menggunakan ekspresi pertama %{HTTP} dan ekspresi kedua %{WORD:word1} %{NUMBER:request_time} %{WORD:word2} dalam parameter Match. Plugin berhasil mencocokkan log menggunakan ekspresi ketiga %{YEAR:year} %{MONTH:month} %{MONTHDAY:day} %{QUOTEDSTRING:motto}. Oleh karena itu, plugin mengembalikan hasil ekstraksi berdasarkan ekspresi ketiga.

      • Plugin processor_grok gagal mencocokkan log ketiga dengan ekspresi apa pun dalam array Match. Karena parameter IgnoreParseFailure diatur ke false, log ketiga dibuang.

      • Untuk log keempat, plugin processor_grok berhasil mencocokkannya dengan ekspresi pertama dalam array Match, %{HTTP}, dan mengembalikan field yang diekstraksi.

      {
        "word1":"begin",
        "request_time":"123.456",
        "word2":"end",
      }
      {
        "year":"2019",
        "month":"June",
        "day":"24",
        "motto":"\"I am iron man"\",
      }
      {
        "client":"10.0.0.0",
        "method":"GET",
        "request":"/index.html",
        "bytes":"15824",
        "duration":"0.043",
      }

Plugin tambah field

Gunakan plugin processor_add_fields untuk menambahkan field log. Topik ini menjelaskan parameter plugin dan memberikan contoh konfigurasi.

Konfigurasi

Penting

Plugin processor_add_fields didukung di Logtail 0.16.28 dan versi yang lebih baru.

Formulir

  • Parameter

    Atur Jenis Prosesor ke Add Field. Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    Add Field

    Pasangan kunci-nilai yang ditambahkan sebagai field log baru.

    Ignore New Fields with Same Name

    Jika diaktifkan, mencegah field baru menimpa field yang sudah ada dengan nama yang sama.

  • Contoh konfigurasi

    Contoh ini menunjukkan cara menambahkan field aaa2 dan aaa3.

    • Log mentah

      "aaa1":"value1"
    • Konfigurasi plugin Logtail: Tambahkan dua field: aaa2 dengan nilai value2, dan aaa3 dengan nilai value3.

    • Hasil

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"

JSON

  • Parameter

    Atur type ke processor_add_fields. Tabel berikut menjelaskan parameter dalam objek detail.

    Parameter

    Tipe

    Wajib

    Deskripsi

    Fields

    Map

    Ya

    Field log yang ditambahkan, ditentukan sebagai map pasangan kunci-nilai.

    IgnoreIfExist

    Boolean

    Tidak

    Menentukan perilaku ketika field yang akan ditambahkan memiliki nama yang sama dengan field yang sudah ada.

    • true: Field baru diabaikan.

    • false (default): Field yang sudah ada ditimpa oleh field baru.

  • Contoh konfigurasi

    Contoh ini menunjukkan cara menambahkan field aaa2 dan aaa3.

    • Log mentah

      "aaa1":"value1"
    • Konfigurasi plugin Logtail

      {
        "processors":[
          {
            "type":"processor_add_fields",
            "detail": {
              "Fields": {
                "aaa2": "value2",
                "aaa3": "value3"
              }
            }
          }
        ]
      }
    • Hasil

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"

Plugin hapus field

Plugin processor_drop menghapus field log yang ditentukan. Topik ini mencakup parameter plugin dan memberikan contoh konfigurasi.

Konfigurasi

Penting

Plugin processor_drop didukung di Logtail 0.16.28 dan versi yang lebih baru.

Formulir

  • Parameter

    Atur Jenis Prosesor ke Drop Field.

    Parameter

    Deskripsi

    Drop Field

    Field log yang akan dihapus. Anda dapat menentukan beberapa field.

  • Contoh konfigurasi

    Untuk menghapus field aaa1 dan aaa2 dari log, konfigurasikan plugin sebagai berikut:

    • Log mentah

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Konfigurasi plugin Logtail: Hapus field aaa1 dan aaa2.

    • Hasil

      "aaa3":"value3"

JSON

  • Parameter

    Atur type ke processor_drop. Tabel berikut menjelaskan parameter detail.

    Parameter

    Type

    Wajib

    Deskripsi

    DropKeys

    string array

    Ya

    Kunci field log yang akan dihapus. Anda dapat menentukan beberapa kunci.

  • Contoh konfigurasi

    Untuk menghapus field aaa1 dan aaa2 dari log, konfigurasikan plugin sebagai berikut:

    • Log mentah

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Konfigurasi plugin Logtail

      {
        "processors":[
          {
            "type":"processor_drop",
            "detail": {
              "DropKeys": ["aaa1","aaa2"]
            }
          }
        ]
      }
    • Hasil

      "aaa3":"value3"

Plugin ubah nama field

Anda dapat menggunakan plugin processor_rename untuk mengubah nama field. Topik ini menjelaskan parameter dan contoh konfigurasi plugin processor_rename.

Konfigurasi

Penting

Plugin processor_rename memerlukan Logtail 0.16.28 atau versi yang lebih baru.

Konsol

  • Parameter

    Atur Processor Type ke Rename Fields dan konfigurasikan parameter yang dijelaskan dalam tabel berikut.

    Parameter

    Deskripsi

    Original Field

    Field asal yang akan diubah namanya.

    New Field

    Nama baru untuk field tersebut.

    Report Original Field Missing Error

    Menentukan apakah akan melaporkan error jika field asal yang ditentukan tidak ditemukan dalam log.

  • Contoh

    Contoh ini mengubah nama field aaa1 menjadi bbb1 dan field aaa2 menjadi bbb2.

    • Log mentah

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Konfigurasi plugin Logtail: Ubah nama aaa1 menjadi bbb1 dan aaa2 menjadi bbb2.

    • Hasil

      "bbb1":"value1"
      "bbb2":"value2"
      "aaa3":"value3"

JSON

  • Parameter

    Atur type ke processor_rename dan konfigurasikan parameter untuk objek detail seperti dijelaskan dalam tabel berikut.

    Parameter

    Tipe

    Wajib

    Deskripsi

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika field asal yang ditentukan tidak ditemukan dalam log.

    • true: Melaporkan error.

    • false (default): Tidak melaporkan error.

    SourceKeys

    String array

    Ya

    Field asal yang akan diubah namanya.

    DestKeys

    String array

    Ya

    Nama baru untuk field tersebut.

  • Contoh

    Contoh ini mengubah nama field aaa1 menjadi bbb1 dan field aaa2 menjadi bbb2.

    • Log mentah

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Konfigurasi plugin Logtail

      {
        "processors":[
          {
            "type":"processor_rename",
            "detail": {
              "SourceKeys": ["aaa1","aaa2"],
              "DestKeys": ["bbb1","bbb2"],
              "NoKeyError": true
            }
          }
        ]
      }
    • Hasil

      "bbb1":"value1"
      "bbb2":"value2"
      "aaa3":"value3"

Pack fields plugin

Gunakan plugin processor_packjson untuk mengemas satu atau beberapa field sumber ke dalam field tujuan sebagai objek JSON. Topik ini menjelaskan parameter plugin processor_packjson dan memberikan contoh konfigurasi.

Konfigurasi

Penting

Plugin processor_packjson didukung di Logtail 0.16.28 dan versi yang lebih baru.

Konsol

  • Parameter

    Atur Jenis Prosesor ke Encapsulate Fields. Tabel berikut menjelaskan parameter.

    Parameter

    Deskripsi

    Original Field

    Field sumber yang akan dikemas.

    New Field

    Field tujuan untuk objek JSON yang dikemas.

    Retain Original Field

    Jika Anda memilih opsi ini, field sumber akan dipertahankan dalam log yang telah diurai.

    Report Original Field Missing Error

    Jika Anda memilih opsi ini, plugin akan melaporkan error jika field sumber yang ditentukan tidak ditemukan dalam log mentah.

  • Contoh

    Contoh ini menunjukkan cara mengemas field a dan b ke dalam field tujuan bernama d_key.

    • Log mentah

      "a":"1"
      "b":"2"
    • Konfigurasi plugin Logtail: Atur Field Sumber ke a dan b, dan atur Field Tujuan ke d_key.

    • Hasil

      "a":"1"
      "b":"2"
      "d_key":"{\"a\":\"1\",\"b\":\"2\"}"

JSON

  • Parameter

    Atur type ke processor_packjson. Tabel berikut menjelaskan parameter dalam objek detail.

    Parameter

    Tipe

    Wajib

    Deskripsi

    SourceKeys

    String array

    Ya

    Field sumber yang akan dikemas.

    DestKey

    String

    Tidak

    Field tujuan untuk objek JSON yang dikemas.

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan mempertahankan field sumber dalam log yang telah diurai.

    • true (default): Field sumber dipertahankan.

    • false: Field sumber dihapus setelah pengemasan.

    AlarmIfIncomplete

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika field sumber yang ditentukan tidak ditemukan dalam log mentah.

    • true (default): Error dilaporkan.

    • false: Tidak ada error yang dilaporkan.

  • Contoh

    Contoh ini menunjukkan cara mengemas field a dan b ke dalam field tujuan bernama d_key.

    • Log mentah

      "a":"1"
      "b":"2"
    • Konfigurasi plugin Logtail

      {
        "processors":[
          {
            "type":"processor_packjson",
            "detail": {
              "SourceKeys": ["a","b"],
              "DestKey":"d_key",
              "KeepSource":true,
              "AlarmIfIncomplete":true
            }
          }
        ]
      }
    • Hasil

      "a":"1"
      "b":"2"
      "d_key":"{\"a\":\"1\",\"b\":\"2\"}"

Plugin perluas field JSON

Gunakan plugin processor_json untuk memperluas field JSON. Topik ini menjelaskan parameter untuk plugin processor_json dan memberikan contoh konfigurasi.

Konfigurasi

Penting

Plugin processor_json didukung di Logtail 0.16.28 dan versi yang lebih baru.

Konsol

  • Parameter

    Atur Processor Type ke Expand JSON Field. Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Original Field

    Nama field sumber yang akan diperluas.

    JSON Expansion Depth

    Kedalaman maksimum untuk memperluas objek JSON. Nilai default adalah 0, yang berarti tidak ada batasan kedalaman. Nilai 1 hanya memperluas field tingkat atas.

    Character to Concatenate Expanded Keys

    Karakter yang digunakan untuk menghubungkan kunci bersarang. Nilai default adalah garis bawah (_).

    Name Prefix of Expanded Keys

    Awalan untuk nama field yang diperluas.

    Expand Array

    Menentukan apakah akan memperluas array. Parameter ini didukung di Logtail 1.8.0 dan versi yang lebih baru.

    Retain Original Field

    Menentukan apakah akan menyimpan field sumber dalam log setelah penguraian.

    Report Original Field Missing Error

    Menentukan apakah akan melaporkan error jika field sumber yang ditentukan tidak ditemukan dalam log mentah.

    Use Name of Original Field as Name Prefix of Expanded Keys

    Menentukan apakah akan menggunakan nama field sumber sebagai awalan untuk semua nama field yang diperluas.

    Retain Raw Logs If Parsing Fails

    Menentukan apakah akan menyimpan log mentah jika penguraian gagal.

  • Contoh

    Contoh ini memperluas field s_key, menggunakan j sebagai awalan kustom dan nama field sumber s_key sebagai awalan tambahan untuk nama field yang diperluas. Berikut contoh konfigurasinya:

    • Log mentah (jalur file yang dibaca oleh Logtail)

      {"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"}
    • Konfigurasi plugin Logtail

      Atur SourceKey ke s_key, aktifkan NoKeyError, atur ExpandDepth ke 0 (tidak terbatas), atur ExpandConnector ke tanda hubung (-), atur Prefix ke j, aktifkan UseSourceKeyAsPrefix, dan nonaktifkan KeepSource.

    • Hasil

      Log yang diperluas berisi field berikut: j_s_key-k1-k2-k3-k4-k51 dengan nilai 51, j_s_key-k1-k2-k3-k4-k52 dengan nilai 52, dan j_s_key-k1-k2-k3-k41 dengan nilai 41. Field sumber s_key dihapus.

JSON

  • Parameter

    Atur type ke processor_json. Tabel berikut menjelaskan parameter dalam objek detail.

    Parameter

    Tipe

    Wajib

    Deskripsi

    SourceKey

    String

    Ya

    Nama field sumber yang akan diperluas.

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan error jika field sumber tidak ditemukan dalam log mentah.

    • true (default): Error dilaporkan.

    • false: Tidak ada error yang dilaporkan.

    ExpandDepth

    Int

    Tidak

    Kedalaman maksimum untuk memperluas objek JSON. Nilai default adalah 0, yang berarti tidak ada batasan kedalaman. Nilai 1 hanya memperluas field tingkat atas.

    ExpandConnector

    String

    Tidak

    Karakter yang digunakan untuk menghubungkan kunci bersarang. Nilai default adalah garis bawah (_).

    Prefix

    String

    Tidak

    Awalan yang ditambahkan ke nama field baru setelah ekspansi.

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan menyimpan field sumber dalam log setelah penguraian.

    • true (default): Field sumber disimpan.

    • false: Field sumber tidak disimpan.

    UseSourceKeyAsPrefix

    Boolean

    Tidak

    Menentukan apakah akan menggunakan nama field sumber sebagai awalan untuk semua nama field yang diperluas.

    KeepSourceIfParseError

    Boolean

    Tidak

    Menentukan apakah akan menyimpan log mentah jika penguraian gagal.

    • true (default): Log mentah disimpan.

    • false: Log mentah tidak disimpan.

    ExpandArray

    Boolean

    Tidak

    Menentukan apakah akan memperluas array. Parameter ini didukung di Logtail 1.8.0 dan versi yang lebih baru.

    • false (default): Array tidak diperluas.

    • true: Perluas array. Misalnya, {"k":["1","2"]} diperluas menjadi {"k[0]":"1","k[1]":"2"}.

  • Contoh

    Contoh ini memperluas field s_key, menggunakan j sebagai awalan kustom dan nama field sumber s_key sebagai awalan tambahan untuk nama field yang diperluas. Berikut contoh konfigurasinya:

    • Log mentah (jalur file yang dibaca oleh Logtail)

      {"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"}
    • Konfigurasi plugin Logtail

      {
        "processors":[
          {
            "type":"processor_json",
            "detail": {
              "SourceKey": "s_key",
              "NoKeyError":true,
              "ExpandDepth":0,
              "ExpandConnector":"-",
              "Prefix":"j",
              "KeepSource": false,
              "UseSourceKeyAsPrefix": true
            }
          }
        ]
      }
    • Hasil

      Log yang diperluas berisi field berikut: j_s_key-k1-k2-k3-k4-k51 dengan nilai 51, j_s_key-k1-k2-k3-k4-k52 dengan nilai 52, dan j_s_key-k1-k2-k3-k41 dengan nilai 41. Field sumber s_key dihapus.

Plugin pemetaan nilai field

Plugin processor_dict_map memetakan nilai field. Topik ini menjelaskan parameter plugin dan memberikan contoh konfigurasi.

Konfigurasi

Formulir

Atur jenis prosesor ke Field Value Mapping. Tabel berikut menjelaskan parameter-parameter tersebut.

Parameter

Deskripsi

Original Field

Nama field sumber.

New Field

Nama field yang dipetakan.

Mapping Dictionary

Kamus yang memetakan nilai sumber ke nilai target.

Untuk kamus kecil, Anda dapat mengonfigurasi pemetaan langsung di field ini alih-alih menggunakan file kamus lokal.

Penting

Jika Anda mengatur Local Dictionary, konfigurasi Mapping Dictionary akan diabaikan.

Local Dictionary

File CSV yang berisi kamus pemetaan. Dalam file tersebut, field harus diapit tanda kutip ganda (") dan dipisahkan oleh koma (,).

Parameter Lanjutan>Proses Bidang Sumber yang Hilang

Jika dipilih, jika log mentah tidak memiliki field sumber, plugin akan mengisi field yang dipetakan dengan nilai dari Value to Fill New Field.

parameter lanjutan>Maximum Mapping Dictionary Size

Jumlah maksimum aturan yang diizinkan dalam kamus pemetaan. Nilai default adalah 1.000.

Kurangi nilai ini untuk membatasi penggunaan memori server oleh plugin.

parameter lanjutan>Method to Process Raw Log

Menentukan tindakan yang diambil ketika field yang dipetakan sudah ada dalam log mentah.

  • overwrite

  • fill

JSON

Atur type ke processor_dict_map. Tabel berikut menjelaskan parameter detail.

Parameter

Jenis

Wajib

Deskripsi

SourceKey

String

Ya

Nama field sumber.

MapDict

Map

Tidak

Kamus yang memetakan nilai sumber ke nilai target.

Untuk kamus kecil, Anda dapat mengonfigurasi pemetaan langsung di sini alih-alih menggunakan parameter DictFilePath.

Penting

Jika Anda mengatur parameter DictFilePath, parameter MapDict akan diabaikan.

DictFilePath

String

Tidak

Jalur ke file CSV yang berisi kamus pemetaan. Dalam file tersebut, field harus diapit tanda kutip ganda (") dan dipisahkan oleh koma (,).

DestKey

String

Tidak

Nama field yang dipetakan.

HandleMissing

Boolean

Tidak

Menentukan apakah akan mengambil tindakan jika field sumber tidak ada dalam log mentah.

  • true: Mengambil tindakan jika field sumber tidak ada.

    Plugin mengisi field yang dipetakan dengan nilai parameter Missing.

  • false (default): Tidak mengambil tindakan.

Missing

String

Tidak

Nilai untuk field yang dipetakan ketika field sumber tidak ada. Nilai default adalah Unknown.

Parameter ini berlaku ketika HandleMissing diatur ke true.

MaxDictSize

Int

Tidak

Jumlah maksimum aturan yang diizinkan dalam kamus pemetaan. Nilai default adalah 1.000.

Kurangi nilai ini untuk membatasi penggunaan memori server oleh plugin.

Mode

String

Tidak

Menentukan tindakan yang diambil ketika field yang dipetakan (ditentukan oleh DestKey) sudah ada dalam log mentah.

  • overwrite (default): Mengganti nilai yang ada dalam field yang dipetakan.

  • fill: Mempertahankan nilai yang ada dalam field yang dipetakan.

Penggantian string

Gunakan plugin processor_string_replace untuk melakukan penggantian teks penuh atau berbasis regex, atau menghapus karakter escape dari log mentah.

Konfigurasi

Penting

Plugin processor_string_replace didukung di Logtail 1.6.0 dan versi yang lebih baru.

Formulir

Atur Jenis Prosesor ke String Replacement. Tabel berikut menjelaskan parameter-parameter tersebut.

Parameter

Deskripsi

Original Field

Nama field sumber.

Match Mode

Metode yang digunakan untuk menemukan konten yang akan diganti. Nilai yang valid:

  • String Match: Mengganti konten yang cocok dengan string tertentu.

  • Regular Expression Match: Mengganti konten yang cocok dengan ekspresi reguler.

  • Remove Escape Character: Menghapus karakter escape.

Matched Content

Pola atau string yang akan dicocokkan.

  • Jika Match Mode diatur ke String Match, masukkan string target.

    Semua kemunculan yang cocok akan diganti.

  • Jika Match Mode diatur ke Regex Match, masukkan ekspresi reguler target.

    Anda juga dapat menggunakan grup ekspresi reguler untuk mencocokkan bagian spesifik dari string.

  • Parameter ini tidak diperlukan jika Anda mengatur Match Mode ke Remove Escape Character.

Replaced By

String yang digunakan untuk penggantian.

  • Jika Anda mengatur Match Mode ke String Match, masukkan string untuk mengganti konten asli.

  • Jika Anda mengatur Match Mode ke Regex Match, masukkan string untuk mengganti konten asli. Anda dapat mereferensikan grup tangkapan dalam string pengganti.

  • Parameter ini tidak diperlukan jika Anda mengatur Match Mode ke Remove Escape Character.

New Field

Field untuk menyimpan hasilnya. Jika tidak ditentukan, field sumber akan ditimpa.

JSON

Atur type ke processor_string_replace. Tabel berikut menjelaskan parameter dalam objek detail.

Parameter

Jenis

Wajib

Deskripsi

SourceKey

String

Ya

Nama field sumber.

Method

String

Ya

Metode penggantian. Nilai yang valid:

  • const: Menggunakan penggantian string.

  • regex: Menggunakan ekspresi reguler untuk penggantian.

  • unquote: Menghapus karakter escape.

Match

String

Tidak

Pola atau string yang akan dicocokkan.

  • Jika Anda mengatur Method ke const, masukkan string yang cocok dengan konten yang ingin Anda ganti.

    Semua kemunculan yang cocok akan diganti.

  • Jika Anda mengatur Method ke regex, masukkan ekspresi reguler yang cocok dengan konten yang ingin Anda ganti.

    Anda juga dapat menggunakan grup ekspresi reguler untuk mencocokkan bagian spesifik dari string.

  • Parameter ini tidak diperlukan jika Anda mengatur Method ke unquote.

ReplaceString

String

Tidak

String yang digunakan untuk penggantian. Nilai default adalah string kosong ("").

  • Jika Anda mengatur Method ke const, masukkan string untuk mengganti konten asli.

  • Jika Anda mengatur Method ke regex, masukkan string untuk mengganti konten asli. Anda dapat mereferensikan grup tangkapan dalam string pengganti.

  • Parameter ini tidak diperlukan jika Anda mengatur Method ke unquote.

DestKey

String

Tidak

Field untuk menyimpan hasilnya. Jika parameter ini tidak ditentukan, field sumber akan ditimpa.

Contoh konfigurasi

Mengganti konten menggunakan pencocokan string

Contoh ini menunjukkan cara menggunakan pencocokan string untuk mengganti Error: dalam field content dengan string kosong.

Form

  • Log mentah:

    "content": "2023-05-20 10:01:23 Error: Unable to connect to database."
  • Konfigurasi plugin Logtail: Atur mode pencocokan ke Pencocokan String, atur field sumber ke content, atur konten yang cocok ke Error: , dan biarkan konten pengganti kosong.

  • Hasil:

    "content": "2023-05-20 10:01:23 Unable to connect to database."

JSON

  • Log mentah:

    "content": "2023-05-20 10:01:23 Error: Unable to connect to database."
  • Konfigurasi plugin Logtail:

    {
      "processors":[
        {
          "type":"processor_string_replace",
          "detail": {
            "SourceKey": "content",
            "Method": "const",
            "Match": "Error: ", 
            "ReplaceString": ""
          }
        }
      ]
    }
  • Hasil:

    "content": "2023-05-20 10:01:23 Unable to connect to database."

Mengganti konten menggunakan ekspresi reguler

Contoh ini menunjukkan cara menggunakan ekspresi reguler untuk mengganti string dalam field content yang cocok dengan \\u\w+\[\d{1,3};*\d{1,3}m|N/A dengan string kosong.

Formulir

  • Log mentah:

    "content": "2022-09-16 09:03:31.013 \u001b[32mINFO \u001b[0;39m \u001b[34m[TID: N/A]\u001b[0;39m [\u001b[35mThread-30\u001b[0;39m] \u001b[36mc.s.govern.polygonsync.job.BlockTask\u001b[0;39m : Block collection------end------\r"
  • Konfigurasi plugin Logtail: Atur mode pencocokan ke Regex Match, atur field sumber ke content, atur konten yang cocok ke \\u\w+\[\d{1,3};*\d{1,3}m|N/A, dan biarkan konten pengganti kosong.

  • Hasil:

    "content": "2022-09-16 09:03:31.013 INFO [TID: ] [Thread-30] c.s.govern.polygonsync.job.BlockTask : Block collection------end------\r"

JSON

  • Log mentah:

    "content": "2022-09-16 09:03:31.013 \u001b[32mINFO \u001b[0;39m \u001b[34m[TID: N/A]\u001b[0;39m [\u001b[35mThread-30\u001b[0;39m] \u001b[36mc.s.govern.polygonsync.job.BlockTask\u001b[0;39m : Block collection------end------\r"
  • Konfigurasi plugin Logtail:

    {
      "processors":[
        {
          "type":"processor_string_replace",
          "detail": {
            "SourceKey": "content",
            "Method": "regex",
            "Match": "\\\\u\\w+\\[\\d{1,3};*\\d{1,3}m|N/A", 
            "ReplaceString": ""
          }
        }
      ]
    }
  • Hasil:

    "content": "2022-09-16 09:03:31.013 INFO [TID: ] [Thread-30] c.s.govern.polygonsync.job.BlockTask : Block collection------end------\r"

Mengganti konten menggunakan grup tangkapan

Contoh ini menggunakan grup tangkapan ekspresi reguler untuk mengganti 16 dalam field content dengan */24 dan menyimpan hasilnya dalam field baru bernama new_ip.

Penting

Saat menggunakan grup tangkapan untuk penggantian, string pengganti tidak boleh mengandung {}. Anda harus menggunakan format seperti $1 dan $2.

Formulir

  • Log mentah:

    "content": "10.10.239.16"
  • Konfigurasi plugin Logtail: Atur mode pencocokan ke Regex Match, atur field sumber ke content, atur konten yang cocok ke (\d.*\.)\d+, atur konten pengganti ke $1*/24, dan atur field tujuan ke new_ip.

  • Hasil:

    "content": "10.10.239.16",
    "new_ip": "10.10.239.*/24"

JSON

  • Log mentah:

    "content": "10.10.239.16"
  • Konfigurasi plugin Logtail:

    {
      "processors":[
        {
          "type":"processor_string_replace",
          "detail": {
            "SourceKey": "content",
            "Method": "regex",
            "Match": "(\\d.*\\.)\\d+", 
            "ReplaceString": "$1*/24",
            "DestKey": "new_ip"
          }
        }
      ]
    }
  • Hasil:

    "content": "10.10.239.16",
    "new_ip": "10.10.239.*/24"

Menghapus karakter escape

Formulir

  • Log mentah:

    "content": "{\\x22UNAME\\x22:\\x22\\x22,\\x22GID\\x22:\\x22\\x22,\\x22PAID\\x22:\\x22\\x22,\\x22UUID\\x22:\\x22\\x22,\\x22STARTTIME\\x22:\\x22\\x22,\\x22ENDTIME\\x22:\\x22\\x22,\\x22UID\\x22:\\x222154212790\\x22,\\x22page_num\\x22:1,\\x22page_size\\x22:10}"
  • Konfigurasi plugin Logtail: Atur mode pencocokan ke Hapus Karakter Escape, dan atur field sumber ke content.

  • Hasil:

    "content": "{\"UNAME\":\"\",\"GID\":\"\",\"PAID\":\"\",\"UUID\":\"\",\"STARTTIME\":\"\",\"ENDTIME\":\"\",\"UID\":\"2154212790\",\"page_num\":1,\"page_size\":10}"

JSON

  • Log mentah:

    "content": "{\\x22UNAME\\x22:\\x22\\x22,\\x22GID\\x22:\\x22\\x22,\\x22PAID\\x22:\\x22\\x22,\\x22UUID\\x22:\\x22\\x22,\\x22STARTTIME\\x22:\\x22\\x22,\\x22ENDTIME\\x22:\\x22\\x22,\\x22UID\\x22:\\x222154212790\\x22,\\x22page_num\\x22:1,\\x22page_size\\x22:10}"
  • Konfigurasi plugin Logtail:

    {
      "processors":[
        {
          "type":"processor_string_replace",
          "detail": {
            "SourceKey": "content",
            "Method": "unquote"
          }
        }
      ]
    }
  • Hasil:

    "content": "{\"UNAME\":\"\",\"GID\":\"\",\"PAID\":\"\",\"UUID\":\"\",\"STARTTIME\":\"\",\"ENDTIME\":\"\",\"UID\":\"2154212790\",\"page_num\":1,\"page_size\":10}"

Dokumentasi terkait