メインコンテンツまでスキップ
Sumo Logic Japanese

Split を使用した区切りログの parse

split operator で文字列を複数の文字列に分割し、スペース区切りフォーマットなどで区切られたログ エントリを parse できます。

CSV ファイルのログ エントリを parse するには、シンプルな CSV operator を使用します。

構文

インデックスを使用してフィールドを抽出:

  • split <field> extract 1 as <A>, 2 as <B>, 5 as <E>, 6 as <F>

位置を指定してフィールドを抽出:

  • split <field> extract <A>, <B>, _, _, <E>, <F>

位置指定とインデックスベースの混合:

  • split <field> extract <A>, <B>, 5 as <E>, <F>

区切り文字、エスケープ文字、および引用文字を指定:

  • split <field> escape='\', delim=':', quote=''' extract <A>, <B>, _, _, <E>, <F>

ルール

  • デフォルトでは、Split operator は区切り文字にコンマ (,)、エスケープ文字にバックスラッシュ (\)、引用文字に引用符 (") を使用します。ただし、必要に応じて独自のものを定義できます。
  • 独自のエスケープ文字、区切り文字、および引用文字を定義する場合は、すべて異なる文字を使用する必要があります。
  • 抽出するフィールドは必須です。元のメッセージから抽出するには、_raw メタデータフィールドを使用します。

コロン区切りファイルの parse

たとえば、次のコロン区切りログ メッセージを含むファイルがあるとします。

[05/09/2014 09:39:990] INFO little@sumologic.com:ABCD00001239:EFGH1234509:
"Upload Complete - Your message has been uploaded successfully."

次のクエリを使用してフィールドを parse できます。

_sourceCategory=colon
| parse "] * *" as log_level, split_field
| split split_field delim=':' extract 1 as user, 2 as account_id, 3 as session_id, 4 as result

結果は次のようになります。

別の例では、次のクエリを使用できます。

_sourceCategory=colon
| split _raw delim=':' extract 1 as user2, 2 as id, 3 as name

結果は次のようになります。

CSV ファイルの parse

指定したようにコンマ区切りフィールドを抽出するには、次のクエリを使用します。

_sourceCategory=csv
| split _raw delim=',' extract 1 as user2, 2 as id, 3 as name

結果は次のようになります。

タブ区切りファイルの parse

タブ区切りログ ファイルからフィールドを抽出するには、次のクエリを使用します。 

_sourceCategory=sumo/zscaler
| split _raw delim='    ' extract 1 as Column1, 2 as dlpeng, 3 as cat

結果は次のようになります。

SplitTab.jpg

または、parse operator を使用してタブ区切りログ ファイルからフィールドを抽出できます。次のクエリは前述のクエリと同じ結果を出力します。

_sourceCategory=sumo/zscaler 
| parse "*\t*\t*\t" as Column1,dpleng,cat

 

  • この記事は役に立ちましたか?