All Products
Search
Document Center

Simple Log Service:Konfigurasi Logtail (Lama)

Last Updated:Aug 27, 2026

Konfigurasi Logtail menentukan kebijakan pengumpulan log, seperti sumber data dan mode pengumpulan. Topik ini menjelaskan parameter API versi lama.

CRD-AliyunLogConfig versi lama tidak lagi dipelihara. Gunakan AliyunPipelineConfig sebagai gantinya. CreateLogtailPipelineConfig - Buat konfigurasi pipeline Logtail.

Parameter dasar

Parameter

Tipe

Wajib

Contoh

Deskripsi

configName

string

Ya

config-sample

Nama konfigurasi Logtail. Harus unik dalam proyek dan tidak dapat diubah setelah dibuat.

Aturan penamaan:

  • Hanya boleh berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_).

  • Harus diawali dan diakhiri dengan huruf kecil atau angka.

  • Panjangnya harus antara 2 hingga 128 karakter.

inputType

string

Ya

file

Jenis sumber data. Nilai yang valid:

  • plugin: Mengumpulkan log menggunakan plug-in Logtail (misalnya, MySQL Binlog).

  • file: Mengumpulkan log dari file teks menggunakan mode tetap (regex lengkap, delimiter, dan lainnya).

inputDetail

JSON object

Ya

None

Konfigurasi sumber data. Parameter inputDetail.

outputType

string

Ya

LogService

Tujuan output. Hanya LogService yang didukung.

outputDetail

JSON object

Ya

None

Konfigurasi output log. Parameter outputDetail.

logSample

string

Tidak

None

Contoh log.

Catatan

Contoh log harus kurang dari 1.500 byte.

Parameter inputDetail

Parameter dasar

Parameter

Tipe

Wajib

Contoh

Deskripsi

filterKey

array

Tidak

["ip"]

Bidang filter log. Hanya log yang sesuai dengan pola filterRegex yang dikumpulkan.

Catatan

Parameter ini hanya untuk pengumpulan log teks.

filterRegex

array

Tidak

["^10.*"]

Pola regex untuk filterKey. Panjang array filterRegex harus sama dengan filterKey.

Catatan

Parameter ini hanya untuk pengumpulan log teks.

shardHashKey

array

Tidak

["__source__"]

Mode penulisan data. Default: load balancing.

  • Mode load balancing (LoadBalance): Menulis ke shard mana pun yang dapat ditulis. Paling cocok untuk skenario tanpa persyaratan pengurutan.

  • Mode shard (KeyHash): Mengarahkan data ke shard tertentu berdasarkan bidang Key dalam parameter URL. Jika tidak diatur, akan kembali ke mode load balancing. Memastikan pengurutan ketat dalam satu shard selama penggabungan dan pemisahan. Shard.

Jika dikonfigurasi, data ditulis dalam mode shard. Bidang __source__ didukung.

enableRawLog

boolean

Tidak

false

Apakah akan mengunggah log mentah.

  • true: Mengunggah log mentah.

  • false (default): Tidak mengunggah log mentah.

sensitive_keys

array

Tidak

None

Konfigurasi penyamaran data. Parameter sensitive_keys.

mergeType

string

Tidak

topic

Metode agregasi. Nilai yang valid:

  • topic (default): Mengagregasi berdasarkan topik.

  • logstore: Mengagregasi berdasarkan Logstore.

delayAlarmBytes

int

Tidak

209715200

Ambang batas peringatan untuk keterlambatan pengumpulan. Default: 209715200 (200 MB).

adjustTimezone

boolean

Tidak

false

Apakah akan menyesuaikan zona waktu log. Hanya berlaku jika penguraian waktu dikonfigurasi (misalnya, saat timeFormat diatur).

logTimezone

string

Tidak

GMT+08:00

Offset zona waktu. Format: GMT+JJ:MM (timur) atau GMT-JJ:MM (barat). Contoh: GMT+08:00 untuk UTC+8.

advanced

JSON object

Tidak

None

Konfigurasi fitur lanjutan. parameter lanjutan.

Parameter sensitive_keys

  • Parameter

    Parameter

    Tipe

    Wajib

    Contoh

    Deskripsi

    key

    string

    Ya

    content

    Nama bidang log.

    type

    string

    Ya

    const

    Metode penyamaran data. Nilai yang valid:

    • const: Mengganti konten sensitif dengan nilai bidang const.

    • md5: Mengganti konten sensitif dengan hash MD5-nya.

    regex_begin

    string

    Ya

    'password':'

    Awalan regex untuk menemukan konten sensitif. Menggunakan sintaks RE2.

    regex_content

    string

    Ya

    [^']*

    Regex untuk konten sensitif. Menggunakan sintaks RE2.

    all

    boolean

    Ya

    true

    Apakah akan mengganti semua konten sensitif dalam bidang tersebut.

    • true (disarankan): Mengganti semua konten sensitif.

    • false: Hanya mengganti kecocokan pertama.

    const

    string

    Tidak

    "********"

    Parameter ini wajib jika Anda mengatur type ke const.

  • Contoh Konfigurasi

    Misalnya, jika nilai bidang content dalam log adalah [{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}], Anda dapat mengganti nilai bidang password dengan ******** dengan mengatur sensitive_keys sebagai berikut.

    sensitive_keys = [{"all": true,
    "const": "********",
    "regex_content": "[^']*",
    "regex_begin": "'password':'",
    "type": "const",
    "key": "content"}]                    
  • Contoh Log

    [{'account':'1812213231432969','password':'********'}, {'account':'1812213685634','password':'********'}]

Parameter lanjutan

Parameter

Tipe

Wajib

Contoh

Deskripsi

enable_root_path_collection

boolean

Tidak

false

Apakah mengizinkan pengumpulan dari direktori root Windows (misalnya, D:\log*).

  • true: Diizinkan.

  • false (default): Tidak diizinkan.

Penting
  • Parameter global. Mengaktifkan ini pada konfigurasi Logtail apa pun memungkinkan semua konfigurasi di server mengumpulkan dari direktori root hingga Logtail dimulai ulang.

  • Fitur ini hanya didukung pada Windows Logtail 1.0.0.22 dan versi lebih baru.

exactly_once_concurrency

int

Tidak

1

Mengaktifkan penulisan ExactlyOnce dan mengatur jumlah pengiriman konkuren per file (0–512). Lampiran: Fitur penulisan ExactlyOnce.

  • 0: Menonaktifkan fitur penulisan ExactlyOnce.

  • Nilai lain: Mengaktifkan penulisan ExactlyOnce dengan konkurensi yang ditentukan per file.

Penting
  • Nilai yang lebih tinggi meningkatkan overhead memori dan disk. Atur berdasarkan trafik penulisan lokal Anda.

  • Logtail melakukan randomisasi lokal. Bahkan jika nilai ini lebih kecil dari jumlah shard, keseimbangan penulisan tetap terjamin.

  • Hanya berlaku untuk file baru setelah konfigurasi.

  • Fitur ini hanya didukung pada Logtail 1.0.21 dan versi lebih baru.

enable_log_position_meta

boolean

Tidak

true

Apakah akan menambahkan metadata file log (bidang __tag__:__inode__ dan __file_offset__).

  • true: Menambahkan metadata.

  • false: Tidak menambahkan metadata.

Catatan

Fitur ini hanya didukung pada Logtail 1.0.21 dan versi lebih baru.

specified_year

uint

Tidak

0

Melengkapi stempel waktu log yang tidak memiliki tahun. Nilai yang valid:

  • 0: Menggunakan tahun saat ini.

  • Tahun tertentu (misalnya, 2020): Menggunakan tahun yang ditentukan.

Catatan

Fitur ini hanya didukung pada Logtail 1.0.21 dan versi lebih baru.

force_multiconfig

boolean

Tidak

false

Apakah mengizinkan konfigurasi ini mengumpulkan file yang sudah dicocokkan oleh konfigurasi lain. Default: false.

Gunakan untuk skenario multi-penulisan di mana satu file dikumpulkan oleh dua konfigurasi ke Logstore yang berbeda.

raw_log_tag

string

Tidak

__raw__

Nama bidang untuk menyimpan log mentah. Default: __raw__.

blacklist

object

Tidak

None

Konfigurasi daftar hitam pengumpulan. Parameter blacklist.

tail_size_kb

int

Tidak

1024

Ukuran pengumpulan awal untuk file baru, menentukan posisi baca awal. Default: 1024 KB.

  • File lebih kecil dari 1024 KB: pengumpulan dimulai dari awal.

  • File lebih besar dari 1024 KB: pengumpulan dimulai 1024 KB sebelum akhir.

Rentang: 0–10485760 KB.

batch_send_interval

int

Tidak

3

Interval pengiriman agregasi dalam detik. Default: 3.

max_rotate_queue_size

int

Tidak

20

Panjang antrian rotasi per file. Default: 20.

enable_precise_timestamp

boolean

Tidak

false

Apakah akan mengekstraksi waktu presisi tinggi. Default: false.

Jika diaktifkan, Logtail mengurai bidang waktu menjadi stempel waktu tingkat milidetik dan menyimpannya dalam bidang precise_timestamp_key.

Catatan
  • Waktu sistem harus dinonaktifkan dalam konfigurasi pengumpulan Logtail.

  • Fitur ini hanya didukung pada Logtail 1.0.32 dan versi lebih baru.

precise_timestamp_key

string

Tidak

"precise_timestamp"

Bidang untuk menyimpan stempel waktu presisi tinggi. Default: precise_timestamp.

precise_timestamp_unit

string

Tidak

"ms"

Unit stempel waktu presisi tinggi. Default: ms. Nilai yang valid: ms (milidetik), us (mikrodetik), ns (nanodetik).

Tabel berikut menjelaskan parameter blacklist.

Parameter

Tipe

Wajib

Contoh

Deskripsi

dir_blacklist

array

Tidak

["/home/admin/dir1", "/home/admin/dir2*"]

Daftar hitam direktori (jalur mutlak). Mendukung wildcard tanda bintang (*).

Misalnya, jika Anda mengonfigurasi jalur sebagai /home/admin/dir1, semua konten dalam direktori /home/admin/dir1 diabaikan selama pengumpulan.

filename_blacklist

array

Tidak

["app*.log", "password"]

Daftar hitam nama file. File yang cocok dikecualikan dari semua direktori. Mendukung wildcard tanda bintang (*).

filepath_blacklist

array

Tidak

["/home/admin/private*.log"]

Daftar hitam jalur file (jalur mutlak). Mendukung wildcard tanda bintang (*).

Jika Anda mengonfigurasi jalur sebagai /home/admin/private*.log, semua file dalam direktori /home/admin/ yang diawali dengan "private" dan diakhiri ".log" diabaikan selama pengumpulan.

Konfigurasi khusus untuk log teks

Parameter dasar

Parameter

Tipe

Wajib

Contoh

Deskripsi

logType

string

Ya

common_reg_log

Mode pengumpulan log. Nilai yang valid:

  • json_log: Mode JSON.

  • common_reg_log: Mode regex lengkap.

  • plugin: Mode plug-in.

  • delimiter_log: Mode delimiter.

logPath

string

Ya

/var/log/http/

Jalur direktori file log.

filePattern

string

Ya

access*.log

Pola nama file log.

topicFormat

string

Ya

none

Metode pembuatan topik. Nilai yang valid:

  • none: Tidak membuat topik log.

  • default: Menggunakan jalur file log sebagai topik log.

  • group_topic: Menggunakan topik kelompok mesin sebagai topik log.

  • Regex jalur file: Menggunakan bagian dari jalur file log sebagai topik. Contoh: /var/log/(.*).log.

Topik log.

timeFormat

string

Tidak

%Y/%m/%d %H:%M:%S

Format waktu log. Format waktu.

preserve

boolean

Tidak

true

Perilaku timeout file log. Nilai yang valid:

  • true (default): Tidak pernah timeout.

  • false: Timeout setelah 30 menit tidak aktif. File tidak lagi dipantau.

preserveDepth

integer

Tidak

1

Kedalaman direktori maksimum untuk timeout saat preserve bernilai false. Rentang: 1–3.

fileEncoding

string

Tidak

utf8

Enkode file log. Nilai yang valid: utf8, gbk.

discardUnmatch

boolean

Tidak

true

Apakah akan membuang log yang gagal dicocokkan. Nilai yang valid:

  • true: Membuang log yang gagal dicocokkan.

  • false: Tidak membuang log yang gagal dicocokkan.

maxDepth

int

Tidak

100

Kedalaman maksimum direktori log yang dipantau (0–1.000). Nilai 0 hanya memantau direktori saat ini.

delaySkipBytes

int

Tidak

0

Ambang batas untuk membuang data yang tertunda. Nilai yang valid:

  • 0 (default): Tidak membuang data.

  • Nilai lain: Jika keterlambatan pengumpulan melebihi nilai ini (misalnya, 1024 KB), data yang tertunda dibuang.

dockerFile

boolean

Tidak

false

Apakah file target berada di dalam kontainer. Default: false.

dockerIncludeLabel

JSON object

Tidak

None

Daftar putih label kontainer. Secara default kosong (mengumpulkan dari semua kontainer). LabelKey wajib; LabelValue opsional.

  • Jika LabelValue kosong, semua kontainer dengan label yang mencakup LabelKey akan dicocokkan.

  • Jika LabelValue tidak kosong, hanya kontainer dengan label LabelKey=LabelValue yang dicocokkan.

    Secara default, LabelValue dicocokkan sebagai string. Kecocokan hanya terjadi jika LabelValue identik dengan nilai label kontainer. Jika nilai dimulai dengan ^ dan diakhiri dengan $, nilai tersebut diperlakukan sebagai ekspresi reguler. Misalnya, atur LabelKey ke io.kubernetes.container.name dan LabelValue ke ^(nginx|cube)$ untuk mencocokkan kontainer bernama nginx atau cube.

Catatan
  • Jangan mengatur LabelKey yang sama beberapa kali. Jika ada duplikat, hanya satu yang berlaku.

  • Beberapa entri daftar putih memiliki hubungan OR. Kontainer dicocokkan jika labelnya memenuhi salah satu entri daftar putih.

dockerExcludeLabel

JSON object

Tidak

None

Daftar hitam label kontainer. Secara default kosong (tidak ada kontainer yang dikecualikan). LabelKey wajib; LabelValue opsional.

  • Jika LabelValue kosong, semua kontainer dengan label yang mencakup LabelKey dikecualikan.

  • Jika LabelValue tidak kosong, hanya kontainer dengan label LabelKey=LabelValue yang dikecualikan.

    Secara default, LabelValue dicocokkan sebagai string. Kecocokan hanya terjadi jika LabelValue identik dengan nilai label kontainer. Jika nilai dimulai dengan ^ dan diakhiri dengan $, nilai tersebut diperlakukan sebagai ekspresi reguler. Misalnya, atur LabelKey ke io.kubernetes.container.name dan LabelValue ke ^(nginx|cube)$ untuk mencocokkan kontainer bernama nginx atau cube.

Catatan
  • Jangan mengatur LabelKey yang sama beberapa kali. Jika ada duplikat, hanya satu yang berlaku.

  • Beberapa entri daftar hitam memiliki hubungan OR. Kontainer dikecualikan jika labelnya memenuhi salah satu pasangan kunci-nilai daftar hitam.

dockerIncludeEnv

JSON object

Tidak

None

Daftar putih variabel lingkungan. Secara default kosong (mengumpulkan dari semua kontainer). EnvKey wajib; EnvValue opsional.

  • Jika EnvValue kosong, semua kontainer dengan variabel lingkungan yang mencakup EnvKey akan dicocokkan.

  • Jika EnvValue tidak kosong, hanya kontainer dengan variabel lingkungan EnvKey=EnvValue yang dicocokkan.

    Secara default, EnvValue dicocokkan sebagai string. Kecocokan hanya terjadi jika EnvValue identik dengan nilai variabel lingkungan. Jika nilai dimulai dengan ^ dan diakhiri dengan $, nilai tersebut diperlakukan sebagai ekspresi reguler. Misalnya, atur EnvKey ke NGINX_SERVICE_PORT dan EnvValue ke ^(80|6379)$ untuk mencocokkan kontainer dengan port layanan 80 atau 6379.

Catatan

Beberapa entri daftar putih memiliki hubungan OR. Kontainer dicocokkan jika variabel lingkungannya memenuhi salah satu entri daftar putih.

dockerExcludeEnv

JSON object

Tidak

None

Daftar hitam variabel lingkungan. Secara default kosong (tidak ada kontainer yang dikecualikan). EnvKey wajib; EnvValue opsional.

  • Jika EnvValue kosong, semua kontainer dengan variabel lingkungan yang mencakup EnvKey dikecualikan.

  • Jika EnvValue tidak kosong, hanya kontainer dengan variabel lingkungan EnvKey=EnvValue yang dikecualikan.

    Secara default, EnvValue dicocokkan sebagai string. Kecocokan hanya terjadi jika EnvValue identik dengan nilai variabel lingkungan. Jika nilai dimulai dengan ^ dan diakhiri dengan $, nilai tersebut diperlakukan sebagai ekspresi reguler. Misalnya, atur EnvKey ke NGINX_SERVICE_PORT dan EnvValue ke ^(80|6379)$ untuk mencocokkan kontainer dengan port layanan 80 atau 6379.

Catatan

Beberapa entri daftar hitam memiliki hubungan OR. Kontainer dikecualikan jika variabel lingkungannya memenuhi salah satu pasangan kunci-nilai.

Parameter mode regex lengkap dan mode simple

  • Parameter

    Parameter

    Tipe

    Wajib

    Contoh

    Deskripsi

    key

    array

    Ya

    ["content"]

    Nama bidang untuk konten log mentah.

    logBeginRegex

    string

    Tidak

    .*

    Regex untuk awal entri log. Hanya satu ekspresi reguler yang didukung. Untuk mencocokkan beberapa format awal baris, gabungkan pola menjadi satu ekspresi reguler menggunakan operator garis vertikal (|).

    regex

    string

    Tidak

    (.*)

    Regex untuk ekstraksi bidang.

  • Contoh Konfigurasi

    {
        "configName": "logConfigName", 
        "outputType": "LogService", 
        "inputType": "file", 
        "inputDetail": {
            "logPath": "/logPath", 
            "filePattern": "*", 
            "logType": "common_reg_log", 
            "topicFormat": "default", 
            "discardUnmatch": false, 
            "enableRawLog": true, 
            "fileEncoding": "utf8", 
            "maxDepth": 10, 
            "key": [
                "content"
            ], 
            "logBeginRegex": ".*", 
            "regex": "(.*)"
        }, 
        "outputDetail": {
            "projectName": "test-project", 
            "logstoreName": "test-logstore"
        }
    }

Parameter mode JSON

Parameter

Tipe

Wajib

Contoh

Deskripsi

timeKey

string

Tidak

time

Nama kunci bidang waktu.

Parameter mode delimiter

  • Parameter

    Parameter

    Tipe

    Wajib

    Contoh

    Deskripsi

    separator

    string

    Tidak

    ,

    Pilih separator yang sesuai dengan format log Anda. Kumpulkan log dalam mode delimiter.

    quote

    string

    Ya

    \

    Karakter quote untuk membungkus bidang yang berisi separator. Konten yang dibungkus diurai sebagai satu bidang. Kumpulkan log dalam mode delimiter.

    key

    array

    Ya

    [ "ip", "time"]

    Nama bidang untuk konten log mentah.

    timeKey

    string

    Ya

    time

    Bidang dari daftar key yang digunakan sebagai bidang waktu.

    autoExtend

    boolean

    Tidak

    true

    Apakah akan mengunggah saat bidang yang dipisahkan lebih sedikit daripada kunci yang dikonfigurasi.

    Misalnya, sebuah log adalah 11|22|33|44|55, separator adalah garis vertikal (|), dan konten log diurai menjadi 11, 22, 33, 44, dan 55. Kunci diatur masing-masing ke A, B, C, D, dan E.

    • true: Saat mengumpulkan log 11|22|33|55, 55 diunggah ke Simple Log Service sebagai nilai untuk kunci D.

    • false: Saat mengumpulkan log 11|22|33|55, entri log ini dibuang karena jumlah bidang tidak sesuai dengan jumlah kunci.

  • Contoh Konfigurasi

    {
        "configName": "logConfigName", 
        "logSample": "testlog", 
        "inputType": "file", 
        "outputType": "LogService", 
        "inputDetail": {
            "logPath": "/logPath", 
            "filePattern": "*", 
            "logType": "delimiter_log", 
            "topicFormat": "default", 
            "discardUnmatch": true, 
            "enableRawLog": true, 
            "fileEncoding": "utf8", 
            "maxDepth": 999, 
            "separator": ",", 
            "quote": "\"", 
            "key": [
                "ip", 
                "time"
            ], 
            "autoExtend": true
        }, 
        "outputDetail": {
            "projectName": "test-project", 
            "logstoreName": "test-logstore"
        }
    }

Parameter mode plug-in

  • Parameter

    Parameter untuk pengumpulan log menggunakan plug-in Logtail.

    Parameter

    Tipe

    Wajib

    Contoh

    Deskripsi

    plugin

    JSON object

    Ya

    None

    Wajib untuk pengumpulan log berbasis plug-in. Gunakan plug-in Logtail untuk mengumpulkan data.

  • Contoh Konfigurasi

    {
        "configName": "logConfigName", 
        "outputType": "LogService", 
        "inputType": "plugin",
        "inputDetail": {
            "plugin": {
                "inputs": [
                    {
                        "detail": {
                            "ExcludeEnv": null, 
                            "ExcludeLabel": null, 
                            "IncludeEnv": null, 
                            "IncludeLabel": null, 
                            "Stderr": true, 
                            "Stdout": true
                        }, 
                        "type": "service_docker_stdout"
                    }
                ]
            }
        }, 
        "outputDetail": {
            "projectName": "test-project", 
            "logstoreName": "test-logstore"
        }
    }

Parameter outputDetail

Parameter proyek dan Logstore tujuan.

Parameter

Tipe

Wajib

Contoh

Deskripsi

projectName

string

Ya

my-project

Nama proyek. Harus sesuai dengan proyek dalam permintaan.

logstoreName

string

Ya

my-logstore

Nama Logstore.

Lampiran: Fitur penulisan ExactlyOnce

Jika diaktifkan, Logtail mencatat checkpoint tingkat file ke disk dan menggunakan nomor urut inkremental SLS untuk mencegah penulisan duplikat. Setelah terjadi kesalahan proses atau restart, checkpoint menentukan cakupan pemrosesan ulang per file. Hal ini meningkatkan overhead penulisan disk. Batasan:

  • Checkpoint disimpan di disk lokal. Jika disk penuh atau rusak, pemulihan mungkin gagal.

  • Checkpoint hanya mencatat metadata file. Jika file dihapus atau dimodifikasi, pemulihan mungkin tidak dimungkinkan.

  • ExactlyOnce bergantung pada nomor urut penulisan di SLS. Setiap shard mendukung maksimal 10.000 catatan. Jika melebihi batas tersebut, catatan lama akan diganti. Untuk memastikan keandalan, pertahankan `Jumlah file aktif × Jumlah instans Logtail` per Logstore di bawah 9.500.

    • File aktif: File yang sedang dibaca dan dikirim. File yang telah diputar dengan nama logis yang sama dihitung sebagai satu file aktif.

    • Instans Logtail: Jumlah proses Logtail. Biasanya satu per server.

Logtail tidak memanggil `sync` untuk penulisan checkpoint secara default. Jika server dimulai ulang sebelum data buffer mencapai disk, checkpoint mungkin hilang. Untuk mengaktifkan penulisan sinkron, tambahkan "enable_checkpoint_sync_write": true, ke file konfigurasi startup Logtail (/usr/local/ilogtail/ilogtail_config.json). Atur parameter startup Logtail.