Logtail プラグインを使用して、区切り文字を使用してログを構造化データに解析できます。この場合、ログは複数のキーと値のペアに解析されます。
エントリポイント
Logtail プラグインを使用してログを処理する場合、Logtail 構成を作成または変更するときに Logtail プラグイン構成を追加できます。詳細については、「概要」をご参照ください。
構成の説明
パラメーター | 説明 |
元のフィールド | 解析前のログコンテンツを格納する元のフィールド。デフォルト値: content。 |
区切り文字 | 区切り文字。実際のログコンテンツに基づいて区切り文字を選択します。たとえば、縦棒 (|) を選択できます。 説明 [印刷不可文字] に区切り文字パラメーターを設定する場合は、 |
引用符 | 引用符。ログフィールドにデリミタが含まれている場合は、フィールドを囲む引用符を指定する必要があります。Simple Log Service は、引用符のペアで囲まれたコンテンツを完全なフィールドとして解析します。収集するログの形式に基づいて引用符を選択します。 説明 [印刷不可文字] に引用符パラメーターを設定する場合は、 |
抽出されたフィールド |
キーには、文字、数字、アンダースコア (_) のみを含めることができ、文字またはアンダースコア (_) で始める必要があります。キーの長さは最大 128 バイトです。 |
欠落フィールドを許可 | 抽出された値の数が指定されたキーの数よりも少ない場合に、ログを Simple Log Service にアップロードするかどうかを指定します。[欠落フィールドを許可] パラメーターを選択すると、ログは Log Service にアップロードされます。 この例では、ログは
|
超過部分が割り当てられたフィールドの処理方法 | 抽出された値の数が指定されたキーの数よりも多い場合に、抽出された超過値を処理するために使用されるメソッド。有効な値:
|
解析に失敗した場合に元のフィールドを保持 | 生のログの解析に失敗した後に取得された新しいログに元のフィールドを保持するかどうかを指定します。 |
解析に成功した場合に元のフィールドを保持 | 解析後に取得された新しいログに元のフィールドを保持するかどうかを指定します。 |
元のフィールドの新しい名前 | 保持する元のフィールドの新しい名前。[解析に失敗した場合に元のフィールドを保持] または [解析に成功した場合に元のフィールドを保持] を選択した場合は、元のログコンテンツを格納する元のフィールドの名前を変更できます。 |
付録
区切り文字モードでデータを解析するための Logtail プラグインは、単一文字の区切り文字と複数文字の区切り文字をサポートしています。
単一文字の区切り文字
次の例は、単一文字の区切り文字を使用して解析できるログを示しています。
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
単一文字の区切り文字を使用する場合は、区切り文字と引用符の両方を指定する必要があります。
区切り文字: 使用可能な単一文字の区切り文字には、タブ文字 (\t)、縦棒 (|)、スペース、コンマ (,)、セミコロン (;)、印刷不可文字が含まれます。二重引用符 (") を区切り文字として指定することはできません。
ただし、二重引用符 (") は引用符として使用できます。二重引用符 (") は、フィールドの境界、またはフィールド内に表示できます。ログフィールドに二重引用符 (") が含まれている場合、ログの処理時に二重引用符のペア (
""
) としてエスケープする必要があります。ログが解析されると、二重引用符のペア (""
) は二重引用符 ("
) に復元されます。たとえば、区切り文字としてコンマ (,) を、引用符として二重引用符 (") を指定できます。ログフィールドに指定された区切り文字と引用符が含まれている場合、フィールドは引用符のペアで囲まれ、フィールド内の二重引用符 (") は二重引用符のペア (""
) としてエスケープされます。処理されたログが1999,Chevy,"Venture ""Extended Edition, Very Large""","",5000.00
形式の場合、ログは 5 つのフィールドに解析されます:1999
、Chevy
、Venture "Extended Edition, Very Large"
、空のフィールド、5000.00。引用符: ログフィールドにデリミタが含まれている場合は、フィールドを囲む引用符を指定する必要があります。Simple Log Service は、引用符のペアで囲まれたコンテンツを完全なフィールドとして解析します。
使用可能な引用符には、タブ文字 (\t)、縦棒 (|)、スペース、コンマ (,)、セミコロン (;)、印刷不可文字が含まれます。
たとえば、区切り文字としてコンマ (,) を、引用符として二重引用符 (") を指定すると、ログ
1997,Ford,E350,"ac, abs, moon",3000.00
は 5 つのフィールドに解析されます:1997
、Ford
、E350
、ac, abs, moon
、3000.00
。
複数文字の区切り文字
次の例は、複数文字の区切り文字を使用して解析できるログを示しています。
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&&Ford&&E350&&ac&abs&moon&&3000.00
は 5 つのフィールドに解析されます: 1997
、Ford
、E350
、ac&abs&moon
、3000.00
。