Logtail 構成は、データソースや収集モードなどのログ収集ポリシーを定義します。このトピックでは、レガシ API のパラメーターについて説明します。
レガシ CRD の CRD-AliyunLogConfig はメンテナンスが終了しています。代わりに AliyunPipelineConfig を使用してください。CreateLogtailPipelineConfig - Logtail パイプライン構成の作成。
基本パラメーター
|
パラメーター |
タイプ |
必須 |
例 |
説明 |
|
configName |
string |
はい |
config-sample |
Logtail 構成名。プロジェクト内で一意である必要があり、作成後は変更できません。 命名ルール:
|
|
inputType |
string |
はい |
file |
データソースタイプ。有効な値:
|
|
inputDetail |
JSON オブジェクト |
はい |
なし |
データソース構成。詳細については、「inputDetail パラメーター」をご参照ください。 |
|
outputType |
string |
はい |
LogService |
出力先。Log Service のみがサポートされています。 |
|
outputDetail |
JSON オブジェクト |
はい |
なし |
ログ出力構成。詳細については、「outputDetail パラメーター」をご参照ください。 |
|
logSample |
string |
いいえ |
なし |
サンプルログ。 説明
サンプルログの長さは 1,500 バイト未満である必要があります。 |
inputDetail パラメーター
基本パラメーター
|
パラメーター |
タイプ |
必須 |
例 |
説明 |
|
filterKey |
配列 |
いいえ |
["ip"] |
ログフィルターフィールド。filterRegex パターンに一致するログのみが収集されます。 説明
このパラメーターはテキストログ収集専用です。 |
|
filterRegex |
配列 |
いいえ |
["^10.*"] |
filterKey の正規表現パターン。filterRegex 配列の長さは filterKey と一致する必要があります。 説明
このパラメーターはテキストログ収集専用です。 |
|
shardHashKey |
配列 |
いいえ |
["__source__"] |
データ書き込みモード。デフォルト:負荷分散。
設定すると、データはシャードモードで書き込まれます。__source__ フィールドがサポートされています。 |
|
enableRawLog |
boolean |
いいえ |
false |
生ログをアップロードするかどうか。
|
|
sensitive_keys |
配列 |
いいえ |
なし |
データマスキング構成。詳細については、「sensitive_keys パラメーター」をご参照ください。 |
|
mergeType |
string |
いいえ |
topic |
集計方法。有効な値:
|
|
delayAlarmBytes |
int |
いいえ |
209715200 |
収集遅延のアラートしきい値。デフォルト:209715200 (200 MB)。 |
|
adjustTimezone |
boolean |
いいえ |
false |
ログのタイムゾーンを調整するかどうか。時刻解析が構成されている場合 (例:timeFormat が設定されている場合) にのみ適用されます。 |
|
logTimezone |
string |
いいえ |
GMT+08:00 |
タイムゾーンオフセット。フォーマット:GMT+HH:MM (東) または GMT-HH:MM (西)。例:UTC+8 の場合は GMT+08:00。 |
|
advanced |
JSON オブジェクト |
いいえ |
なし |
高度な機能構成。詳細については、「advanced パラメーター」をご参照ください。 |
sensitive_keys パラメーター
-
パラメーター
パラメーター
タイプ
必須
例
説明
key
string
はい
content
ログフィールドの名前。
type
string
はい
const
データマスキングメソッド。有効な値:
-
const:機密コンテンツを const フィールドの値に置き換えます。
-
md5:機密コンテンツを対応する MD5 ハッシュに置き換えます。
regex_begin
string
はい
'password':'
機密コンテンツを特定するための正規表現プレフィックス。RE2 構文を使用します。
regex_content
string
はい
[^']*
機密コンテンツの正規表現。RE2 構文を使用します。
all
boolean
はい
true
フィールド内のすべての機密コンテンツを置き換えるかどうか。
-
true (推奨):すべての機密コンテンツを置き換えます。
-
false:最初に一致したもののみを置き換えます。
const
string
いいえ
"********"
このパラメーターは、type を const に設定した場合に必須です。
-
-
設定例
たとえば、ログの content フィールドの値が
[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}]の場合、sensitive_keys を次のように設定することで、passwordフィールドの値を ******** に置き換えることができます。sensitive_keys = [{"all": true, "const": "********", "regex_content": "[^']*", "regex_begin": "'password':'", "type": "const", "key": "content"}] -
サンプルログ
[{'account':'1812213231432969','password':'********'}, {'account':'1812213685634','password':'********'}]
advanced パラメーター
|
パラメーター |
タイプ |
必須 |
例 |
説明 |
|
enable_root_path_collection |
boolean |
いいえ |
false |
Windows のルートディレクトリ (例:D:\log*) からの収集を許可するかどうか。
重要
|
|
exactly_once_concurrency |
int |
いいえ |
1 |
ExactlyOnce 書き込みを有効にし、ファイルごとの同時送信数を設定します (0~512)。詳細については、「付録:ExactlyOnce 書き込み機能」をご参照ください。
重要
|
|
enable_log_position_meta |
boolean |
いいえ |
true |
ログファイルのメタデータ (__tag__:__inode__ および __file_offset__ フィールド) を追加するかどうか。
説明
この機能は Logtail 1.0.21 以降でのみサポートされています。 |
|
specified_year |
uint |
いいえ |
0 |
年が欠落しているログタイムスタンプを補完します。有効な値:
説明
この機能は Logtail 1.0.21 以降でのみサポートされています。 |
|
force_multiconfig |
boolean |
いいえ |
false |
この構成が、他の構成によってすでに照合されているファイルを収集することを許可するかどうか。デフォルト:false。 ファイルが 2 つの構成によって異なる Logstore に収集されるマルチ書き込みシナリオで使用します。 |
|
raw_log_tag |
string |
いいえ |
__raw__ |
生ログを保存するためのフィールド名。デフォルト:__raw__。 |
|
blacklist |
object |
いいえ |
なし |
収集ブラックリスト構成。詳細については、「blacklist パラメーター」をご参照ください。 |
|
tail_size_kb |
int |
いいえ |
1024 |
新しいファイルの初期収集サイズで、開始読み取り位置を決定します。デフォルト:1024 KB。
範囲:0~10485760 KB。 |
|
batch_send_interval |
int |
いいえ |
3 |
集計送信間隔 (秒)。デフォルト:3。 |
|
max_rotate_queue_size |
int |
いいえ |
20 |
単一ファイルのローテーションキューの長さ。デフォルト:20。 |
|
enable_precise_timestamp |
boolean |
いいえ |
false |
高精度時刻を抽出するかどうか。デフォルト:false。 有効にすると、Logtail は時刻フィールドをミリ秒レベルのタイムスタンプに解析し、precise_timestamp_key フィールドに保存します。 説明
|
|
precise_timestamp_key |
string |
いいえ |
"precise_timestamp" |
高精度タイムスタンプを保存するフィールド。デフォルト:precise_timestamp。 |
|
precise_timestamp_unit |
string |
いいえ |
"ms" |
高精度タイムスタンプの単位。デフォルト:ms。有効な値:ms (ミリ秒)、us (マイクロ秒)、ns (ナノ秒)。 |
次の表に、blacklist のパラメーターを示します。
|
パラメーター |
タイプ |
必須 |
例 |
説明 |
|
dir_blacklist |
配列 |
いいえ |
["/home/admin/dir1", "/home/admin/dir2*"] |
ディレクトリブラックリスト (絶対パス)。アスタリスク (*) ワイルドカードをサポートします。 たとえば、パスを /home/admin/dir1 と構成した場合、/home/admin/dir1 ディレクトリ内のすべてのコンテンツは収集中に無視されます。 |
|
filename_blacklist |
配列 |
いいえ |
["app*.log", "password"] |
ファイル名ブラックリスト。一致したファイルはすべてのディレクトリから除外されます。アスタリスク (*) ワイルドカードをサポートします。 |
|
filepath_blacklist |
配列 |
いいえ |
["/home/admin/private*.log"] |
ファイルパスブラックリスト (絶対パス)。アスタリスク (*) ワイルドカードをサポートします。 パスを /home/admin/private*.log と構成した場合、/home/admin/ ディレクトリ内の "private" で始まり ".log" で終わるすべてのファイルは収集中に無視されます。 |
テキストログ固有の構成
基本パラメーター
|
パラメーター |
タイプ |
必須 |
例 |
説明 |
|
logType |
string |
はい |
common_reg_log |
ログ収集モード。有効な値:
|
|
logPath |
string |
はい |
/var/log/http/ |
ログファイルのディレクトリパス。 |
|
filePattern |
string |
はい |
access*.log |
ログファイル名パターン。 |
|
topicFormat |
string |
はい |
none |
トピック生成方法。有効な値:
|
|
timeFormat |
string |
いいえ |
%Y/%m/%d %H:%M:%S |
ログ時刻フォーマット。詳細については、「時刻フォーマット」をご参照ください。 |
|
preserve |
boolean |
いいえ |
true |
ログファイルのタイムアウト動作。有効な値:
|
|
preserveDepth |
integer |
いいえ |
1 |
preserve が false の場合のタイムアウト時の最大ディレクトリ深度。範囲:1~3。 |
|
fileEncoding |
string |
いいえ |
utf8 |
ログファイルエンコーディング。有効な値:utf8、gbk。 |
|
discardUnmatch |
boolean |
いいえ |
true |
照合に失敗したログを破棄するかどうか。有効な値:
|
|
maxDepth |
int |
いいえ |
100 |
監視対象のログディレクトリの最大深度 (0~1,000)。値 0 は現在のディレクトリのみを監視します。 |
|
delaySkipBytes |
int |
いいえ |
0 |
遅延データを破棄するしきい値。有効な値:
|
|
dockerFile |
boolean |
いいえ |
false |
対象ファイルがコンテナ内にあるかどうか。デフォルト:false。 |
|
dockerIncludeLabel |
JSON オブジェクト |
いいえ |
なし |
コンテナラベルのホワイトリスト。デフォルトでは空 (すべてのコンテナから収集)。LabelKey は必須、LabelValue はオプションです。
説明
|
|
dockerExcludeLabel |
JSON オブジェクト |
いいえ |
なし |
コンテナラベルのブラックリスト。デフォルトでは空 (除外されるコンテナなし)。LabelKey は必須、LabelValue はオプションです。
説明
|
|
dockerIncludeEnv |
JSON オブジェクト |
いいえ |
なし |
環境変数ホワイトリスト。デフォルトでは空 (すべてのコンテナから収集)。EnvKey は必須、EnvValue はオプションです。
説明
複数のホワイトリストエントリは OR 関係にあります。コンテナの環境変数がホワイトリストエントリのいずれかを満たす場合、そのコンテナは照合されます。 |
|
dockerExcludeEnv |
JSON オブジェクト |
いいえ |
なし |
環境変数ブラックリスト。デフォルトでは空 (除外されるコンテナなし)。EnvKey は必須、EnvValue はオプションです。
説明
複数のブラックリストエントリは OR 関係にあります。コンテナの環境変数がキーと値のペアのいずれかを満たす場合、そのコンテナは除外されます。 |
完全正規表現モードとシンプルモードのパラメーター
-
パラメーター
パラメーター
タイプ
必須
例
説明
key
配列
はい
["content"]
生ログコンテンツのフィールド名。
logBeginRegex
string
いいえ
.*
ログエントリの開始を示す正規表現。単一の正規表現のみがサポートされています。複数の行頭フォーマットに一致させるには、縦棒 (|) 演算子を使用してパターンを 1 つの正規表現に結合します。
regex
string
いいえ
(.*)
フィールド抽出のための正規表現。
-
設定例
{ "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 モードのパラメーター
|
パラメーター |
タイプ |
必須 |
例 |
説明 |
|
timeKey |
string |
いいえ |
time |
時刻フィールドのキー名。 |
デリミタモードのパラメーター
-
パラメーター
パラメーター
タイプ
必須
例
説明
separator
string
いいえ
,
ログフォーマットに一致する区切り文字を選択します。詳細については、「デリミタモードでログを収集する」をご参照ください。
quote
string
はい
\
区切り文字を含むフィールドを囲むための引用符。囲まれたコンテンツは 1 つのフィールドとして解析されます。詳細については、「デリミタモードでログを収集する」をご参照ください。
key
配列
はい
[ "ip", "time"]
生ログコンテンツのフィールド名。
timeKey
string
はい
time
key リストから時刻フィールドとして使用するフィールド。
autoExtend
boolean
いいえ
true
分割されたフィールドが構成されたキーより少ない場合にアップロードするかどうか。
たとえば、ログが 11|22|33|44|55 で、区切り文字が縦棒 (|) の場合、ログコンテンツは 11、22、33、44、55 に解析されます。キーはそれぞれ A、B、C、D、E に設定されます。
-
true:ログ 11|22|33|55 を収集する場合、55 はキー D の値として Simple Log Service にアップロードされます。
-
false:ログ 11|22|33|55 を収集する場合、フィールド数がキーの数と一致しないため、このログエントリは破棄されます。
-
-
設定例
{ "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" } }
プラグインモードのパラメーター
-
パラメーター
Logtail プラグインのログ収集に関するパラメーター。
パラメーター
タイプ
必須
例
説明
plugin
JSON オブジェクト
はい
なし
プラグインベースのログ収集に必須です。詳細については、「Logtail プラグインを使用してデータを収集する」をご参照ください。
-
設定例
{ "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 パラメーター
送信先のプロジェクトと Logstore のパラメーター。
|
パラメーター |
タイプ |
必須 |
例 |
説明 |
|
projectName |
string |
はい |
my-project |
プロジェクト名。リクエスト内のプロジェクトと一致する必要があります。 |
|
logstoreName |
string |
はい |
my-logstore |
Logstore 名。 |
付録:ExactlyOnce 書き込み機能
有効にすると、Logtail はファイルレベルのチェックポイントをディスクに記録し、SLS の増分シーケンス番号を使用して重複書き込みを防ぎます。プロセスのエラーや再起動後、チェックポイントはファイルごとの再処理範囲を決定します。これにより、ディスク書き込みのオーバーヘッドが増加します。使用制限:
-
チェックポイントはローカルディスクに保存されます。ディスクが満杯または破損している場合、回復が失敗する可能性があります。
-
チェックポイントはファイルメタデータのみを記録します。ファイルが削除または変更された場合、回復できない可能性があります。
-
ExactlyOnce は SLS の書き込みシーケンス番号に依存します。各シャードは最大 10,000 レコードをサポートします。これを超えると、古いレコードが置き換えられます。信頼性を確保するため、Logstore ごとの `アクティブなファイル数 × Logtail インスタンス数` を 9,500 未満に保ってください。
-
アクティブなファイル:読み取りおよび送信中のファイル。同じ論理名を持つローテーションされたファイルは、1 つのアクティブなファイルとしてカウントされます。
-
Logtail インスタンス:Logtail プロセスの数。通常、サーバーごとに 1 つです。
-
Logtail はデフォルトでチェックポイント書き込みに `sync` を呼び出しません。バッファリングされたデータがディスクに到達する前にサーバーが再起動すると、チェックポイントが失われる可能性があります。同期書き込みを有効にするには、Logtail の起動設定ファイル (/usr/local/ilogtail/ilogtail_config.json) に "enable_checkpoint_sync_write": true, を追加します。詳細については、「Logtail 起動パラメーターの設定」をご参照ください。