Bir Logtail yapılandırması; veri kaynağı ve toplama modu gibi günlük toplama ilkelerini tanımlar. Bu konuda eski API parametreleri açıklanmaktadır.
Eski CRD-AliyunLogConfig artık bakımı yapılmamaktadır. Bunun yerine AliyunPipelineConfig kullanın. CreateLogtailPipelineConfig - Logtail işlem hattı yapılandırması oluşturma .
Temel parametreler
|
Parametre |
Tür |
Gerekli |
Örnek |
Açıklama |
|
configName |
string |
Evet |
config-sample |
Logtail yapılandırma adı. Proje içinde benzersiz olmalı ve oluşturulduktan sonra değiştirilememelidir. Adlandırma kuralları:
|
|
inputType |
string |
Evet |
file |
Veri kaynağı türü. Geçerli değerler:
|
|
inputDetail |
JSON nesnesi |
Evet |
Yok |
Veri kaynağı yapılandırması. inputDetail parametreleri. |
|
outputType |
string |
Evet |
LogService |
Çıkış hedefi. Yalnızca LogService desteklenir. |
|
outputDetail |
JSON nesnesi |
Evet |
Yok |
Günlük çıkış yapılandırması. outputDetail parametreleri. |
|
logSample |
string |
Hayır |
Yok |
Örnek günlük. Not
Örnek günlük 1.500 bayttan kısa olmalıdır. |
inputDetail parametreleri
Temel parametreler
|
Parametre |
Tür |
Gerekli |
Örnek |
Açıklama |
|
filterKey |
array |
Hayır |
["ip"] |
Günlük filtre alanları. Yalnızca filterRegex desenleriyle eşleşen günlükler toplanır. Not
Bu parametre yalnızca metin günlüğü toplama işlemleri içindir. |
|
filterRegex |
array |
Hayır |
["^10.*"] |
filterKey için düzenli ifade desenleri. filterRegex dizisinin uzunluğu filterKey ile eşleşmelidir. Not
Bu parametre yalnızca metin günlüğü toplama işlemleri içindir. |
|
shardHashKey |
array |
Hayır |
["__source__"] |
Veri yazma modu. Varsayılan: yük dengeleme.
Yapılandırıldığında veriler parça modunda yazılır. __source__ alanı desteklenir. |
|
enableRawLog |
boolean |
Hayır |
false |
Ham günlüklerin yüklenip yüklenmeyeceği.
|
|
sensitive_keys |
array |
Hayır |
Yok |
Veri maskeleme yapılandırması. sensitive_keys parametreleri. |
|
mergeType |
string |
Hayır |
topic |
Toplama yöntemi. Geçerli değerler:
|
|
delayAlarmBytes |
int |
Hayır |
209715200 |
Toplama gecikmesi için uyarı eşiği. Varsayılan: 209715200 (200 MB). |
|
adjustTimezone |
boolean |
Hayır |
false |
Günlük saat dilimlerinin ayarlanıp ayarlanmayacağı. Yalnızca zaman ayrıştırma yapılandırıldığında geçerlidir (örneğin, timeFormat ayarlandığında). |
|
logTimezone |
string |
Hayır |
GMT+08:00 |
Saat dilimi ofseti. Biçim: GMT+SS:DD (doğu) veya GMT-SS:DD (batı). Örnek: UTC+8 için GMT+08:00. |
|
advanced |
JSON nesnesi |
Hayır |
Yok |
Gelişmiş özellik yapılandırması. advanced parametreleri. |
sensitive_keys parametreleri
-
Parametreler
Parametre
Tür
Gerekli
Örnek
Açıklama
key
string
Evet
content
Günlük alanının adı.
type
string
Evet
const
Veri maskeleme yöntemi. Geçerli değerler:
-
const: Hassas içeriği const alanının değeriyle değiştirir.
-
md5: Hassas içeriği karşılık gelen MD5 hash değeriyle değiştirir.
regex_begin
string
Evet
'password':'
Hassas içeriği bulmak için kullanılan düzenli ifade ön eki. RE2 sözdizimi kullanır.
regex_content
string
Evet
[^']*
Hassas içerik için düzenli ifade. RE2 sözdizimi kullanır.
all
boolean
Evet
true
Alandaki tüm hassas içeriğin değiştirilip değiştirilmeyeceği.
-
true (önerilen): Tüm hassas içeriği değiştirir.
-
false: Yalnızca ilk eşleşmeyi değiştirir.
const
string
Hayır
"****"
type parametresini const olarak ayarlarsanız bu parametre gereklidir.
-
-
Yapılandırma örneği
Örneğin, bir günlükteki content alanının değeri
[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}]ise, sensitive_keys parametresini aşağıdaki gibi ayarlayarakpasswordalanının değerini **** ile değiştirebilirsiniz.sensitive_keys = [{"all": true, "const": "********", "regex_content": "[^']*", "regex_begin": "'password':'", "type": "const", "key": "content"}] -
Örnek günlük
[{'account':'1812213231432969','password':'********'}, {'account':'1812213685634','password':'********'}]
Gelişmiş parametreler
|
Parametre |
Tür |
Gerekli |
Örnek |
Açıklama |
|
enable_root_path_collection |
boolean |
Hayır |
false |
Windows kök dizinlerinden (örneğin, D:\log*) toplamanın izin verilip verilmeyeceği.
Önemli
|
|
exactly_once_concurrency |
int |
Hayır |
1 |
ExactlyOnce yazmayı etkinleştirir ve dosya başına eşzamanlı gönderim sayısını (0-512) ayarlar. Ek: ExactlyOnce yazma özelliği.
Önemli
|
|
enable_log_position_meta |
boolean |
Hayır |
true |
Günlük dosyası meta verilerinin (__tag__:__inode__ ve __file_offset__ alanları) eklenip eklenmeyeceği.
Not
Bu özellik yalnızca Logtail 1.0.21 ve sonraki sürümlerde desteklenir. |
|
specified_year |
uint |
Hayır |
0 |
Yılı eksik olan günlük zaman damgalarını tamamlar. Geçerli değerler:
Not
Bu özellik yalnızca Logtail 1.0.21 ve sonraki sürümlerde desteklenir. |
|
force_multiconfig |
boolean |
Hayır |
false |
Bu yapılandırmanın, diğer yapılandırmalar tarafından zaten eşleştirilmiş dosyaları toplamasına izin verilip verilmeyeceği. Varsayılan: false. Bir dosyanın iki yapılandırma tarafından farklı Logstore'lara toplandığı çoklu yazma senaryoları için kullanın. |
|
raw_log_tag |
string |
Hayır |
__raw__ |
Ham günlükleri depolamak için kullanılan alan adı. Varsayılan: __raw__. |
|
blacklist |
object |
Hayır |
Yok |
Toplama kara liste yapılandırması. blacklist parametreleri. |
|
tail_size_kb |
int |
Hayır |
1024 |
Yeni dosyalar için başlangıç toplama boyutu; okuma başlangıç konumunu belirler. Varsayılan: 1024 KB.
Aralık: 0-10485760 KB. |
|
batch_send_interval |
int |
Hayır |
3 |
Saniye cinsinden toplu gönderim aralığı. Varsayılan: 3. |
|
max_rotate_queue_size |
int |
Hayır |
20 |
Tek dosya döndürme kuyruğu uzunluğu. Varsayılan: 20. |
|
enable_precise_timestamp |
boolean |
Hayır |
false |
Yüksek hassasiyetli zamanın çıkarılıp çıkarılmayacağı. Varsayılan: false. Etkinleştirildiğinde Logtail zaman alanını milisaniye düzeyinde bir zaman damgasına ayrıştırır ve bunu precise_timestamp_key alanında depolar. Not
|
|
precise_timestamp_key |
string |
Hayır |
"precise_timestamp" |
Yüksek hassasiyetli zaman damgasını depolamak için kullanılan alan. Varsayılan: precise_timestamp. |
|
precise_timestamp_unit |
string |
Hayır |
"ms" |
Yüksek hassasiyetli zaman damgasının birimi. Varsayılan: ms. Geçerli değerler: ms (milisaniye), us (mikrosaniye), ns (nanosaniye). |
Aşağıdaki tabloda blacklist parametreleri açıklanmaktadır.
|
|
|
|
|
|
|
|
|
|
|
Dizin kara listesi (mutlak yollar). Asterisk (*) joker karakterlerini destekler. Örneğin, yolu /home/admin/dir1 olarak yapılandırırsanız /home/admin/dir1 dizinindeki tüm içerik toplama sırasında yoksayılır. |
|
|
|
|
|
|
|
|
|
|
|
Dosya yolu kara listesi (mutlak yollar). Asterisk (*) joker karakterlerini destekler. Yolu /home/admin/private*.log olarak yapılandırırsanız /home/admin/ dizinindeki "private" ile başlayan ve ".log" ile biten tüm dosyalar toplama sırasında yoksayılır. |
Metin günlüklerine özel yapılandırmalar
Temel parametreler
|
Parametre |
Tür |
Gerekli |
Örnek |
Açıklama |
|
logType |
string |
Evet |
common_reg_log |
Günlük toplama modu. Geçerli değerler:
|
|
logPath |
string |
Evet |
/var/log/http/ |
Günlük dosyası dizini yolu. |
|
filePattern |
string |
Evet |
access*.log |
Günlük dosyası adı deseni. |
|
topicFormat |
string |
Evet |
none |
Konu oluşturma yöntemi. Geçerli değerler:
|
|
timeFormat |
string |
Hayır |
%Y/%m/%d %H:%M:%S |
Günlük zaman biçimi. Zaman biçimleri. |
|
preserve |
boolean |
Hayır |
true |
Günlük dosyası zaman aşımı davranışı. Geçerli değerler:
|
|
preserveDepth |
integer |
Hayır |
1 |
preserve parametresi false olduğunda zaman aşımı için maksimum dizin derinliği. Aralık: 1-3. |
|
fileEncoding |
string |
Hayır |
utf8 |
Günlük dosyası kodlaması. Geçerli değerler: utf8, gbk. |
|
discardUnmatch |
boolean |
Hayır |
true |
Eşleşmeyen günlüklerin atılıp atılmayacağı. Geçerli değerler:
|
|
maxDepth |
int |
Hayır |
100 |
İzlenen günlük dizininin maksimum derinliği (0-1.000). 0 değeri yalnızca mevcut dizini izler. |
|
delaySkipBytes |
int |
Hayır |
0 |
Gecikmiş verilerin atılması için eşik. Geçerli değerler:
|
|
dockerFile |
boolean |
Hayır |
false |
Hedef dosyanın bir konteyner içinde olup olmadığı. Varsayılan: false. |
|
dockerIncludeLabel |
JSON nesnesi |
Hayır |
Yok |
Konteyner etiketi beyaz listesi. Varsayılan olarak boştur (tüm konteynerlerden toplar). LabelKey gereklidir; LabelValue isteğe bağlıdır.
Not
|
|
dockerExcludeLabel |
JSON nesnesi |
Hayır |
Yok |
Konteyner etiketi kara listesi. Varsayılan olarak boştur (hiçbir konteyner hariç tutulmaz). LabelKey gereklidir; LabelValue isteğe bağlıdır.
Not
|
|
dockerIncludeEnv |
JSON nesnesi |
Hayır |
Yok |
Ortam değişkeni beyaz listesi. Varsayılan olarak boştur (tüm konteynerlerden toplar). EnvKey gereklidir; EnvValue isteğe bağlıdır.
Not
Birden fazla beyaz liste girişi VEYA ilişkisine sahiptir. Bir konteyner ortam değişkenleri beyaz liste girişlerinden herhangi birini karşılarsa eşleşir. |
|
dockerExcludeEnv |
JSON nesnesi |
Hayır |
Yok |
Ortam değişkeni kara listesi. Varsayılan olarak boştur (hiçbir konteyner hariç tutulmaz). EnvKey gereklidir; EnvValue isteğe bağlıdır.
Not
Birden fazla kara liste girişi VEYA ilişkisine sahiptir. Bir konteyner ortam değişkenleri anahtar-değer çiftlerinden herhangi birini karşılarsa hariç tutulur. |
Tam düzenli ifade ve basit mod parametreleri
-
Parametreler
Parametre
Tür
Gerekli
Örnek
Açıklama
key
array
Evet
["content"]
Ham günlük içeriği için alan adları.
logBeginRegex
string
Hayır
.*
Bir günlük girdisinin başlangıcı için düzenli ifade. Yalnızca tek bir düzenli ifade desteklenir. Birden fazla satır başı biçimini eşleştirmek için desenleri dikey çubuk (|) operatörünü kullanarak tek bir düzenli ifadede birleştirin.
regex
string
Hayır
(.*)
Alan çıkarma için düzenli ifade.
-
Yapılandırma örneği
{ "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" } }
JSON modu parametreleri
|
|
|
|
|
|
|
|
|
|
|
|
Ayırıcı modu parametreleri
-
Parametreler
Parametre
Tür
Gerekli
Örnek
Açıklama
separator
string
Hayır
,
Günlük biçiminize uygun ayırıcıyı seçin. Ayırıcı modunda günlükleri toplama.
quote
string
Evet
\
Ayırıcı içeren alanları sarmak için kullanılan tırnak karakteri. İçerilen içerik tek bir alan olarak ayrıştırılır. Ayırıcı modunda günlükleri toplama.
key
array
Evet
[ "ip", "time"]
Ham günlük içeriği için alan adları.
timeKey
string
Evet
time
Zaman alanı olarak kullanılacak key listesinden alınan alan.
autoExtend
boolean
Hayır
true
Bölünmüş alan sayısı yapılandırılan anahtarlardan daha az olduğunda yükleme yapılıp yapılmayacağı.
Örneğin, bir günlük 11|22|33|44|55 şeklindedir, ayırıcı dikey çubuktur (|) ve günlük içeriği 11, 22, 33, 44 ve 55 olarak ayrıştırılır. Anahtarlar sırasıyla A, B, C, D ve E olarak ayarlanır.
-
true: 11|22|33|55 günlüğünü toplarken 55 değeri Simple Log Service'e D anahtarı için değer olarak yüklenir.
-
false: 11|22|33|55 günlüğünü toplarken alan sayısı anahtar sayısıyla eşleşmediği için bu günlük girdisi atılır.
-
-
Yapılandırma örneği
{ "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" } }
Eklenti modu parametreleri
-
Parametreler
Logtail eklentisi günlük toplama parametreleri.
Parametre
Tür
Gerekli
Örnek
Açıklama
plugin
JSON nesnesi
Evet
Yok
Eklenti tabanlı günlük toplama için gereklidir. Veri toplamak için Logtail eklentilerini kullanma. -
Yapılandırma örneği
{ "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" } }
outputDetail parametreleri
Hedef proje ve Logstore parametreleri.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ek: ExactlyOnce yazma özelliği
Etkinleştirildiğinde Logtail dosya düzeyindeki kontrol noktalarını diske kaydeder ve yinelenen yazmaları önlemek için SLS artımlı sıra numaralarını kullanır. İşlem hataları veya yeniden başlatmalardan sonra kontrol noktaları dosya başına yeniden işleme kapsamını belirler. Bu durum disk yazma ek yükünü artırır. Sınırlamalar:
Kontrol noktaları yerel diskte depolanır. Disk dolu veya bozuksa kurtarma başarısız olabilir.
Kontrol noktaları yalnızca dosya meta verilerini kaydeder. Dosya silinirse veya değiştirilirse kurtarma mümkün olmayabilir.
-
ExactlyOnce SLS'deki yazma sıra numaralarına bağlıdır. Her parça en fazla 10.000 kayıt destekler. Aşılırsa daha eski kayıtların yerine yenileri gelir. Güvenilirliği sağlamak için Logstore başına
Aktif dosya sayısı × Logtail örnek sayısıdeğerini 9.500'ün altında tutun.Aktif dosyalar: Okunan ve gönderilen dosyalar. Aynı mantıksal ada sahip döndürülmüş dosyalar tek bir aktif dosya olarak sayılır.
Logtail örnekleri: Logtail işlem sayısı. Genellikle sunucu başına bir tane.
Logtail varsayılan olarak kontrol noktası yazmaları için sync çağrısı yapmaz. Sunucu arabelleğe alınmış veriler diske ulaşmadan önce yeniden başlatılırsa kontrol noktaları kaybolabilir. Eşzamanlı yazmaları etkinleştirmek için Logtail başlangıç yapılandırma dosyasına (/usr/local/ilogtail/ilogtail_config.json) "enable_checkpoint_sync_write": true, ekleyin. Logtail başlangıç parametrelerini ayarlama.