すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:区切り文字モードでの解析

最終更新日:Aug 21, 2024

Logtailプラグインを使用して、特定の区切り文字に基づいてログを複数のキーと値のペアに解析できます。

エントリーポイント

Logtailプラグインを使用してログを処理する場合は、Logtail設定を作成または変更するときにLogtailプラグイン設定を追加できます。 詳細については、「概要」をご参照ください。

設定の説明

パラメーター

説明

元のフィールド

ログが解析される前にログの内容を格納するために使用される元のフィールド。 デフォルト値: content。

デリミタ

ログフィールドを抽出する区切り文字。 実際のログの内容に基づいて区切り文字を選択します。 たとえば、垂直バー (|) を選択できます。

説明

区切り文字パラメーターを印刷不可文字に設定した場合、0x <印刷不可文字の16進ASCIIコード> の形式で文字を入力する必要があります。 たとえば、16進数のASCIIコードが01である印刷不可能な文字を使用する場合は、0x0 1と入力する必要があります。

引用符

引用だ ログフィールドに区切り文字が含まれている場合は、フィールドを囲む引用符を指定する必要があります。 Simple Log Serviceは、引用符のペアで囲まれたコンテンツを完全なフィールドに解析します。 収集するログの形式に基づいて引用を選択する必要があります。

説明

Quoteパラメーターを印刷不可の文字に設定した場合、0x <印刷不可の文字の16進ASCIIコード> の形式で文字を入力する必要があります。 たとえば、16進数のASCIIコードが01である印刷不可能な文字を使用する場合は、0x0 1と入力する必要があります。

抽出フィールド

  • サンプルログを指定した場合、Simple Log Serviceは、指定されたサンプルログと区切り文字に基づいてログコンテンツを自動的に抽出できます。 各ValueパラメーターのKeyパラメーターを設定します。 Keyパラメータは、新しいフィールド名を指定します。 Valueパラメーターは、抽出されるコンテンツを指定します。

  • サンプルログを指定しない場合、[値] 列は使用できません。 実際のログと区切り文字に基づいてキーを指定する必要があります。

キーには、英字、数字、およびアンダースコア (_) のみを含めることができ、英字またはアンダースコア (_) で始まる必要があります。 キーの長さは最大128バイトです。

不足しているフィールドを許可

抽出された値の数が指定されたキーの数より少ない場合、値が空のキーを含むログをSimple Log Serviceにアップロードするかどうかを指定します。 [フィールドの欠落を許可] パラメーターを選択すると、ログがSimple Log Serviceにアップロードされます。

この例では、ログは11 | 22 | 33 | 44で、DelimiterパラメーターはVertical Bar (|) に設定され、キーはaBCDEに設定されます。

  • Eフィールドの値は空です。 [欠落フィールドを許可] パラメーターを選択した場合、ログはSimple Log Serviceにアップロードされます。

  • [欠落フィールドを許可] パラメーターを選択しない場合、ログは破棄されます。

    説明

    Linux Logtail V1.0.28以降またはWindows Logtail V1.0.28.0以降は、Allow Missing Fieldパラメーターをサポートしています。

余剰部分を割り当てるフィールドの処理方法

抽出された値の数が指定されたキーの数より大きい場合に抽出される超過値を処理するために使用されるメソッド。

  • Expand: 超過値を保持し、それぞれ __列 $i__ 形式のフィールドに値を追加します。 $iは超過フィールドのシーケンス番号を示します。 シーケンス番号は 0 から始まります。 例: __column0__ および __column1__

  • Retain: 超過値を保持し、__column0__ フィールドに追加します。

  • Drop: 超過値を破棄します。

解析に失敗した場合に元のフィールドを保持する

[元のフィールドの保持] パラメーターを選択し、解析が失敗した場合、元のフィールドは保持されます。

解析が成功した場合に元のフィールドを保持する

[元のフィールドを保持して解析が成功した場合] パラメーターを選択し、解析が成功した場合、元のフィールドは保持されます。

元のフィールドの新しい名前

[解析が失敗した場合に元のフィールドを保持する] または [解析が成功した場合に元のフィールドを保持する] パラメーターを選択すると、元のフィールドの名前を変更して元のログの内容を保存できます。

付録

区切り文字モードでデータを解析するための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のフォーマットである場合、ログは、1999ChevyVenture「Extended Edition」、空のフィールド、および5000.00の5つのフィールドに解析される。

  • 引用: ログフィールドに区切り文字が含まれている場合は、フィールドを囲む引用符を指定する必要があります。 Simple Log Serviceは、引用符のペアで囲まれたコンテンツを完全なフィールドに解析します。

    使用可能な引用符には、タブ文字 (\t) 、垂直バー (|) 、スペース、コンマ (,) 、セミコロン (;) 、および印刷不可の文字が含まれます。

    たとえば、区切り文字としてコンマ (,) を指定し、引用符として二重引用符 (") を指定すると、ログ1997、Ford、E350、「ac、abs、moon」、3000.001997FordE350ac、abs、moon3000.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フォードE350ac&abs&moon3000.00の5つのフィールドに解析されます。