1 つのプロジェクトに対して 100 個まで Logtail 設定を作成できます。 設定名はプロジェクトの中で一意にする必要があります。
Logtail 設定を使って、ログ収集の場所、メソッド、パラメーターを指定できます。
Logtail 設定の命名規則は以下のとおりです。
- 名前には、小文字、数字、ハイフン ( - )、アンダースコア ( _ ) のみ使用できます。
- 名前の最初と最後は、小文字または数字にする必要があります。
- 名前の長さは 3 ~ 63 文字にする必要があります。
こちらが設定例です。
{
"configName": "logConfigName",
"outputType": "LogService",
"inputType": "file",
"inputDetail": {
"logPath": "/logPath",
"filePattern": "access.log",
"logType": "json_log",
"topicFormat": "default",
"discardUnmatch": false,
"enableRawLog": true,
"fileEncoding": "gbk",
"maxDepth": 10
},
"outputDetail": {
"projectName": "test-project",
"logstoreName": "test-logstore"
}
}
こちらは JSON モードの設定例です。 詳細については「設定例」をご参照ください。
Logtail 設定パラメーター
パラメーター | データ型 | 必須 / 省略可能 | 説明 |
---|---|---|---|
configName | String | 必須 | Logtail 設定名。プロジェクト内で一意です。 |
logSample | String | 省略可能 | Logtail 設定のログサンプル。 |
inputType | String | 必須 | Logtail 設定の入力タイプ 有効値:plugin と file |
inputDetail | Object | 必須 | 入力タイプの設定 |
outputType | String | 必須 | Logtail 設定の出力タイプ 有効値:LogService |
outputDetail | Object | 必須 | 出力タイプの設定 |
createTime (output-only) | Int32 | 省略可能 | Logtail 設定の作成日時 サーバーから返されるパラメーターです。設定はできません。 |
lastModifyTime (output-only) | Int32 | 省略可能 | Logtail 設定の最終更新日時 サーバーから返されるパラメーターです。設定はできません。 |
inputDetail パラメーターの基本設定
以下の表は、すべての入力タイプの inputDetail パラメーターに対する基本設定の説明です。
パラメーター | データ型 | 必須 | 説明 |
---|---|---|---|
filterKey | Array | 省略可能 | ログのフィルターに使用するキーです。 対応する filterRegex パラメーターによって指定された正規表現にキー値が一致したときのみログが収集されます。 |
filterRegex | Array | 省略可能 | 各 filterKey に対応する正規表現です。 filterRegex の長さは filterKey の長さと同じでなければなりません。 |
shardHashKey | Array | 省略可能 | ログデータが KeyHash モードで書かれたときに指定されるキーです。 ログデータはデフォルトで LoadBalance モードで書かれます。 このパラメーターを指定すると、ログデータは KeyHash モードで書かれます。 有効値:__topic__ 、__hostname__ 、__source__ |
enableRawLog | Boolean | 省略可能 | 生ログをアップロードするかどうかを指定します。 |
sensitive_keys | Array | 省略可能 | 減感設定。SensitiveKey 配列です。 SensitiveKey の設定方法の詳細については、以下の表をご参照ください。
|
mergeType | String | 省略可能 | 集計メソッド デフォルトでログはトピックごとに集計されます。 有効値:topic と logstore |
delayAlarmBytes | Integer | 省略可能 | ログ収集の遅延に対するアラートしきい値です。 デフォルト値:200 MB を示す 209715200 |
adjustTimezone | Boolean | 省略可能 | ログのタイムゾーンを変更するかどうかを指定します。 このパラメーターは時間の解析が必要な場合のみ必要となります。 |
logTimezone | String | 省略可能 | タイムゾーンのオフセット。 ログのタイムゾーンが UTC+8 の場合、パラメーターを GMT+08:00 に設定します。
|
priority | Integer | 省略可能 | ログ送信の優先度。 デフォルト値:0 。 Logtail 設定を高優先度に設定する必要がある場合、このパラメーターを 1 に設定します。
|
以下の表は SensitiveKey の設定方法を示しています。
パラメーター | データ型 | 必須 | 説明 |
---|---|---|---|
key | String | 必須 | ログキー名。 |
type | String | 必須 | 減感方法。 有効値: const と md5 。 このパラメーターを const に設定すると、機密の内容が const パラメーターの値に置き換わります。 このパラメーターを md5 に設定すると、機密の内容が対応する MD5 ハッシュ値に置き換わります。
|
regex_begin | String | 必須 | 機密の内容の接頭辞 |
regex_content | String | 必須 | 機密の内容の正規表現 |
all | Boolean | 必須 | キーパラメーターで指定されたフィールド内のすべての機密性のある内容を置き換えるかどうかを指定します。 このパラメーターを true に設定することを推奨します。
|
const | String | 省略可能 | 機密の内容を置き換えるために使用する内容。 このパラメーターは type パラメーターを const に設定している場合に必要です。
|
たとえば、ログには値が
[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}]
の content
フィールドが含まれます。 password
を減感するには、SensitiveKey
を以下のように設定します。
"key" : "content"
"type" : "const"
"regex_begin" : "'password':'"
"regex_content" : "[^']*"
"all" : true
"const" : "********"
減感するとログは以下のようになります。
[{'account':'1812213231432969','password':'********'}, {'account':'1812213685634','password':'********'}]
テキストファイル用の inputDetail パラメーターの設定
以下の表はテキストファイル用の inputDetail パラメーターの基本設定の説明です。
パラメーター | データ型 | 必須 | 説明 |
---|---|---|---|
logType | String | 必須 | ログ収集モード inputType パラメーターをファイルに設定する場合に必要なパラメーターです。 Valid values: json_log 、apsara_log 、common_reg_log 、delimiter_log 。
|
logPath | String | 必須 | 収集するログの親ディレクトリは /var/logs/ です。
|
filePattern | String | 必須 | たとえば、ログファイルのパターンは access*.log です。
|
topicFormat | String | 必須 | ログのトピックの生成メソッド 有効値:none :トピックが null 文字列に設定されています。default :ログパスがトピックとして使用されています。 group_topic :Logtail 設定に適用しているマシングループのトピック属性がトピックとして使用されています。 Another value:ログパスの一部 ( /var/log/(.*).log ) がトピックとして使用します。
|
timeFormat | String | 省略可能 | ログの時間形式 (たとえば %Y/%m/%d %H:%M:%S )。
|
preserve | Boolean | 省略可能 | 監視されるディレクトリのタイムアウト期間です。 true は、監視されるディレクトリが絶対にタイムアウトしないことを示します。 false は、監視されるディレクトリが 30 分以内に更新されない場合はタイムアウトとみなされることを示します。 デフォルト値:true |
preserveDepth | Integer | 省略可能 | preserve パラメーターを true に設定した場合の監視されるディレクトリの深さ。 最大値は 3 です。 |
fileEncoding | String | 省略可能 | ファイルのエンコード方法。 有効値:utf8 と gbk 。
|
discardUnmatch | Boolean | 省略可能 | 指定したフィルター条件に一致しないログを破棄するかどうかを設定します。 |
maxDepth | Integer | 省略可能 | 監視されているディレクトリの最大値。 有効値:[0, 1000] 0 は、現在のディレクトリのみが監視されていることを示します。 |
delaySkipBytes | Integer | 省略可能 | ログ収集の遅延に対する破棄のしきい値 デフォルト値:0 は、ラグデータを破棄しないことを示します。 ラグデータの合計がこのパラメーター値を超えた場合、ラグデータは破棄されます。 |
isDocherFile | Boolean | 省略可能 | ログファイルをコンテナーに置くかどうかを指定します。 規定値:false 詳細については、「コンテナーテキストログ」をご参照ください。 |
dockerIncludeLabel | Object | 省略可能 | コンテナー ラベルのホワイトリスト。 Logtail は、ホワイトリストにラベルが含まれている Docker コンテナーからログを収集します。 このパラメーターを指定しない場合、Logtail はすべてのコンテナーからログを収集します。 |
dockerExcludeLabel | Object | 省略可能 | コンテナー ラベルのブラックリスト。 Logtail は、ラベルがブラックリストに含まれている Docker コンテナーからログを収集しません。 このパラメーターを指定しない場合、Logtail はすべてのコンテナーからログを収集します。 |
dockerIncludeEnv | Object | 省略可能 | コンテナー環境変数のホワイトリスト。 Logtail は、環境変数がホワイトリストに含まれている Docker コンテナーからログを収集します。 このパラメーターを指定しない場合、Logtail はすべてのコンテナーからログを収集します。 |
dockerExcludeEnv | Object | 省略可能 | コンテナー環境変数のブラックリスト。 Logtail は、環境変数がブラックリストに含まれている Docker コンテナーからログを収集しません。 このパラメーターを指定しない場合、Logtail はすべてのコンテナーからログを収集します。 |
- フル正規表現モードまたはシンプルモードでの設定
次の表は、完全正規表現モードまたは単純モードでの特定の設定の説明です。
パラメーター データ型 必須 説明 key Array 必須 ログ抽出結果にキーを指定します。 logBeginRegex String 省略可能 複数行にわたるログの開始ヘッダーを指定するために使用される正規表現。 regex String 省略可能 ログ情報を抽出するために使用される正規表現。 シンプルモード
は、完全な正規表現モードの特別なケースです。 次の例は、シンプルモード
での設定です。"key" : ["content"] "logBeginRegex" : ".*" "regex" : "(. *)"
- JSON モードでの設定
次の表は、JSON モードのある設定の説明です。
パラメーター データ型 必須 説明 timeKey String 省略可能 時間フィールドを指定するキー。 - 区切り記号モードでの設定
次の表に、区切り記号モードの特定の設定について説明します。
パラメーター データ型 必須 説明 separator String 省略可能 各ログのフィールドを区切るために使用される区切り文字。 quote String 必須 区切り文字を含むログ フィールドを囲むために使用される引用符。 key Array 必須 ログ抽出結果にキーを指定します。 timeKey String 必須 キー リストに含める必要がある時間フィールドを指定するキー。 autoExtend Boolean 省略可能 解析されたログ フィールドの実際の数が構成されたキーの数より多い場合に、キーの数を自動的に増やすかどうかを指定します。 - Apsara モードでの設定
次の表は、Apsara モードの特定の設定についての説明します。
パラメーター データ型 必須 説明 logBeginRegex String 省略可能 複数行にわたるログの開始ヘッダーを指定するために使用される正規表現。
outputDetail パラメーターの設定
次の表は、出力ログ用にプロジェクトと Logstore を設定する方法の説明です。
パラメーター | データ型 | 必須 | 説明 |
---|---|---|---|
projectName | String | 必須 | プロジェクトの名前 (リクエストされたプロジェクトとしての名前でなければなりません)。 それ以外の場合は、エラーが返されます。 |
logstoreName | String | 必須 | Logstore の名前。 |
設定例
-
JSON モード:
{ "configName": "logConfigName", "outputType": "LogService", "inputType": "file", "inputDetail": { "logPath": "/logPath", "filePattern": "access.log", "logType": "json_log", "topicFormat": "default", "discardUnmatch": false, "enableRawLog": true, "fileEncoding": "gbk", "maxDepth": 10 }, "outputDetail": { "projectName": "test-project", "logstoreName": "test-logstore" } }
-
Delimiter mode:
{ "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": [ "test", "test2" ], "autoExtend": true }, "outputDetail": { "projectName": "test-project", "logstoreName": "test-logstore" } }
-
Full regex mode:
{ "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" } }
-
Plug-in mode (Docker standard output):
{ "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" } }