Logtail設定は、Logtailがログを収集するために使用する一連のポリシーです。 データソースや収集モードなどのパラメーターを設定して、Logtail設定をカスタマイズできます。 このトピックでは、Simple Log Service APIを使用してログを収集するときに、Logtail設定のパラメーターを設定する方法について説明します。
Logtail設定の基本パラメータ
パラメーター | データ型 | 必須 | 例 | 説明 |
configName | String | 課金されます | config-sample | Logtail設定の名前。 名前は、Logtail構成が属するプロジェクト内で一意である必要があります。 Logtail設定の作成後、Logtail設定の名前を変更することはできません。 名前の条件は以下の通りです。
|
inputType | String | 課金されます | file | データソースのタイプ。 有効な値:
|
inputDetail | JSON object | 課金されます | なし | データソースの詳細な設定。 詳細については、「inputDetail」をご参照ください。 |
outputType | String | 課金されます | LogService | 収集されたログの出力タイプ。 値はLogServiceとして固定されています。 収集したログはSimple Log Serviceにのみアップロードできます。 |
outputDetail | JSON object | 課金されます | なし | 収集されたログの詳細な設定。 詳細については、「outputDetail」をご参照ください。 |
logSample | String | ✕ | なし | サンプルログ。 |
InputDetail
基本パラメーター
パラメーター | データ型 | 必須 | 例 | 説明 |
filterKey | array | 課金されません | ["ip"] | ログのフィルタリングに使用されるフィールド。 ログのフィールドの値がfilterRegexパラメーターで指定された正規表現と一致する場合にのみ、ログが収集されます。 |
filterRegex | array | 課金されません | ["^ 10.*"] | フィールドの値を一致させるために使用される正規表現。 フィールドは、filterKeyパラメーターで指定します。 filterRegexパラメーターの値の要素数は、filterKeyパラメーターの値の要素数と同じである必要があります。 |
shardHashKey | array | 課金されません | ["__source__"] | データの書き込みに使用されるモード。 デフォルトでは、データは負荷分散モードでSimple Log Serviceに書き込まれます。 詳細については、「負荷分散モード」をご参照ください。 このパラメーターを設定すると、データはシャードモードでSimple Log Serviceに書き込まれます。 詳細については、「シャードモード」をご参照ください。 __source__フィールドがサポートされています。 |
enableRawLog | Boolean | 課金されません | false | 生ログをアップロードするかどうかを指定します。 有効な値:
|
sensitive_keys | array | ✕ | なし | データをマスクするために使用される構成。 詳細については、「sensitive_keys」をご参照ください。 |
mergeType | String | 課金されません | topic | データの集計に使用されるメソッド。 有効な値:
|
delayAlarmBytes | int | 課金されません | 209715200 | ログ収集の進行状況のアラートしきい値。 デフォルト値: 209715200 この値は、指定された期間内に200 MBのデータが収集されなかった場合にアラートがトリガーされることを示します。 |
adjustTimezone | Boolean | 課金されません | false | ログのタイムゾーンを変更するかどうかを指定します。 このパラメーターは、時間解析機能が有効な場合にのみ有効です。 たとえば、timeFormatパラメーターを設定する場合、adjustTimezoneパラメーターも設定できます。 |
logTimezone | String | 課金されません | GMT + 08:00 | タイムゾーンのオフセット。 フォーマット: GMT + HH:MMまたはGMT-HH:MM。たとえば、タイムゾーンがUTC + 8のログを収集する場合は、値をGMT + 08:00に設定します。 |
高度な | JSON object | ✕ | なし | 高度な機能。 詳細については、「advanced」をご参照ください。 |
sensitive_keys
パラメーター
パラメーター
データ型
必須
例
説明
キー
String
課金されます
content
ログフィールドの名前。
タイプ
String
課金されます
const
ログフィールドの内容をマスクするために使用されるメソッド。 有効な値:
const: 機密コンテンツはconstフィールドの値に置き換えられます。
md5: 機密コンテンツは、コンテンツに対して生成されたMD5ハッシュ値に置き換えられます。
regex_begin
String
課金されます
'パスワード':'
機密コンテンツのプレフィックスを一致させるために使用される正規表現。 正規表現は、機密コンテンツを見つけるために使用されます。 RE2構文を使用して正規表現を指定する必要があります。 詳細については、RE2構文をご参照ください。
regex_content
String
課金されます
[^']*
機密コンテンツの照合に使用される正規表現。 RE2構文を使用して正規表現を指定する必要があります。 詳細については、RE2構文をご参照ください。
すべて
Boolean
課金されます
true
ログフィールドのすべての機密コンテンツを置き換えるかどうかを指定します。 有効な値:
true: ログフィールドのすべての機密コンテンツを置き換えます。 これは推奨値です。
false: 指定された正規表現がログフィールドで初めて一致する機密コンテンツのみを置き換えます。
const
String
課金されません
"********"
typeパラメーターをconstに設定した場合、このパラメーターを設定する必要があります。
設定例
マスクしたい場合
パスワード
で、コンテンツ値がであるフィールド[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}]
パスワードの値を ******** に置き換え、sensitive_keysパラメータ:sensitive_keys = [{"all": true, "const": "********", "regex_content": "[^']*", "regex_begin": "'password':'", "type": "const", "key": "content"}]
サンプルログ
[{'account':'1812213231432969','password':'********'}, {'account':'1812213685634','password':'********'}]
高度な
パラメーター | データ型 | 必須 | 例 | 説明 |
enable_root_path_コレクション | Boolean | 課金されません | false | D:\log * などのWindowsルートディレクトリからのデータ収集を許可するかどうかを指定します。 有効な値:
重要
|
exactly_once_並行性 | int | 課金されません | 1 | ExactlyOnce書き込み機能を有効にするかどうかを指定します。 ExactlyOnce書き込み機能を使用すると、Logtailがファイルからデータを収集するときに同時に送信できるロググループの最大数を指定できます。 有効な値: 0 ~ 512 詳細については、「追加情報: ExactlyOnce書き込み機能」をご参照ください。 有効な値:
重要
|
enable_log_position_meta | Boolean | 課金されません | true | ファイルから収集される各ログに、ソースログファイルのメタデータ情報を追加するかどうかを指定します。 メタデータ情報は、__tag __:__ inode__ および __file_offset__ フィールドを含む。 有効な値:
説明 Logtail V1.0.21以降のみがこのパラメーターをサポートしています。 |
指定された_year | uint | 課金されません | 0 | 生のログの時刻に年情報が含まれていない場合にログ時刻を補足するために使用される年。 現在の年または別の年を指定できます。 有効な値:
説明 Logtail V1.0.21以降のみがこのパラメーターをサポートしています。 |
force_multiconfig | Boolean | 課金されません | false | LogtailがLogtail設定を使用して、他のLogtail設定に基づいて一致するファイルからデータを収集できるかどうかを指定します。 デフォルト値:false Logtailが異なるLogtail設定を使用してファイルからデータを収集する場合は、このパラメーターを設定できます。 たとえば、2つのLogtail設定を使用して、ファイルから2つのLogstoreにデータを収集するようにこのパラメーターを設定できます。 |
raw_log_タグ | String | 課金されません | __raw__ | アップロードされる生ログを格納するために使用されるフィールド。 デフォルト値: __raw__ |
ブラックリスト | object | ✕ | なし | ブラックリスト設定。 詳細については、「ブラックリストのパラメーター」をご参照ください。 |
tail_size_kb | int | 課金されません | 1024 | Logtailが最初にファイルを読み取ったときにファイルから収集されるデータのサイズ。 この値は、Logtailがデータを収集する開始位置を決定します。 Logtailが初めてファイルを読み取るとき、Logtailはデフォルトでファイル内の最大1,024 KBのデータを読み取ることができます。
有効な値: 0 ~ 10485760 (単位:KB) 値を変更できます。 |
batch_send_interval | int | 課金されません | 3 | 集計されたデータが送信される間隔。 デフォルト値: 3。 単位は秒です。 |
max_rotate_queue_サイズ | int | 課金されません | 20 | ファイルがローテーションされるキューの最大長。 デフォルト値は 20 です。 |
enable_precise_timestamp | Boolean | 課金されません | false | 高精度で時間値を抽出するかどうかを指定します。 このパラメーターを設定に含めない場合、システムはデフォルトで値falseを使用します。 値falseは、精度の高い時間値が抽出されないことを指定します。 このパラメーターをtrueに設定すると、Logtailは指定された時間値をミリ秒の精度でタイムスタンプに自動的に解析し、precise_timestamp_keyパラメーターで指定されたフィールドにタイムスタンプを格納します。 説明
|
precise_timestamp_キー | String | 課金されません | "precise_timestamp" | 高精度でタイムスタンプを保存するフィールド。 このパラメーターを設定に含めない場合、システムはデフォルトでprecise_timestampフィールドを使用します。 |
precise_timestamp_unit | String | 課金されません | "ms" | 高精度のタイムスタンプの単位。 このパラメーターを設定に含めない場合、システムはデフォルトでmsを使用します。 有効な値: ms、us、およびns。 |
次の表に、blacklistのパラメーターを示します。
パラメーター | データ型 | 必須 | 例 | 説明 |
dir_blacklist | array | 課金されません | ["/home/admin/dir1", "/home/admin/dir2 *"] | ディレクトリのブラックリスト。絶対パスでなければなりません。 アスタリスク (*) をワイルドカード文字として使用して、複数のディレクトリを照合できます。 たとえば、/home/admin/dir1を指定した場合、ログ収集時に /home/admin/dir1ディレクトリ内のすべてのファイルがスキップされます。 |
filename_blacklist | array | 課金されません | ["app *.log", "パスワード"] | ファイル名のブラックリスト。 このパラメーターで指定した名前に一致するファイルは、ファイルが属するディレクトリに関係なく、ログ収集時にスキップされます。 アスタリスク (*) をワイルドカード文字として使用して、複数のファイル名を照合できます。 |
filepath_blacklist | array | 課金されません | ["/home/admin/private *.log"] | ファイルパスのブラックリスト。絶対パスでなければなりません。 アスタリスク (*) をワイルドカード文字として使用して、複数のファイルを照合できます。 たとえば、/home/admin/private *.logを指定すると、名前がprivateで始まり、で終わるすべてのファイルが指定されます。/home/admin/ ディレクトリのログは、ログ収集中にスキップされます。 |
テキストログ収集のLogtailに固有の構成
基本パラメーター
パラメーター | データ型 | 必須 | 例 | 説明 |
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 | ログ時刻の形式。 詳細については、「時間形式」をご参照ください。 |
保存 | Boolean | 課金されません | true | ログファイルでタイムアウトメカニズムを使用するかどうかを指定します。 ログファイルが指定された期間内に更新されない場合、Logtailはファイルがタイムアウトしたと見なします。 有効な値:
|
preserveDepth | integer | 課金されません | 1 | ファイルがタイムアウトメカニズムを使用して監視されるディレクトリの最大レベル。 preserveパラメーターをfalseに設定した場合、このパラメーターを設定する必要があります。 有効な値: 1 ~ 3。 |
fileEncoding | String | 課金されません | utf8 | ログファイルのエンコード形式。 有効な値: utf8とgbk。 |
discardUnmatch | Boolean | 課金されません | true | 一致しなかったログを破棄するかどうかを指定します。 有効な値:
|
maxDepth | int | 課金されません | 100 | 監視されるディレクトリの最大レベル。 有効な値: 0 ~ 1000 値0は、指定したログファイルディレクトリのみを監視することを示します。 |
delaySkipBytes | int | 課金されません | 0 | 指定された期間内にデータが収集されない場合にデータを破棄するかどうかを判断するために使用されるしきい値。 有効な値:
|
dockerFile | Boolean | 課金されません | false | コンテナファイルからログを収集するかどうかを指定します。 デフォルト値:false |
dockerIncludeLabel | JSON object | ✕ | なし | コンテナーラベルのホワイトリスト。 ホワイトリストは、データを収集するコンテナを指定します。 デフォルトでは、このパラメーターは空です。これは、すべてのコンテナーからログまたはstdoutおよびstderrを収集することを示します。 コンテナーラベルのホワイトリストを設定する場合、LabelKeyパラメーターは必須で、LabelValueパラメーターはオプションです。
説明
|
dockerExcludeLabel | JSON object | ✕ | なし | コンテナーラベルのブラックリスト。 ブラックリストには、データを除外するコンテナを指定します。 デフォルトでは、このパラメーターは空です。これは、すべてのコンテナーからデータを収集することを示します。 コンテナーラベルブラックリストを設定する場合、LabelKeyパラメーターは必須で、LabelValueパラメーターはオプションです。
説明
|
dockerIncludeEnv | JSON object | ✕ | なし | 環境変数のホワイトリスト。 ホワイトリストは、データを収集するコンテナを指定します。 デフォルトでは、このパラメーターは空です。これは、すべてのコンテナーからログまたはstdoutおよびstderrを収集することを示します。 環境変数ホワイトリストを設定する場合、EnvKeyパラメーターは必須で、EnvValueパラメーターはオプションです。
説明 キーと値のペアは論理OR関係にあります。 コンテナの環境変数が指定されたキーと値のペアのいずれかと一致する場合、コンテナは一致します。 |
dockerExcludeEnv | JSON object | ✕ | なし | 環境変数ブラックリスト。 ブラックリストには、データを除外するコンテナを指定します。 デフォルトでは、このパラメーターは空です。これは、すべてのコンテナーからデータを収集することを示します。 環境変数ブラックリストを設定する場合、EnvKeyパラメーターは必須で、EnvValueパラメーターはオプションです。
説明 キーと値のペアは論理OR関係にあります。 コンテナの環境変数が指定されたキーと値のペアのいずれかと一致する場合、コンテナは除外されます。 |
フル正規表現モードとシンプルモードのログ収集に固有の設定
パラメーター
パラメーター
データ型
必須
例
説明
キー
array
課金されます
["content"]
生ログに指定されているフィールド。
logBeginRegex
String
課金されません
.*
ログの最初の行の先頭を一致させるために使用される正規表現。
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 | 時間フィールドを指定するために使用されるキー。 |
区切り文字モードのログ収集に固有の構成
パラメーター
パラメーター
データ型
必須
例
説明
セパレータ
String
課金されません
,
区切り文字。 収集するログの形式に基づいて区切り文字を選択する必要があります。 詳細については、「区切り文字モードでのログの収集」をご参照ください。
引用
String
課金されます
\
引用だ ログフィールドに区切り文字が含まれている場合は、フィールドを囲む引用符を指定する必要があります。 Simple Log Serviceは、引用符のペアで囲まれたコンテンツを完全なフィールドに解析します。 収集するログの形式に基づいて引用を選択する必要があります。 詳細については、「区切り文字モードでのログの収集」をご参照ください。
キー
array
課金されます
["ip", "time"]
生ログに指定されているフィールド。
timeKey
String
課金されます
time
時刻フィールドです。 keyの値のフィールドをtimeフィールドとして指定する必要があります。
autoExtend
Boolean
課金されません
true
ログから解析されたフィールドの数が指定されたキーの数より少ない場合、ログをアップロードするかどうかを指定します。
たとえば、区切り文字として縦バー (|) を指定すると、ログ11 | 22 | 33 | 44 | 55が11、22、33、44、55のフィールドに解析されます。 キーをA、B、C、D、およびEに設定できます。
true: ログ11 | 22 | 33 | 55がSimple log Serviceにアップロードされ、55がDキーの値としてアップロードされます。
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プラグインに固有の設定
パラメーター
次の表に、プラグインを使用したログ収集に固有の設定を示します。
パラメーター
データ型
必須
例
説明
プラグイン
JSON object
課金されます
なし
Logtailプラグインを使用してログを収集する場合は、このパラメーターを設定する必要があります。 詳細については、「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
outputDetailは、収集されたログを格納するプロジェクトとLogstoreを指定するために使用されます。
パラメーター | データ型 | 必須 | 例 | 説明 |
projectName | String | 課金されます | my-project | プロジェクトの名前。 名前は、APIリクエストで指定するプロジェクトの名前と同じである必要があります。 |
logstoreName | String | 課金されます | my-logstore | ログストアの名前 |
追加情報: ExactlyOnce書き込み機能
ExactlyOnce書き込み機能を有効にすると、Logtailは、Logtailがインストールされているサーバーのディスクに、きめ細かいチェックポイントをファイルごとに記録します。 ログ収集中にプロセスエラーやサーバーの再起動などの例外が発生した場合、Logtailはチェックポイントを使用して、ログ収集の再開時に各ファイルで処理する必要のあるデータの範囲を決定し、Simple log Serviceによって提供される増分シーケンス番号を使用して、重複データが送信されないようにします。 ただし、ExactlyOnce書き込み機能はディスク書き込みリソースを消費します。 制限事項
チェックポイントは、Logtailがインストールされているサーバーのディスクに保存されます。 ディスクに空き容量がないか、障害が発生したためにチェックポイントが失われた場合、チェックポイントを回復できません。
チェックポイントは、ファイルのメタデータ情報のみを記録します。 チェックポイントはファイルのデータを記録しません。 ファイルが削除または変更された場合、チェックポイントは回復されない可能性があります。
ExactlyOnce書き込み機能は、Simple Log Serviceによって記録された現在の書き込みシーケンス番号に基づいています。 各シャードは10,000レコードのみをサポートします。 制限を超えると、以前のレコードが置き換えられます。 信頼性を確保するには、次の式を使用して計算された値が9500を超えないようにします。値=同じLogstoreに書き込まれるアクティブなファイルの数 × Logtailインスタンスの数。 値と9500の間にギャップを確保することを推奨します。
アクティブなファイルの数: 読み取りおよび送信中のファイルの数。 ログファイルのローテーション中に生成され、同じ論理ファイル名を持つファイルは、シリアルモードで送信されます。 これらのファイルは1つのアクティブファイルと見なされます。
Logtailインスタンスの数: Logtailプロセスの数。 デフォルトでは、各サーバーは1つのLogtailインスタンスをホストします。 Logtailインスタンスの数は、サーバーの数と同じです。
デフォルトでは、Logtailがチェックポイントをディスクに書き込むと、syncコマンドは実行されません。 これにより、パフォーマンスの確保に役立ちます。 ただし、サーバーの再起動時にバッファリングされたデータがディスクに書き込まれない場合、チェックポイントが失われる可能性があります。 同期ベースの書き込み機能を有効にするには、Logtailのスタートアップ設定ファイル /usr/local/ilogtail/ilogtail_config.jsonに "enable_checkpoint_sync_write":
を追加します。 詳細については、「Logtailの起動パラメーターの設定」をご参照ください。