全部产品
Search
文档中心

Simple Log Service:Plugin pemrosesan bidang

更新时间:Nov 15, 2025

Plugin pemrosesan bidang digunakan untuk menambah, menghapus, memodifikasi, mengemas, memperluas, dan mengekstraksi bidang.

Contoh pemrosesan bidang

Tabel berikut menunjukkan struktur data log mentah setelah disimpan ke Simple Log Service, serta membandingkan hasil penggunaan plugin ekstraksi bidang dalam mode pembatas dengan hasil tanpa menggunakan plugin. Penggunaan plugin ekstraksi membuat data Anda terstruktur sehingga mempermudah kueri selanjutnya.

Log mentah

Tanpa plugin pemrosesan bidang

Menggunakan plugin ekstraksi bidang dalam mode pembatas

"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}}"

Nilai bidang diekstraksi dalam mode pembatas. Nama bidang diatur 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"

Ikhtisar plugin pemrosesan bidang

Simple Log Service menyediakan jenis plugin pemrosesan bidang berikut. Anda dapat memilih plugin sesuai kebutuhan Anda.

Nama plugin

Jenis

Deskripsi

Ekstraksi bidang

Ekstensi

Mendukung mode berikut:

  • Mode ekspresi reguler: Mengekstraksi bidang menggunakan pencocokan ekspresi reguler.

  • Mode pembatas: Mengekstraksi bidang berdasarkan posisi atau penanda.

  • Mode CSV: Mengekstraksi bidang dalam format CSV.

  • Mode pemisah karakter tunggal: Mengekstraksi bidang menggunakan pemisah karakter tunggal.

  • Mode pemisah multi-karakter: Mengekstraksi bidang menggunakan pemisah multi-karakter.

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

  • Mode Grok: Mengekstraksi bidang terstruktur menggunakan sintaks Grok.

Tambah bidang

Ekstensi

Menambahkan bidang baru ke log.

Hapus bidang

Ekstensi

Menghapus bidang yang ditentukan.

Ubah nama bidang

Ekstensi

Mengubah nama bidang.

Kemas bidang

Ekstensi

Mengemas beberapa bidang menjadi satu objek JSON.

Perluas bidang JSON

Ekstensi

Memperluas bidang string JSON menjadi bidang terpisah.

Petakan nilai bidang

Ekstensi

Mengganti atau mengubah nilai bidang berdasarkan tabel pemetaan.

Penggantian string

Ekstensi

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

Titik masuk

Jika ingin menggunakan plugin Logtail untuk memproses log, Anda dapat menambahkan konfigurasi plugin Logtail saat membuat atau mengubah konfigurasi Logtail. Untuk informasi selengkapnya, lihat Ikhtisar.

Batasan

  • Log teks dan output standar kontainer hanya mendukung konfigurasi berbasis formulir. Sumber input lain hanya mendukung konfigurasi JSON.

  • Batasan berikut berlaku saat mengekstraksi bidang dalam mode ekspresi reguler.

    Engine ekspresi reguler Go berbasis RE2. Dibandingkan dengan engine PCRE, engine ini memiliki batasan berikut:

    • Perbedaan sintaks grup bernama

      Go menggunakan sintaks (?P<name>...), bukan sintaks (?<name>...) yang digunakan oleh PCRE.

    • Pola ekspresi reguler yang tidak didukung

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

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

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

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

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

    Saat men-debug ekspresi reguler dengan alat seperti Regex101, hindari pola yang tidak didukung yang tercantum di atas. Jika tidak, plugin tidak dapat memproses log.

Plugin ekstraksi bidang

Mengekstraksi bidang log dalam mode ekspresi reguler, mode pembatas, mode CSV, mode pemisah karakter tunggal, mode pemisah multi-karakter, mode pasangan kunci-nilai, atau mode Grok.

Mode ekspresi reguler

Mengekstraksi bidang target menggunakan ekspresi reguler.

Konfigurasi berbasis formulir

  • Parameter

    Atur Processor Type ke Extract Fields (Regular Expression Mode). Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Source Field

    Nama bidang sumber.

    Regular Expression

    Ekspresi reguler. Gunakan tanda kurung () untuk menandai bidang yang akan diekstraksi.

    Result Fields

    Nama untuk konten yang diekstraksi. Anda dapat menambahkan beberapa nama bidang.

    Report Error If Source Field Is Missing

    Jika opsi ini dipilih, kesalahan dilaporkan jika bidang sumber tidak ditemukan dalam log mentah.

    Report Error On No Match

    Jika opsi ini dipilih, kesalahan dilaporkan jika ekspresi reguler tidak cocok dengan nilai bidang sumber.

    Keep Source Field

    Jika opsi ini dipilih, bidang sumber disimpan dalam log yang diurai.

    Keep Source Field On Parsing Failure

    Jika opsi ini dipilih, bidang sumber disimpan dalam log yang diurai jika penguraian gagal.

    Full Match

    Jika opsi ini dipilih, nilai bidang diekstraksi hanya jika semua bidang yang ditetapkan di Result Fields cocok dengan nilai bidang sumber berdasarkan ekspresi reguler yang ditentukan.

  • Contoh

    Ekstrak nilai bidang content dalam mode ekspresi reguler dan atur nama bidang menjadi ip, time, method, url, request_time, request_length, status, length, ref_url, dan browser. Berikut adalah contoh konfigurasi:

    • 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提取字段(正则模式)

    • 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"

Konfigurasi JSON

  • Parameter

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

    Parameter

    Jenis

    Wajib

    Deskripsi

    SourceKey

    String

    Ya

    Nama bidang sumber.

    Regex

    String

    Ya

    Ekspresi reguler. Gunakan tanda kurung () untuk menandai bidang yang akan diekstraksi.

    Keys

    Array string

    Ya

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

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika bidang sumber tidak ditemukan dalam log mentah.

    • true: Kesalahan dilaporkan.

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

    NoMatchError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika ekspresi reguler tidak cocok dengan nilai bidang sumber.

    • true (default): Kesalahan dilaporkan.

    • false: Tidak ada kesalahan yang dilaporkan.

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bidang sumber dalam log yang diurai.

    • true: Simpan bidang sumber.

    • false (default): Jangan simpan bidang sumber.

    FullMatch

    Boolean

    Tidak

    Menentukan apakah akan mengekstraksi nilai bidang hanya ketika ditemukan kecocokan penuh.

    • true (default): Nilai bidang diekstraksi hanya jika semua bidang yang Anda tetapkan di parameter Keys cocok dengan nilai bidang sumber berdasarkan ekspresi reguler di parameter Regex.

    • false: Nilai bidang diekstraksi meskipun hanya ditemukan kecocokan sebagian.

    KeepSourceIfParseError

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bidang sumber dalam log yang diurai jika penguraian gagal.

    • true (default): Simpan bidang sumber.

    • false: Jangan simpan bidang sumber.

  • Contoh

    Ekstrak nilai bidang content dalam mode ekspresi reguler dan atur nama bidang menjadi ip, time, method, url, request_time, request_length, status, length, ref_url, dan browser. Berikut adalah contoh konfigurasi:

    • 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 Berpembatas

Mengekstraksi bidang dengan menentukan kata kunci awal dan akhir. Jika bidang dalam format JSON, Anda dapat memperluasnya.

Konfigurasi berbasis formulir

  • Parameter

    Atur Processor Type ke Extract Fields (Delimited Mode). Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Source Field

    Nama bidang sumber.

    Calibration Item List

    Daftar item kalibrasi.

    Start Keyword

    Kata kunci awal. Jika parameter ini dikosongkan, pencocokan dimulai dari awal string.

    End Keyword

    Kata kunci akhir. Jika parameter ini dikosongkan, pencocokan berlanjut hingga akhir string.

    Result Field

    Nama untuk konten yang diekstraksi.

    Field Type

    Jenis bidang. Nilai yang valid adalah string dan json.

    Expand JSON

    Menentukan apakah akan memperluas bidang JSON.

    JSON Expansion Connector

    Konektor untuk perluasan JSON. Nilai default adalah garis bawah (_).

    Maximum JSON Expansion Depth

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

    Report Error If Source Field Is Missing

    Jika opsi ini dipilih, kesalahan dilaporkan jika bidang sumber tidak ditemukan dalam log mentah.

    Report Error If Delimited Item Is Missing

    Jika opsi ini dipilih, kesalahan dilaporkan jika tidak ditemukan item pembatas yang cocok dalam log mentah.

    Keep Source Field

    Jika opsi ini dipilih, bidang sumber disimpan dalam log yang diurai.

  • Contoh

    Ekstrak nilai bidang content dalam mode pembatas dan atur nama bidang menjadi time, val_key1, val_key2, val_key3, value_key4_inner1, dan value_key4_inner2. Berikut adalah contoh konfigurasi:

    • 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 提取字段(标定模式)

    • 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"

Konfigurasi JSON

  • Parameter

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

    Parameter

    Jenis

    Wajib

    Deskripsi

    SourceKey

    String

    Ya

    Nama bidang sumber.

    Anchors

    Array anchor

    Ya

    Item kalibrasi.

    Start

    String

    Ya

    Kata kunci awal. Jika kosong, akan mencocokkan awal string.

    Stop

    String

    Ya

    Kata kunci akhir. Jika kosong, akan mencocokkan akhir string.

    FieldName

    String

    Ya

    Nama untuk konten yang diekstraksi.

    FieldType

    String

    Ya

    Jenis bidang. Nilai yang valid adalah string dan json.

    ExpondJson

    Boolean

    Tidak

    Menentukan apakah akan memperluas bidang JSON.

    • true: Perluas bidang.

    • false (default): Jangan perluas bidang.

    Parameter ini hanya berlaku ketika FieldType diatur ke json.

    ExpondConnecter

    String

    Tidak

    Konektor untuk perluasan JSON. Nilai default adalah garis bawah (_).

    MaxExpondDepth

    Int

    Tidak

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

    NoAnchorError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika item pembatas tidak ditemukan.

    • true: Kesalahan dilaporkan.

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

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika bidang sumber tidak ditemukan dalam log mentah.

    • true: Kesalahan dilaporkan.

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

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bidang sumber dalam log yang diurai.

    • true: Simpan bidang sumber.

    • false (default): Jangan simpan bidang sumber.

  • Contoh

    Ekstrak nilai bidang content dalam mode pembatas dan atur nama bidang menjadi time, val_key1, val_key2, val_key3, value_key4_inner1, dan value_key4_inner2. Berikut adalah contoh konfigurasi:

    • 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",
                    "ExpondJson" : false
                },
                {
                    "Start" : "json:",
                    "Stop" : "",
                    "FieldName" : "val",
                    "FieldType" : "json",
                    "ExpondJson" : 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

Mengurai log dalam format CSV.

Konfigurasi berbasis formulir

  • Parameter

    Atur Processor Type ke Extract Fields (CSV Mode). Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Source Field

    Nama bidang sumber.

    Result Fields

    Nama untuk konten yang diekstraksi. Anda dapat menambahkan beberapa nama bidang.

    Penting

    Jika jumlah bidang yang akan dipisahkan lebih sedikit daripada jumlah bidang di Result Fields, bidang tambahan di Result Fields diabaikan.

    Separator

    Pemisah. Nilai default adalah koma (,).

    Keep Remaining Part

    Jika Anda memilih opsi ini, sistem menyimpan konten sisa jika jumlah bidang yang akan dipisahkan lebih banyak daripada jumlah bidang di Result Fields.

    Parse Remaining Part

    Jika Anda memilih opsi ini, sistem mengurai konten sisa dan menggunakan nilai Field Prefix For Remaining Part sebagai awalan untuk nama bidang sisa.

    Jika Anda memilih Keep Remaining Part tetapi tidak memilih Parse Remaining Part, konten sisa disimpan di bidang _decode_preserve_.

    Catatan

    Jika konten sisa tidak dalam format CSV standar, Anda harus menstandarkannya sebelum menyimpannya.

    Field Prefix For Remaining Part

    Awalan untuk nama bidang sisa. Misalnya, jika Anda mengatur ini ke expand_, nama bidangnya adalah expand_1, expand_2, dan seterusnya.

    Ignore Leading Spaces

    Jika Anda memilih opsi ini, sistem mengabaikan spasi awal dalam nilai bidang.

    Keep Source Field

    Jika Anda memilih opsi ini, bidang sumber disimpan dalam log yang diurai.

    Report Error If Source Field Is Missing

    Jika Anda memilih opsi ini, kesalahan dilaporkan jika bidang sumber tidak ditemukan dalam log.

  • Contoh

    Ekstrak nilai bidang csv. Berikut adalah contoh konfigurasi:

    • Log mentah

      {
          "csv": "2022-06-09,192.0.2.0,\"{\"\"key1\"\":\"\"value\"\",\"\"key2\"\":{\"\"key3\"\":\"\"string\"\"}}\"",
          ......
      }
    • Konfigurasi plugin Logtail提取字段(CSV模式)

    • Hasil

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

Konfigurasi JSON

  • Parameter

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

    Parameter

    Jenis

    Wajib

    Deskripsi

    SourceKey

    String

    Ya

    Nama bidang sumber.

    SplitKeys

    Array string

    Ya

    Nama untuk konten yang diekstraksi. Contoh: ["date", "ip", "content"].

    Penting

    Jika jumlah bidang yang akan dipisahkan lebih sedikit daripada jumlah bidang di parameter SplitKeys, bidang tambahan di parameter SplitKeys diabaikan.

    PreserveOthers

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bagian sisa jika jumlah bidang yang akan dipisahkan lebih banyak daripada jumlah bidang di parameter SplitKeys.

    • true: Simpan bagian sisa.

    • false (default): Jangan simpan bagian sisa.

    ExpandOthers

    Boolean

    Tidak

    Menentukan apakah akan mengurai bagian sisa.

    • true: Uraikan bagian sisa.

      Anda dapat menggunakan parameter ExpandOthers untuk mengurai bagian sisa dan parameter ExpandKeyPrefix untuk menentukan awalan untuk nama bidang sisa.

    • false (default): Jangan uraikan bagian sisa.

      Jika Anda mengatur PreserveOthers ke true dan ExpandOthers ke false, konten sisa disimpan di bidang _decode_preserve_.

      Catatan

      Jika konten sisa tidak dalam format CSV standar, Anda harus menstandarkannya sebelum menyimpannya.

    ExpandKeyPrefix

    String

    Tidak

    Awalan untuk nama bidang sisa. Misalnya, jika Anda mengatur ini ke expand_, nama bidangnya adalah expand_1, expand_2, dan seterusnya.

    TrimLeadingSpace

    Boolean

    Tidak

    Menentukan apakah akan mengabaikan spasi awal dalam nilai bidang.

    • true: Abaikan spasi awal.

    • false (default): Jangan abaikan spasi awal.

    SplitSep

    String

    Tidak

    Pemisah. Nilai default adalah koma (,).

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bidang sumber dalam log yang diurai.

    • true: Simpan bidang sumber.

    • false (default): Jangan simpan bidang sumber.

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika bidang sumber tidak ditemukan dalam log mentah.

    • true: Kesalahan dilaporkan.

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

  • Contoh

    Ekstrak nilai bidang csv. Berikut adalah contoh konfigurasi:

    • 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 pemisah karakter tunggal

Catatan

Mengekstraksi bidang menggunakan pemisah karakter tunggal. Mode ini mendukung penggunaan karakter tanda kutip untuk membungkus bidang yang berisi pemisah.

Konfigurasi berbasis formulir

  • Parameter

    Atur Processor Type ke Extract Fields (Single-character Separator Mode). Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Source Field

    Nama bidang sumber.

    Separator

    Pemisah. Harus berupa satu karakter. Anda dapat mengaturnya ke karakter non-cetak, seperti \u0001.

    Result Fields

    Nama untuk konten yang diekstraksi.

    Use Quote Character

    Menentukan apakah akan menggunakan karakter tanda kutip.

    Quote Character

    Karakter tanda kutip. Harus berupa satu karakter. Anda dapat mengaturnya ke karakter non-cetak, seperti \u0001.

    Report Error If Source Field Is Missing

    Jika opsi ini dipilih, kesalahan dilaporkan jika bidang sumber tidak ditemukan dalam log mentah.

    Report Error If Separator Does Not Match

    Jika opsi ini dipilih, kesalahan dilaporkan jika log tidak dapat dipisahkan oleh pemisah yang ditentukan.

    Keep Source Field

    Jika opsi ini dipilih, bidang sumber disimpan dalam log yang diurai.

  • Contoh

    Ekstrak nilai bidang content menggunakan tanda pipa vertikal (|) sebagai pemisah dan atur nama bidang menjadi ip, time, method, url, request_time, request_length, status, length, ref_url, dan browser. Berikut adalah contoh konfigurasi:

    • 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 提取字段(单字符分隔符模式)

    • 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"

Konfigurasi JSON

  • Parameter

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

    Parameter

    Jenis

    Wajib

    Deskripsi

    SourceKey

    String

    Ya

    Nama bidang sumber.

    SplitSep

    String

    Ya

    Pemisah. Harus berupa satu karakter. Anda dapat mengaturnya ke karakter non-cetak, seperti \u0001.

    SplitKeys

    Array string

    Ya

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

    PreserveOthers

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bagian sisa jika jumlah bidang yang akan dipisahkan lebih banyak daripada jumlah bidang di parameter SplitKeys.

    • true: Simpan bagian sisa.

    • false (default): Jangan simpan bagian sisa.

    QuoteFlag

    Boolean

    Tidak

    Menentukan apakah akan menggunakan karakter tanda kutip.

    • true: Diaktifkan

    • false (default): Jangan gunakan karakter tanda kutip.

    Quote

    String

    Tidak

    Karakter tanda kutip. Harus berupa satu karakter. Anda dapat mengaturnya ke karakter non-cetak, seperti \u0001.

    Parameter ini hanya berlaku ketika QuoteFlag diatur ke true.

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika bidang sumber tidak ditemukan dalam log mentah.

    • true: Kesalahan dilaporkan.

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

    NoMatchError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika pemisah yang ditentukan tidak cocok dengan pemisah dalam log.

    • true: Kesalahan dilaporkan.

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

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bidang sumber dalam log yang diurai.

    • true: Simpan bidang sumber.

    • false (default): Jangan simpan bidang sumber.

  • Contoh

    Ekstrak nilai bidang content menggunakan tanda pipa vertikal (|) sebagai pemisah dan atur nama bidang menjadi ip, time, method, url, request_time, request_length, status, length, ref_url, dan browser. Berikut adalah contoh konfigurasi:

    • 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 pemisah multi-karakter

Catatan

Mengekstraksi bidang menggunakan pemisah multi-karakter. Mode ini tidak mendukung penggunaan karakter tanda kutip untuk membungkus bidang.

Konfigurasi berbasis formulir

  • Parameter

    Atur Processor Type ke Extract Fields (Multi-character Separator Mode). Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Source Field

    Nama bidang sumber.

    Separator String

    Pemisah. Anda dapat mengaturnya ke karakter non-cetak, seperti \u0001\u0002.

    Result Fields

    Nama untuk konten log yang diekstraksi.

    Penting

    Jika pemisahan log menghasilkan lebih sedikit bidang daripada jumlah bidang yang ditentukan di Result Fields, nama bidang tambahan di Result Fields diabaikan.

    Report Error If Source Field Is Missing

    Jika opsi ini dipilih, kesalahan dilaporkan jika bidang sumber tidak ditemukan dalam log.

    Report Error If Separator Does Not Match

    Jika opsi ini dipilih, kesalahan dilaporkan jika log tidak dapat dipisahkan oleh pemisah yang ditentukan.

    Keep Source Field

    Jika opsi ini dipilih, bidang sumber disimpan dalam log yang diurai.

    Keep Remaining Part

    Jika opsi ini dipilih, sistem menyimpan konten sisa jika pemisahan log menghasilkan lebih banyak bidang daripada jumlah bidang yang ditentukan di Result Fields.

    Parse Remaining Part

    Jika opsi ini dipilih, sistem mengurai konten sisa jika pemisahan log menghasilkan lebih banyak bidang daripada jumlah bidang di Result Fields. Anda dapat menggunakan Prefix For Remaining Field Names untuk menentukan awalan bagi nama bidang sisa.

    Prefix For Remaining Field Names

    Awalan untuk nama bidang sisa. Misalnya, jika diatur ke expand_, nama bidangnya menjadi expand_1, expand_2, dan seterusnya.

  • Contoh

    Ekstrak nilai bidang content menggunakan pemisah |#| dan atur nama bidang menjadi ip, time, method, url, request_time, request_length, status, expand_1, expand_2, dan expand_3. Berikut adalah contoh konfigurasi:

    • 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 提取字段(多字符分隔符模式)

    • 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"

Konfigurasi JSON

  • Parameter

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

    Parameter

    Jenis

    Wajib

    Deskripsi

    SourceKey

    String

    Ya

    Nama bidang sumber.

    SplitSep

    String

    Ya

    Pemisah. Anda dapat mengaturnya ke karakter non-cetak, seperti \u0001\u0002.

    SplitKeys

    Array string

    Ya

    Nama untuk konten log yang diekstraksi. Contoh: ["key1","key2"].

    Catatan

    Jika jumlah bidang yang akan dipisahkan lebih sedikit daripada jumlah bidang di parameter SplitKeys, bidang tambahan di parameter SplitKeys diabaikan.

    PreserveOthers

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bagian sisa jika jumlah bidang yang akan dipisahkan lebih banyak daripada jumlah bidang di parameter SplitKeys.

    • true: Simpan bagian sisa.

    • false (default): Jangan simpan bagian sisa.

    ExpandOthers

    Boolean

    Tidak

    Menentukan apakah akan mengurai bagian sisa jika jumlah bidang yang akan dipisahkan lebih banyak daripada jumlah bidang di parameter SplitKeys.

    • true: Uraikan bagian sisa.

      Anda dapat menggunakan parameter ExpandOthers untuk mengurai bagian sisa dan parameter ExpandKeyPrefix untuk menentukan awalan untuk nama bidang sisa.

    • false (default): Jangan uraikan bagian sisa.

    ExpandKeyPrefix

    String

    Tidak

    Awalan untuk nama bidang sisa. Misalnya, jika Anda mengatur ini ke expand_, nama bidangnya adalah expand_1, expand_2, dan seterusnya.

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika bidang sumber tidak ditemukan dalam log mentah.

    • true: Kesalahan dilaporkan.

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

    NoMatchError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika pemisah yang ditentukan tidak cocok dengan pemisah dalam log.

    • true: Kesalahan dilaporkan.

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

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bidang sumber dalam log yang diurai.

    • true: Simpan bidang sumber.

    • false (default): Jangan simpan bidang sumber.

  • Contoh

    Ekstrak nilai bidang content menggunakan pemisah |#| dan atur nama bidang menjadi ip, time, method, url, request_time, request_length, status, expand_1, expand_2, dan expand_3. Berikut adalah contoh konfigurasi:

    • 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 bidang dengan memisahkan pasangan kunci-nilai.

Catatan

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

Konfigurasi berbasis formulir

  • Parameter

    Atur Processor Type ke Extract Fields (Key-value Pair Mode). Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Source Field

    Nama bidang sumber.

    Key-value Pair Separator

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

    Key-value Separator

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

    Keep Source Field

    Jika opsi ini dipilih, sistem menyimpan bidang sumber.

    Report Error If Source Field Is Missing

    Jika opsi ini dipilih, kesalahan dilaporkan jika bidang sumber tidak ditemukan dalam log.

    Discard Key-value Pair If Separator Does Not Match

    Jika opsi ini dipilih, sistem membuang pasangan kunci-nilai jika tidak mengandung pemisah kunci-nilai yang ditentukan.

    Report Error If Key-value Separator Is Missing

    Jika opsi ini dipilih, kesalahan dilaporkan jika pasangan kunci-nilai tidak mengandung pemisah kunci-nilai yang ditentukan.

    Report Error If Key Is Empty

    Jika opsi ini dipilih, kesalahan dilaporkan jika kunci kosong setelah pemisahan.

    Quote Character

    Jika nilai dibungkus dengan karakter tanda kutip, nilai di dalam karakter tanda kutip diekstraksi. Anda dapat mengatur beberapa karakter.

    Penting

    Jika garis miring terbalik (\) digunakan untuk meng-escape karakter tanda kutip di dalam nilai bertanda kutip, garis miring terbalik (\) tetap dipertahankan sebagai bagian dari nilai.

  • Contoh

    • Contoh 1: Memisahkan pasangan kunci-nilai.

      Pisahkan nilai bidang content menjadi pasangan kunci-nilai. Pemisah antara pasangan kunci-nilai adalah karakter tab \t, dan pemisah dalam pasangan kunci-nilai adalah titik dua (:). Berikut adalah contoh konfigurasi:

      • Log mentah

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
      • Konfigurasi plugin Logtail提取字段(键值对模式)

      • 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 yang berisi karakter tanda kutip.

      Pisahkan nilai bidang content menjadi pasangan kunci-nilai. Pemisah antara pasangan kunci-nilai adalah karakter tab \t, pemisah dalam pasangan kunci-nilai adalah titik dua (:), dan karakter tanda kutip adalah tanda kutip ganda ("). Berikut adalah contoh konfigurasi:

      • Log mentah

        "content": "class:main http_user_agent:\"User Agent\" \"Chinese\" \"hello\\t\\\"ilogtail\\\"\\tworld\""
      • Konfigurasi plugin Logtail键值对

      • Hasil

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "Chinese",
        "no_separator_key_1": "hello\t\"ilogtail\"\tworld",
    • Contoh 3: Memisahkan pasangan kunci-nilai yang berisi karakter tanda kutip multi-karakter.

      Pisahkan nilai bidang content menjadi pasangan kunci-nilai. Pemisah antara pasangan kunci-nilai adalah karakter tab \t, pemisah dalam pasangan kunci-nilai adalah titik dua (:), dan karakter tanda kutip adalah tanda kutip ganda (""). Berikut adalah contoh konfigurasi:

      • Log mentah

        "content": "class:main http_user_agent:\"\"\"User Agent\"\"\" \"\"\"Chinese\"\"\""
      • Konfigurasi plugin Logtail键值对模式

      • Hasil

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "Chinese",

Konfigurasi JSON

  • Parameter

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

    Parameter

    Jenis

    Wajib

    Deskripsi

    SourceKey

    string

    Ya

    Nama bidang sumber.

    Delimiter

    string

    Tidak

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

    Separator

    string

    Tidak

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

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bidang sumber dalam log yang diurai.

    • true: Simpan bidang sumber.

    • false (default): Jangan simpan bidang sumber.

    ErrIfSourceKeyNotFound

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika bidang sumber tidak ditemukan dalam log mentah.

    • true (default): Kesalahan dilaporkan.

    • false: Tidak ada kesalahan yang dilaporkan.

    DiscardWhenSeparatorNotFound

    Boolean

    Tidak

    Menentukan apakah akan membuang pasangan kunci-nilai jika tidak ditemukan pemisah yang cocok.

    • true: Buang pasangan tersebut.

    • false (default): Jangan buang pasangan tersebut.

    ErrIfSeparatorNotFound

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan ketika pemisah yang ditentukan tidak ditemukan.

    • true (default): Kesalahan dilaporkan.

    • false: Tidak ada kesalahan yang dilaporkan.

    ErrIfKeyIsEmpty

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan ketika kunci kosong setelah pemisahan.

    • true (default): Kesalahan dilaporkan.

    • false: Tidak ada kesalahan yang dilaporkan.

    Quote

    String

    Tidak

    Karakter tanda kutip. Jika diatur dan nilai dibungkus dengan karakter tanda kutip, nilai di dalam karakter tanda kutip diekstraksi. Anda dapat mengatur beberapa karakter. Secara default, fitur karakter tanda kutip dinonaktifkan.

    Penting
    • Jika karakter tanda kutip adalah tanda kutip ganda (""), Anda harus menambahkan karakter escape, yaitu garis miring terbalik (\).

    • Jika garis miring terbalik (\) digunakan dengan karakter tanda kutip di dalam tanda kutip, garis miring terbalik (\) termasuk sebagai bagian dari nilai.

  • Contoh

    • Contoh 1: Memisahkan pasangan kunci-nilai.

      Pisahkan nilai bidang content menjadi pasangan kunci-nilai. Pemisah antara pasangan kunci-nilai adalah karakter tab \t, dan pemisah dalam pasangan kunci-nilai adalah titik dua (:). Berikut adalah contoh konfigurasi:

      • 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.

      Pisahkan nilai bidang content menjadi pasangan kunci-nilai. Pemisah antara pasangan kunci-nilai adalah karakter tab \t, pemisah dalam pasangan kunci-nilai adalah titik dua (:), dan karakter tanda kutip adalah tanda kutip ganda ("). Berikut adalah contoh konfigurasi:

      • Log mentah

        "content": "class:main http_user_agent:\"User Agent\" \"Chinese\" \"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": "Chinese",
        "no_separator_key_1": "hello\t\"ilogtail\"\tworld",
    • Contoh 3: Memisahkan pasangan kunci-nilai.

      Pisahkan nilai bidang content menjadi pasangan kunci-nilai. Pemisah antara pasangan kunci-nilai adalah karakter tab \t, pemisah dalam pasangan kunci-nilai adalah titik dua (:), dan karakter tanda kutip adalah tanda kutip ganda tiga kali ("""). Berikut adalah contoh konfigurasi:

      • Log mentah

        "content": "class:main http_user_agent:\"\"\"User Agent\"\"\" \"\"\"Chinese\"\"\""
      • 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": "Chinese",

Mode Grok

Mengekstraksi bidang target menggunakan ekspresi Grok.

Catatan

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

Konfigurasi berbasis formulir

  • Parameter

    Atur Processor Type ke Extract Fields (Grok Mode). Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Source Field

    Nama bidang sumber.

    Match Patterns

    Array ekspresi Grok. Plugin processor_grok mencoba mencocokkan log terhadap ekspresi dalam daftar ini dari atas ke bawah dan mengembalikan hasil dari pencocokan pertama yang berhasil.

    Untuk daftar ekspresi default yang didukung, lihat processor_grok. Jika ekspresi yang Anda butuhkan tidak ada dalam daftar, masukkan ekspresi Grok kustom di Custom Grok Patterns.

    Catatan

    Mengonfigurasi beberapa ekspresi Grok dapat memengaruhi kinerja. Kami menyarankan untuk menggunakan tidak lebih dari lima ekspresi.

    Custom Grok Patterns

    Masukkan nama aturan kustom dan ekspresi Grok.

    Directory Of Custom Grok Pattern Files

    Direktori tempat file pola Grok kustom berada. Plugin processor_grok membaca semua file dalam direktori tersebut.

    Penting

    Setelah memperbarui file pola Grok kustom, Anda harus me-restart Logtail agar perubahan berlaku.

    Maximum Match Time

    Waktu maksimum untuk mencoba mengekstraksi bidang dengan ekspresi Grok, dalam milidetik. Jika diatur ke 0 atau dikosongkan, berarti tidak ada batas waktu.

    Keep Log On Parsing Failure

    Jika opsi ini dipilih, sistem menyimpan log jika penguraian gagal.

    Keep Source Field

    Jika opsi ini dipilih, bidang sumber disimpan dalam log yang diurai.

    Report Error If Source Field Is Missing

    Jika opsi ini dipilih, kesalahan dilaporkan jika bidang sumber tidak ditemukan dalam log mentah.

    Report Error If No Patterns Match

    Jika opsi ini dipilih, kesalahan dilaporkan jika tidak ada ekspresi di Match Patterns yang cocok dengan log.

    Report Error On Match Timeout

    Jika opsi ini dipilih, kesalahan dilaporkan jika waktu pencocokan habis.

  • Contoh

    Ekstrak nilai bidang content dalam mode Grok dan beri nama bidang yang diekstraksi menjadi year, month, dan day. Berikut adalah contoh konfigurasi:

    • Log mentah

      "content" : "2022 October 17"
    • Konfigurasi plugin LogtailGROK模式

    • Hasil

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

Konfigurasi JSON

  • Parameter

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

    Parameter

    Jenis

    Wajib

    Deskripsi

    CustomPatternDir

    Array string

    Tidak

    Direktori tempat file pola Grok kustom berada. Plugin processor_grok membaca semua file dalam direktori tersebut.

    Jika parameter ini tidak ditambahkan, tidak ada file pola Grok kustom yang diimpor.

    Penting

    Setelah memperbarui file pola Grok kustom, Anda harus me-restart Logtail agar perubahan berlaku.

    CustomPatterns

    Map

    Tidak

    Pola GROK kustom. kunci adalah nama aturan, dan nilai adalah ekspresi Grok.

    Untuk daftar ekspresi default yang didukung, lihat processor_grok. Jika ekspresi yang Anda butuhkan tidak ada dalam daftar, masukkan ekspresi Grok kustom di Match.

    Jika parameter ini tidak ditambahkan, tidak ada pola GROK kustom yang digunakan.

    SourceKey

    String

    Tidak

    Nama bidang sumber. Nilai default adalah bidang content.

    Match

    Array string

    Ya

    Array ekspresi Grok. Plugin processor_grok mencoba mencocokkan log terhadap ekspresi dalam daftar ini dari atas ke bawah dan mengembalikan hasil dari pencocokan pertama yang berhasil.

    Catatan

    Mengonfigurasi beberapa ekspresi Grok dapat memengaruhi kinerja. Kami menyarankan untuk menggunakan tidak lebih dari lima ekspresi.

    TimeoutMilliSeconds

    Long

    Tidak

    Waktu maksimum untuk mencoba mengekstraksi bidang dengan ekspresi Grok, dalam milidetik.

    Jika parameter ini tidak ditambahkan atau diatur ke 0, berarti tidak ada batas waktu.

    IgnoreParseFailure

    Boolean

    Tidak

    Menentukan apakah akan mengabaikan log yang gagal diurai.

    • true (default): Abaikan log tersebut.

    • false: Hapus item tersebut.

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bidang sumber setelah penguraian berhasil.

    • true (default): Simpan bidang sumber.

    • false: Buang bidang sumber.

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika bidang sumber tidak ditemukan dalam log mentah.

    • true: Kesalahan dilaporkan.

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

    NoMatchError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika tidak ada ekspresi yang ditetapkan di parameter Match yang cocok dengan log.

    • true (default): Kesalahan dilaporkan.

    • false: Tidak ada kesalahan yang dilaporkan.

    TimeoutError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika waktu pencocokan habis.

    • true (default): Kesalahan dilaporkan.

    • false: Tidak ada kesalahan yang dilaporkan.

  • Contoh 1

    Ekstrak nilai bidang content dalam mode Grok dan beri nama bidang yang diekstraksi menjadi year, month, dan day. Berikut adalah contoh konfigurasi:

    • 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

    Ekstrak nilai bidang content dari beberapa log dan uraikan menjadi hasil berbeda berdasarkan ekspresi Grok yang berbeda. Berikut adalah contoh konfigurasi:

    • 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 mencocokkannya dengan ekspresi pertama %{HTTP} di parameter Match, tetapi berhasil mencocokkannya dengan ekspresi kedua %{WORD:word1} %{NUMBER:request_time} %{WORD:word2}. Oleh karena itu, hasil ekstraksi didasarkan pada ekspresi kedua.

        Karena parameter KeepSource diatur ke false, bidang content dalam log mentah dibuang.

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

      • Untuk log ketiga, plugin processor_grok gagal mencocokkannya dengan ketiga ekspresi di parameter Match. Karena Anda mengatur parameter IgnoreParseFailure ke false, log ketiga dibuang.

      • Untuk log keempat, plugin processor_grok berhasil mencocokkannya dengan ekspresi pertama %{HTTP} di parameter Match. Oleh karena itu, hasil ekstraksi didasarkan pada ekspresi pertama.

      {
        "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 bidang

Gunakan plugin processor_add_fields untuk menambahkan bidang log. Bagian ini menjelaskan parameter dan memberikan contoh konfigurasi untuk plugin processor_add_fields.

Konfigurasi

Penting

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

Konfigurasi berbasis formulir

  • Parameter

    Atur Processor Type ke Add Fields. Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Fields To Add

    Nama dan nilai bidang yang akan ditambahkan. Anda dapat menambahkan beberapa bidang.

    Ignore Duplicate Fields

    Menentukan apakah akan mengabaikan bidang jika bidang dengan nama yang sama sudah ada.

  • Contoh

    Tambahkan bidang aaa2 dan aaa3. Berikut adalah contoh konfigurasi:

    • Log mentah

      "aaa1":"value1"
    • Konfigurasi plugin Logtail 添加字段

    • Hasil

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

Konfigurasi JSON

  • Parameter

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

    Parameter

    Jenis

    Wajib

    Deskripsi

    Fields

    Map

    Ya

    Nama dan nilai bidang yang akan ditambahkan. Ini dalam format pasangan kunci-nilai. Anda dapat menambahkan beberapa bidang.

    IgnoreIfExist

    Boolean

    Tidak

    Menentukan apakah akan mengabaikan bidang jika bidang dengan nama yang sama sudah ada.

    • true: Abaikan bidang tersebut.

    • false (default): Jangan abaikan bidang tersebut.

  • Contoh konfigurasi

    Tambahkan bidang aaa2 dan aaa3. Berikut adalah contoh konfigurasi:

    • 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 bidang

Gunakan plugin processor_drop untuk menghapus bidang log. Bagian ini menjelaskan parameter dan memberikan contoh konfigurasi untuk plugin processor_drop.

Konfigurasi

Penting

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

Konfigurasi berbasis formulir

  • Parameter

    Atur Processor Type ke Drop Fields. Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Fields To Drop

    Bidang yang akan dihapus. Anda dapat menentukan beberapa bidang.

  • Contoh

    Hapus bidang aaa1 dan aaa2 dari log. Berikut adalah contoh konfigurasi:

    • Log mentah

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Konfigurasi plugin Logtail 丢弃字段

    • Hasil

      "aaa3":"value3"

Konfigurasi JSON

  • Parameter

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

    Parameter

    Jenis

    Wajib

    Deskripsi

    DropKeys

    Array string

    Ya

    Bidang yang akan dihapus. Anda dapat menentukan beberapa bidang.

  • Contoh

    Hapus bidang aaa1 dan aaa2 dari log. Berikut adalah contoh konfigurasi:

    • 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 bidang

Anda dapat menggunakan plugin processor_rename untuk mengubah nama bidang. Bagian ini menjelaskan parameter dan memberikan contoh konfigurasi untuk plugin processor_rename.

Konfigurasi

Penting

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

Konfigurasi berbasis formulir

  • Pengaturan parameter

    Atur Processing Plugin Type ke Rename Fields. Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Source Field

    Bidang sumber yang akan diubah namanya.

    Result Field

    Nama baru untuk bidang tersebut.

    Report Error If Source Field Is Missing

    Jika Anda memilih opsi ini, kesalahan dilaporkan jika bidang sumber tidak ditemukan dalam log.

  • Contoh

    Ubah nama bidang aaa1 menjadi bbb1 dan bidang aaa2 menjadi bbb2. Berikut adalah contoh konfigurasi:

    • Log mentah

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Konfigurasi plugin Logtail 重命名字段

    • Hasil

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

Konfigurasi JSON

  • Pengaturan parameter

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

    Parameter

    Jenis

    Wajib

    Deskripsi

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika bidang sumber tidak ditemukan dalam log.

    • true: Kesalahan dilaporkan.

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

    SourceKeys

    Array string

    Ya

    Bidang sumber yang akan diubah namanya.

    DestKeys

    Array string

    Ya

    Nama baru untuk bidang tersebut.

  • Contoh

    Ubah nama bidang aaa1 menjadi bbb1 dan bidang aaa2 menjadi bbb2. Berikut adalah contoh konfigurasi:

    • 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"

Plugin Pengemasan Bidang

Anda dapat menggunakan plugin processor_packjson untuk mengemas satu atau beberapa bidang menjadi satu bidang objek JSON. Bagian ini menjelaskan parameter dan memberikan contoh konfigurasi untuk plugin processor_packjson.

Konfigurasi

Penting

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

Konfigurasi berbasis formulir

  • Parameter

    Atur Processor Type ke Pack Fields. Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Source Fields

    Bidang sumber yang akan dikemas.

    Result Field

    Bidang setelah pengemasan.

    Keep Source Fields

    Jika Anda memilih opsi ini, bidang sumber disimpan dalam log yang diurai.

    Report Error If Source Field Is Missing

    Jika Anda memilih opsi ini, kesalahan dilaporkan jika bidang sumber tidak ditemukan dalam log mentah.

  • Contoh

    Kemas bidang a dan b yang ditentukan ke dalam bidang JSON bernama d_key. Berikut adalah contoh konfigurasi:

    • Log mentah

      "a":"1"
      "b":"2"
    • Konfigurasi plugin Logtail 打包字段

    • Hasil

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

Konfigurasi JSON

  • Parameter

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

    Parameter

    Jenis

    Wajib

    Deskripsi

    SourceKeys

    Array string

    Ya

    Bidang sumber yang akan dikemas.

    DestKey

    String

    Tidak

    Bidang setelah pengemasan.

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bidang sumber dalam log yang diurai.

    • true (default): Simpan bidang sumber.

    • false: Jangan simpan bidang sumber.

    AlarmIfIncomplete

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika bidang sumber tidak ditemukan dalam log mentah.

    • true (default): Kesalahan dilaporkan.

    • false: Tidak ada kesalahan yang dilaporkan.

  • Contoh konfigurasi

    Kemas bidang a dan b yang ditentukan ke dalam bidang JSON bernama d_key. Berikut adalah contoh konfigurasi:

    • Log mentah

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

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

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

Plugin perluas bidang JSON

Gunakan plugin processor_json untuk memperluas bidang JSON. Bagian ini menjelaskan parameter dan memberikan contoh konfigurasi untuk plugin processor_json.

Konfigurasi

Penting

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

Konfigurasi berbasis formulir

  • Parameter

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

    Parameter

    Deskripsi

    Source Field

    Nama bidang sumber yang akan diperluas.

    JSON Expansion Depth

    Kedalaman perluasan JSON. Nilai default adalah 0, yang menunjukkan tidak ada batasan. Nilai 1 menunjukkan level saat ini.

    JSON Expansion Connector

    Konektor untuk perluasan JSON. Nilai default adalah garis bawah (_).

    JSON Expansion Field Prefix

    Awalan yang ditambahkan ke nama bidang selama perluasan JSON.

    Expand Array

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

    Keep Source Field

    Jika opsi ini dipilih, bidang sumber disimpan dalam log yang diurai.

    Report Error If Source Field Is Missing

    Jika opsi ini dipilih, kesalahan dilaporkan jika bidang sumber tidak ditemukan dalam log mentah.

    Use Source Field Name As Prefix For Expanded Fields

    Jika opsi ini dipilih, nama bidang sumber digunakan sebagai awalan untuk semua nama bidang JSON yang diperluas.

    Keep Raw Log On Parsing Failure

    Jika opsi ini dipilih, log mentah disimpan jika penguraian gagal.

  • Contoh

    Contoh ini memperluas bidang s_key. Menggunakan j sebagai awalan dan nama bidang sumber s_key sebagai awalan untuk nama bidang yang diperluas. Berikut adalah contoh konfigurasi:

    • Log mentah (jalur file yang dibaca oleh Logtail)

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

      image

    • Hasil

      image

Konfigurasi JSON

  • Parameter

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

    Parameter

    Jenis

    Wajib

    Deskripsi

    SourceKey

    String

    Ya

    Nama bidang sumber yang akan diperluas.

    NoKeyError

    Boolean

    Tidak

    Menentukan apakah akan melaporkan kesalahan jika bidang sumber tidak ditemukan dalam log mentah.

    • true (default): Kesalahan dilaporkan.

    • false: Tidak ada kesalahan yang dilaporkan.

    ExpandDepth

    Int

    Tidak

    Kedalaman perluasan JSON. Nilai default adalah 0, yang berarti tidak ada batasan. Nilai 1 menunjukkan level saat ini, dan seterusnya.

    ExpandConnector

    String

    Tidak

    Konektor untuk perluasan JSON. Nilai default adalah garis bawah (_).

    Prefix

    String

    Tidak

    Awalan yang ditambahkan ke nama bidang selama perluasan JSON.

    KeepSource

    Boolean

    Tidak

    Menentukan apakah akan menyimpan bidang sumber dalam log yang diurai.

    • true (default): Simpan bidang sumber.

    • false: Jangan simpan bidang sumber.

    UseSourceKeyAsPrefix

    Boolean

    Tidak

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

    KeepSourceIfParseError

    Boolean

    Tidak

    Menentukan apakah akan menyimpan log mentah jika penguraian gagal.

    • true (default): Simpan log mentah.

    • false: Jangan simpan log mentah.

    ExpandArray

    Boolean

    Tidak

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

    • false (default): Jangan perluas array.

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

  • Contoh

    Contoh ini memperluas bidang s_key. Menggunakan j sebagai awalan dan nama bidang sumber s_key sebagai awalan untuk nama bidang yang diperluas. Berikut adalah contoh konfigurasi:

    • 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": "content",
              "NoKeyError":true,
              "ExpandDepth":0,
              "ExpandConnector":"-",
              "Prefix":"j",
              "KeepSource": false,
              "UseSourceKeyAsPrefix": true
            }
          }
        ]
      }
    • Hasil

      image

Plugin petakan nilai bidang

Plugin processor_dict_map memetakan nilai bidang. Bagian ini menjelaskan parameter dan memberikan contoh konfigurasi.

Konfigurasi

Konfigurasi formulir

Atur Processor Type ke Field Value Mapping. Tabel berikut menjelaskan parameter tersebut.

Parameter

Deskripsi

Source Field

Nama bidang sumber.

Result Field

Nama bidang yang dipetakan.

Mapping Dictionary

Kamus yang memetakan kunci ke nilai.

Gunakan parameter ini untuk langsung mengonfigurasi kamus pemetaan kecil. Hal ini menghindari kebutuhan akan file kamus CSV lokal.

Penting

Konfigurasi Mapping Dictionary tidak berlaku jika Anda mengatur Local Dictionary.

Local Dictionary

File kamus dalam format CSV. File ini menggunakan koma (,) sebagai pemisah dan tanda kutip ganda (") untuk membungkus referensi bidang.

Advanced Parameters>Handle Missing Source Field

Pilih opsi ini untuk menangani kasus di mana bidang sumber tidak ada dalam log mentah. Sistem kemudian mengisi bidang hasil dengan nilai yang ditentukan di Result Field Padding Value.

Advanced Parameters>Maximum Mapping Dictionary Size

Ukuran maksimum kamus pemetaan. Nilai default adalah 1000, yang berarti Anda dapat menyimpan hingga 1000 aturan pemetaan.

Untuk membatasi penggunaan memori plugin di server, kurangi nilai ini.

Advanced Parameters>Raw Log Processing Method

Menentukan cara menangani kasus di mana bidang yang dipetakan sudah ada dalam log mentah.

  • Timpa bidang asli.

  • Jangan timpa bidang asli.

Konfigurasi JSON

Atur type ke processor_dict_map. Tabel berikut menjelaskan parameter untuk detail.

Parameter

Jenis

Wajib

Deskripsi

SourceKey

String

Ya

Nama bidang sumber.

MapDict

Map

Tidak

Kamus pemetaan.

Gunakan parameter ini untuk langsung mengonfigurasi kamus pemetaan kecil. Hal ini menghindari kebutuhan akan file kamus CSV lokal.

Penting

Parameter MapDict tidak berlaku jika Anda mengatur parameter DictFilePath.

DictFilePath

String

Tidak

File kamus dalam format CSV. File ini menggunakan koma (,) sebagai pemisah dan tanda kutip ganda (") untuk membungkus referensi bidang.

DestKey

String

Tidak

Nama bidang yang dipetakan.

HandleMissing

Boolean

Tidak

Menentukan apakah akan memproses log mentah jika bidang target tidak ada.

  • true: Proses bidang tersebut.

    Sistem mengisi bidang hasil dengan nilai parameter Missing.

  • false (default): Jangan proses bidang tersebut.

Missing

String

Tidak

Nilai yang digunakan untuk bidang hasil ketika bidang sumber tidak ada dalam log mentah. Nilai default adalah Unknown.

Parameter ini hanya berlaku ketika Anda mengatur HandleMissing ke true.

MaxDictSize

Int

Tidak

Ukuran maksimum kamus pemetaan. Nilai default adalah 1000, yang berarti Anda dapat menyimpan hingga 1000 aturan pemetaan.

Untuk membatasi penggunaan memori plugin di server, kurangi nilai ini.

Mode

String

Tidak

Menentukan cara menangani kasus di mana bidang yang dipetakan sudah ada dalam log mentah.

  • overwrite (default): Timpa bidang asli.

  • fill: Jangan timpa bidang asli.

Penggantian string

Gunakan plugin processor_string_replace untuk mengganti teks lengkap log, mengganti teks berdasarkan ekspresi reguler, atau menghapus karakter escape.

Deskripsi konfigurasi

Penting

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

Konfigurasi menggunakan formulir

Atur Processor Type ke String Replacement. Tabel berikut menjelaskan parameter tersebut.

Parameter

Deskripsi

Source Field

Nama bidang sumber.

Match Method

Menentukan metode pencocokan. Nilai yang valid:

  • String Match: Mengganti konten target dengan string.

  • Regular Expression Match: Mengganti konten target berdasarkan ekspresi reguler.

  • Remove Escape Characters: Menghapus karakter escape.

Match Content

Masukkan konten yang akan dicocokkan.

  • Jika Anda mengatur Match Method ke String Match, masukkan string yang cocok dengan konten yang akan diganti.

    Jika beberapa string cocok, semuanya diganti.

  • Jika Anda mengatur Match Method ke Pencocokan Ekspresi Reguler, masukkan ekspresi reguler yang cocok dengan konten yang akan diganti.

    Jika beberapa string cocok, semuanya diganti. Anda juga dapat menggunakan grup ekspresi reguler untuk mencocokkan grup tertentu.

  • Jika Anda mengatur Match Method ke Remove Escape Characters, Anda tidak perlu mengonfigurasi parameter ini.

Replace With

String yang digunakan untuk penggantian.

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

  • Jika Anda mengatur Match Method ke Regular Expression Match, masukkan string untuk mengganti konten asli. Anda dapat mengganti konten berdasarkan grup ekspresi reguler.

  • Jika Anda mengatur Match Method ke Remove Escape Characters, Anda tidak perlu mengonfigurasi parameter ini.

Result Field

Tentukan bidang baru untuk konten yang diganti.

Konfigurasi menggunakan JSON

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

Parameter

Jenis

Wajib

Deskripsi

SourceKey

String

Ya

Nama bidang sumber.

Method

String

Ya

Menentukan metode pencocokan. Nilai yang valid:

  • const: Gunakan penggantian string.

  • regex: Gunakan penggantian ekspresi reguler.

  • unquote: Hapus karakter escape.

Match

String

Tidak

Masukkan konten yang akan dicocokkan.

  • Jika Anda mengatur Method ke const, masukkan string yang cocok dengan konten yang akan diganti.

    Jika beberapa string cocok, semuanya diganti.

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

    Jika beberapa string cocok, semuanya diganti. Anda juga dapat menggunakan grup ekspresi reguler untuk mencocokkan grup tertentu.

  • Jika Anda mengatur Method ke unquote, Anda tidak perlu mengonfigurasi parameter ini.

ReplaceString

String

Tidak

String yang digunakan untuk penggantian. Nilai default adalah "".

  • 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 mengganti konten berdasarkan grup ekspresi reguler.

  • Jika Anda mengatur Method ke unquote, Anda tidak perlu mengonfigurasi parameter ini.

DestKey

String

Tidak

Tentukan bidang baru untuk konten yang diganti. Jika Anda tidak menentukan parameter ini, tidak ada bidang baru yang dibuat.

Contoh konfigurasi

Ganti konten menggunakan pencocokan string

Gunakan pencocokan string untuk mengganti Error: dalam bidang content dengan string kosong.

Konfigurasi menggunakan formulir

  • Log mentah:

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

  • Hasil:

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

Konfigurasi menggunakan 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.",

Ganti konten menggunakan ekspresi reguler

Gunakan ekspresi reguler untuk mengganti string dalam bidang content yang cocok dengan ekspresi reguler \\u\w+\[\d{1,3};*\d{1,3}m|N/A dengan string kosong.

Konfigurasi menggunakan 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:image..png

  • Hasil:

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

Konfigurasi menggunakan 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",

Ganti konten menggunakan grup ekspresi reguler

Gunakan grup ekspresi reguler untuk mengganti 16 dalam bidang content dengan */24 dan tulis hasilnya ke bidang baru bernama new_ip.

Penting

Saat Anda mengganti konten menggunakan grup ekspresi reguler, string pengganti tidak boleh mengandung {}. Anda hanya dapat menggunakan format seperti $1 dan $2.

Konfigurasi menggunakan formulir

  • Log mentah:

    "content": "10.10.239.16"
  • Konfigurasi plugin Logtail:image..png

  • Hasil:

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

Konfigurasi menggunakan 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",

Hapus karakter escape

Konfigurasi menggunakan 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:image..png

  • Hasil:

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

Konfigurasi menggunakan 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}",

Referensi