Logtailプラグインを使用して、特定の区切り文字に基づいてログを複数のキーと値のペアに解析できます。
エントリーポイント
Logtailプラグインを使用してログを処理する場合は、Logtail設定を作成または変更するときにLogtailプラグイン設定を追加できます。 詳細については、「概要」をご参照ください。
設定の説明
パラメーター | 説明 |
元のフィールド | ログが解析される前にログの内容を格納するために使用される元のフィールド。 デフォルト値: content。 |
デリミタ | ログフィールドを抽出する区切り文字。 実際のログの内容に基づいて区切り文字を選択します。 たとえば、垂直バー (|) を選択できます。 説明 区切り文字パラメーターを印刷不可文字に設定した場合、 |
引用符 | 引用だ ログフィールドに区切り文字が含まれている場合は、フィールドを囲む引用符を指定する必要があります。 Simple Log Serviceは、引用符のペアで囲まれたコンテンツを完全なフィールドに解析します。 収集するログの形式に基づいて引用を選択する必要があります。 説明 Quoteパラメーターを印刷不可の文字に設定した場合、 |
抽出フィールド |
キーには、英字、数字、およびアンダースコア (_) のみを含めることができ、英字またはアンダースコア (_) で始まる必要があります。 キーの長さは最大128バイトです。 |
不足しているフィールドを許可 | 抽出された値の数が指定されたキーの数より少ない場合、値が空のキーを含むログをSimple Log Serviceにアップロードするかどうかを指定します。 [フィールドの欠落を許可] パラメーターを選択すると、ログがSimple Log Serviceにアップロードされます。 この例では、ログは
|
余剰部分を割り当てるフィールドの処理方法 | 抽出された値の数が指定されたキーの数より大きい場合に抽出される超過値を処理するために使用されるメソッド。
|
解析に失敗した場合に元のフィールドを保持する | [元のフィールドの保持] パラメーターを選択し、解析が失敗した場合、元のフィールドは保持されます。 |
解析が成功した場合に元のフィールドを保持する | [元のフィールドを保持して解析が成功した場合] パラメーターを選択し、解析が成功した場合、元のフィールドは保持されます。 |
元のフィールドの新しい名前 | [解析が失敗した場合に元のフィールドを保持する] または [解析が成功した場合に元のフィールドを保持する] パラメーターを選択すると、元のフィールドの名前を変更して元のログの内容を保存できます。 |
付録
区切り文字モードでデータを解析するためのLogtailプラグインは、1文字区切り文字と複数文字区切り文字をサポートします。
1文字区切り文字
次の例は、1文字区切り文字を使用するログを示しています。
05/May/2022:13:30:28,10.10.*.*,"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1",200,18204,aliyun-sdk-java
05/May/2022:13:31:23,10.10.*.*,"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1",401,23472,aliyun-sdk-java
ログで1文字区切り文字を使用する場合は、区切り文字を指定する必要があります。 引用を指定することもできます。
区切り文字: 使用可能な1文字の区切り文字には、タブ文字 (\t) 、垂直バー (|) 、スペース、コンマ (,) 、セミコロン (;) 、および印刷不可の文字が含まれます。 二重引用符 (") を区切り文字として指定することはできません。
ただし、二重引用符 (") を引用符として使用できます。 二重引用符 (") は、フィールドの境界またはフィールドに表示できます。 ログフィールドに二重引用符 (") が含まれている場合は、ログの処理時に二重引用符 (
" "
) のペアとしてエスケープする必要があります。 Simple Log Serviceがログを解析すると、二重引用符のペア (""
) が二重引用符 ("
) に復元されます。 たとえば、コンマ (,) を区切り文字として指定し、二重引用符 (,) を引用符として指定できます。 ログフィールドに指定された区切り文字と引用符が含まれている場合、フィールドは引用符のペアで囲まれ、フィールド内の二重引用符 (") は二重引用符のペア (" "
) としてエスケープされます。 処理されたログが1999、Chevy、「Venture」、「Extended Edition」、「Very Large」、「」、5000.00
のフォーマットである場合、ログは、1999
、Chevy
、Venture「Extended Edition」
、空のフィールド、および5000.00の5つのフィールドに解析される。引用: ログフィールドに区切り文字が含まれている場合は、フィールドを囲む引用符を指定する必要があります。 Simple Log Serviceは、引用符のペアで囲まれたコンテンツを完全なフィールドに解析します。
使用可能な引用符には、タブ文字 (\t) 、垂直バー (|) 、スペース、コンマ (,) 、セミコロン (;) 、および印刷不可の文字が含まれます。
たとえば、区切り文字としてコンマ (,) を指定し、引用符として二重引用符 (") を指定すると、ログ
1997、Ford、E350、「ac、abs、moon」、3000.00
が1997
、Ford
、E350
、ac、abs、moon
、3000.00
の5つのフィールドに解析されます。
マルチ文字区切り文字
次の例は、複数文字の区切り文字を使用するログを示しています。
05/May/2022:13:30:28&&10.200.**.**&&POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1&&200&&18204&&aliyun-sdk-java
05/May/2022:13:31:23&&10.200.**.**&&POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1&&401&&23472&&aliyun-sdk-java
複数文字の区切り文字には、| |
、&&&
、^_^
などの2文字または3文字を含めることができます。 Simple Log Serviceは、区切り文字に基づいてログを解析します。 ログフィールドを囲むために引用符を使用する必要はありません。
各ログフィールドに正確な区切り文字が含まれていないことを確認してください。 それ以外の場合、Simple Log Serviceはログを期待どおりに解析できません。
たとえば、区切り文字として &&&
を指定した場合、ログ1997&&フォード&&E350&&ac&abs&moon&&3000.00
は、1997
、フォード
、E350
、ac&abs&moon
、3000.00
の5つのフィールドに解析されます。