FileLog および WinLog の両方のコレクタに対応するようにカンマ区切り値 (CSV) パーサを構成できます。

csv パーサで使用可能なオプションは、fields および delimiter です。

カンマ区切り値パーサのオプション

csv パーサの構造については以下の情報を参照してください。

オプション 説明
fields

fieldsオプションでは、ログに存在するフィールドの名前を指定します。リストされたフィールド名の合計数は、ログ内のカンマ区切りフィールドの合計数と一致している必要があります。

fields オプションは CSV パーサで必須です。指定されていない場合、解析が実行されません。フィールド値を囲む二重引用符はオプションで、フィールドの内容に依存します。

フィールド名はカンマで区切る必要があります。次に例を示します。
fields = field_name1, field_name2, field_name3, field_name4
この定義では名前 field_name1field_name2field_name3、および field_name4 は抽出したフィールドに連続して割り当てられることを前提にしています。

一部のフィールドが CSV パーサによって省略されてしまう場合は、その名前はリストから省略できます。次に例を示します。

 fields = field_name1, , field_name3, field_name4

この場合、パーサはイベントから第 1、第 3、第 4 フィールドのみを抽出し、名前 field_name1field_name3、および field_name4 をそれぞれ割り当てます。

ログにあるフィールドの完全なリストがフィールド オプションで指定されていない場合、パーサは空のリストを返します。たとえば、ログ ファイルに field1field2field3field4、および field5 が含まれていて、fields= field1,field2,field3 のみが指定されていた場合、パーサは空のフィールド リストを返します。

CSV パーサに fields=* を使用することはできません。これは、パーサが空のリストを返すためです。特定のフィールドを記述済みとして省略する必要がないかぎり、フィールドの完全なリストを指定する必要があります。

delimiter

delimiter オプションはパーサで使用する区切り文字を指定します。デフォルトでは、csv パーサは区切り文字としてカンマを使用しますが、この区切り文字をセミコロン、スペース、またはその他の特殊文字に変更することができます。定義した区切り文字は二重引用符で囲む必要があります。

たとえば、delimiter=","delimiter=";" のようにします。

csv パーサでは、引用符で囲まれた任意の文字のセットが区切り文字としてサポートされます("||" または "asd" など)。ログに使用するフィールド値の区切り文字は、区切り文字のパラメータで定義されたパターンに完全に一致する必要があります。完全に一致しない場合、パーサは失敗します。

スペースやタブなどの特殊文字は、それらの文字の前にエスケープ文字を指定すると、csv パーサの区切り文字として定義することができます(\"、\s、\t)。たとえば、 delimiter="\s"delimiter=" " のようにします。

delimiter オプションは任意です。

CSV ログ パーサの構成

winlog または filelog ソースのいずれかから収集したログを解析するには、以下の構成を使用します。

[filelog|some_csv_logs]
directory=D:\Logs
include=*.txt;*.txt.*
parser=myparser

[parser|myparser]
base_parser = csv
fields = timestamp,field_name1, field_name2, field_name3
delimiter = ";"
field_decoder={"timestamp": "tsp_parser"}
[parser|tsp_parser]
; timestamp is a built-in parser
base_parser=timestamp            
; "format" is an option of timestamp parser 
format=%Y-%m-%d %H:%M:%S

この構成を使用すると、some_csv_logs ソースから収集されたログ(directory=D:\Logs ディレクトリなど)は myparser によって解析されます。収集されたログにセミコロンで区切られた値が 3 つ含まれていると、解析されたイベントはそれぞれ field_name1field_name2、および field_name3 という名前を受け取ります。

次の CSV ログを解析するには:

"United States","USA","North America","High income: OECD","Fiscal year end: September 30; reporting period for national accounts data: CY."
CSV パーサ構成を定義します。
[parser|csv_log_parser]
base_parser=csv
fields=country_name, country_code, region, income_group, special_notes
CSV パーサは以下を返します。
country_name=United States
country_code=USA
region=North America
income_group=High income: OECD
special_notes=Fiscal year end: September 30; reporting period for national accounts data: CY.