

# パーサープロセッサ
<a name="parser-processors"></a>

パーサープロセッサは、未加工または半構造化ログデータを構造化形式に変換します。各パイプラインには最大 1 個のパーサープロセッサを含めることができますが、このパーサープロセッサはパイプラインの最初のプロセッサである必要があります。

**条件付き処理はサポートされていません**  
パーサープロセッサ (Grok を除く) は、`when` パラメータを使用した条件付き処理をサポートしていません。これには、OCSF、CSV、JSON、KeyValue、VPC、Route53、WAF、Postgres、および CloudFront パーサーが含まれます。詳細については、「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## OCSF プロセッサ
<a name="ocsf-processor"></a>

Open Cybersecurity Schema Framework (OCSF) 標準に従ってログデータを解析および変換します。

**設定**  
以下のパラメータを使用して OCSF プロセッサを設定します。

```
processor:
  - ocsf:
      version: "1.5"
      mapping_version: 1.5.0
      schema:
          microsoft_office365_management_activity:
```パラメータ

`version` (必須)  
変換に使用する OCSF スキーマのバージョン。1.5 である必要があります

`mapping_version` (必須)  
変換用の OCSF マッピングバージョン。1.5.0 である必要があります

`schema` (必須)  
データソースタイプを指定するスキーマオブジェクト。サポートされるスキーマはパイプラインソースタイプによって異なります。各ソースタイプには互換性のある OCSF スキーマの独自のセットがあります。パイプラインのソースタイプに一致するスキーマを使用する必要があります。

この表には、サポートされているスキーマの組み合わせが一覧表示されています。


| パイプラインソースタイプ | サポートされているスキーマ | バージョン | マッピングのバージョン | 
| --- | --- | --- | --- | 
| cloudwatch\$1logs | cloud\$1trail: | 1.5 | 不要 | 
| cloudwatch\$1logs | route53\$1resolver: | 1.5 | 不要 | 
| cloudwatch\$1logs | vpc\$1flow: | 1.5 | 不要 | 
| cloudwatch\$1logs | eks\$1audit: | 1.5 | 不要 | 
| cloudwatch\$1logs | aws\$1waf: | 1.5 | 不要 | 
| s3 | 任意の OCSF スキーマ | いずれか | すべて | 
| microsoft\$1office365 | microsoft\$1office365: | 1.5 | 1.5.0 | 
| microsoft\$1entraid | microsoft\$1entraid: | 1.5 | 1.5.0 | 
| microsoft\$1windows\$1event | microsoft\$1windows\$1event: | 1.5 | 1.5.0 | 
| paloaltonetworks\$1nextgenerationfirewall | paloaltonetworks\$1nextgenerationfirewall: | 1.5 | 1.5.0 | 
| okta\$1auth0 | okta\$1auth0: | 1.5 | 1.5.0 | 
| okta\$1sso | okta\$1sso: | 1.5 | 1.5.0 | 
| crowdstrike\$1falcon | crowdstrike\$1falcon: | 1.5 | 1.5.0 | 
| github\$1auditlogs | github\$1auditlogs: | 1.5 | 1.5.0 | 
| sentinelone\$1endpointsecurity | sentinelone\$1endpointsecurity: | 1.5 | 1.5.0 | 
| servicenow\$1cmdb | servicenow\$1cmdb: | 1.5 | 1.5.0 | 
| wiz\$1cnapp | wiz\$1cnapp: | 1.5 | 1.5.0 | 
| zscaler\$1internetaccess | zscaler\$1internetaccess: | 1.5 | 1.5.0 | 

## CSV プロセッサ
<a name="csv-processor"></a>

CSV 形式のデータを構造化フィールドに解析します。

**設定**  
次のパラメータを使用して CSV プロセッサを設定します。

```
processor:
  - csv:      
      column_names: ["col1", "col2", "col3"]
      delimiter: ","
      quote_character: '"'
```パラメータ

`column_names` (オプション)  
解析されたフィールドの列名の配列。最大 100 列、各名前の最大文字数は 128 文字です。指定しない場合、デフォルトで column\$11、column\$12 などになります。

`delimiter` (オプション)  
CSV フィールドを区切るために使用される文字。1 文字にする必要があります。デフォルトはカンマ「,」です。

`quote_character` (オプション)  
区切り文字を含む CSV フィールドを囲む引用符として使用される文字。1 文字にする必要があります。デフォルトは二重引用符「"」です。

追加のパラメータを指定せずにプロセッサを使用するには、次のコマンドを使用します。

```
processor:
  - csv: {}
```

## Grok プロセッサ
<a name="grok-processor"></a>

Grok パターンを使用して非構造化データを解析します。パイプラインごとに 1 つの Grok がサポートされています。CloudWatch Logs の Grok トランスフォーマーの詳細については、「*CloudWatch Logs ユーザーガイド*」の「[Processors that you can use](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation-Processors.html)」を参照してください。

**設定**  
次のパラメータを使用して Grok プロセッサを設定します。

データソースがディクショナリの場合、この設定を使用できます。

```
processor:
  - grok:      
      match:
       source_key: ["%{WORD:level} %{GREEDYDATA:msg}"]
```

データソースが CloudWatch Logs の場合、この設定を使用できます。

```
processor:
  - grok:      
      match:
       source_key: ["%{WORD:level} %{GREEDYDATA:msg}"]
```パラメータ

`match` (必須)  
Grok パターンを使用したフィールドマッピング。許可されるフィールドマッピングは 1 つだけです。

`match.<field>` (必須)  
単一の Grok パターンを使用した配列。パターンあたりの最大文字数は 512 文字です。

`when` (オプション)  
このプロセッサを実行するかどうかを決定する条件式。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

**重要**  
Grok プロセッサをパイプラインのパーサー (最初のプロセッサ) として使用し、その `when` 条件が false と評価された場合、パイプライン全体がそのログイベントに対して実行されません。ダウンストリームプロセッサが構造化データを受信するには、パーサーを実行する必要があります。

## VPC プロセッサ
<a name="vpc-processor"></a>

VPC フローログデータを構造化フィールドに解析します。

**設定**  
次のパラメータを使用して VPC プロセッサを設定します。

```
processor:
  - parse_vpc: {}
```

## JSON プロセッサ
<a name="json-processor"></a>

JSON データを構造化フィールドに解析します。

**設定**  
次のパラメータを使用して JSON プロセッサを設定します。

```
processor:
  - parse_json:
      source: "message"
      destination: "parsed_json"
```パラメータ

`source` (オプション)  
解析する JSON データを含むフィールド。省略すると、ログメッセージ全体が処理されます。

`destination` (オプション)  
解析された JSON が保存されるフィールド。省略すると、解析されたフィールドがルートレベルに追加されます。

## Route 53 プロセッサ
<a name="route53-processor"></a>

Route 53 リゾルバーのログデータを構造化フィールドに解析します。

**設定**  
次のパラメータを使用して Route 53 プロセッサを設定します。

```
processor:
  - parse_route53: {}
```

## Key-value プロセッサ
<a name="key-value-processor"></a>

キーと値のペア形式のデータを構造化フィールドに展開します。

**設定**  
次のパラメータを使用して key-value プロセッサを設定します。

```
processor:
  - key_value:
      source: "message"
      destination: "parsed_kv"
      field_delimiter: "&"
      key_value_delimiter: "="
```パラメータ

`source` (オプション)  
キーと値のデータを含むフィールド。最大 128 文字

`destination` (オプション)  
解析されたキーと値のペアのターゲットフィールド。最大 128 文字

`field_delimiter` (オプション)  
キーと値のペアを分割するパターン。最大 10 文字

`key_value_delimiter` (オプション)  
値からキーを分割するパターン。最大 10 文字

`overwrite_if_destination_exists` (オプション)  
既存の送信先フィールドを上書きするかどうかの選択。

`prefix` (オプション)  
抽出されたキーに追加するプレフィックス。最大 128 文字

`non_match_value` (オプション)  
一致しないキーの値。最大 128 文字

追加のパラメータを指定せずにプロセッサを使用するには、次のコマンドを使用します。

```
processor:
  - key_value: {}
```