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:
|
|
inputType |
string |
Ya |
file |
Jenis sumber data. Nilai yang valid:
|
|
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.
Jika dikonfigurasi, data ditulis dalam mode shard. Bidang __source__ didukung. |
|
enableRawLog |
boolean |
Tidak |
false |
Apakah akan mengunggah log mentah.
|
|
sensitive_keys |
array |
Tidak |
None |
Konfigurasi penyamaran data. Parameter sensitive_keys. |
|
mergeType |
string |
Tidak |
topic |
Metode agregasi. Nilai yang valid:
|
|
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 bidangpassworddengan ******** 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*).
Penting
|
|
exactly_once_concurrency |
int |
Tidak |
1 |
Mengaktifkan penulisan ExactlyOnce dan mengatur jumlah pengiriman konkuren per file (0–512). Lampiran: Fitur penulisan ExactlyOnce.
Penting
|
|
enable_log_position_meta |
boolean |
Tidak |
true |
Apakah akan menambahkan metadata file log (bidang __tag__:__inode__ dan __file_offset__).
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:
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.
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
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
Catatan
|
|
dockerExcludeLabel |
JSON object |
Tidak |
None |
Daftar hitam label kontainer. Secara default kosong (tidak ada kontainer yang dikecualikan). LabelKey wajib; LabelValue opsional.
Catatan
|
|
dockerIncludeEnv |
JSON object |
Tidak |
None |
Daftar putih variabel lingkungan. Secara default kosong (mengumpulkan dari semua kontainer). EnvKey wajib; EnvValue opsional.
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.
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.