

# CloudWatch Logs または Amazon S3 バケットからのカスタムログデータ
<a name="ingestion-custom-data-sources"></a>

以下の方法を使用して、カスタムデータソースのパイプラインを作成できます。

1. **CloudWatch Custom Logs** – 以下を指定して、既存の CloudWatch カスタムロググループのパイプラインを定義します。
   + データソース名
   + データソースタイプ

   データソース名とタイプについては、「[CloudWatch Logs ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/data-source-discovery-management.html#how-to-get-started-data-sources)」を参照してください。

1. **S3 カスタムソース** – パイプラインのソースを設定して、S3 バケットに保存されている任意のログを処理します。

   ```
   source:
     s3:
       aws:
         region: "us-east-1"
         sts_role_arn: "arn:aws:iam::<account>:role/<role-name>"
       compression: "gzip"
       codec:
         ndjson:
       data_source_name: "my_custom_logs"
       default_bucket_owner: "123456789012"
       bucket_owners:
         my-bucket: "123456789012"
       disable_bucket_ownership_validation: false
       notification_type: "sqs"
       sqs:
         queue_url: "https://sqs.region.amazonaws.com/<account>/<queue-name>"
       on_error: "retain_messages"
   ```
**注記**  
CSV プロセッサは S3 カスタムソースでは使用できません。代わりに、S3 ソースで CSV コーデックを使用します。

**パラメータ**  
`notification_type` (必須)  
通知メカニズムを指定します。S3 イベント通知に SQS を使用するには、「sqs」である必要があります。  
`data_source_name`  
データソースを特定します。これは、データソースを表す任意の文字列値にすることができます。例:「my\$1custom\$1logs」  
`aws.region` (必須)  
S3 バケットと SQS キューがある AWS リージョン。  
`aws.sts_role_arn` (必須)  
S3 および SQS リソースにアクセスするために引き受ける IAM ロールの ARN。  
`codec` (必須)  
S3 オブジェクトを解析するためのコーデック設定。`csv`、`json`、`ndjson` コーデックをサポートします。  
`compression` (オプション)  
S3 オブジェクトの圧縮タイプ。有効な値は「none」、「gzip」、「automatic」です。デフォルトは「none」です。  
`sqs.queue_url` (SQS に必須)  
新しいオブジェクトの作成時に S3 バケット通知を受信する SQS キューの完全な URL。  
`on_error` (オプション)  
Amazon SQS でエラーを処理する方法を決定します。`retain_messages` または `delete_messages` のいずれかになります。デフォルトは `retain_messages` です。

**カスタムソース設定**

カスタムソースのパイプラインを作成する場合の条件:
+ データソースが CloudWatch Logs の場合、パーサーはパイプラインの最初のプロセッサである必要があります。
+ カスタムログパイプラインには、サポートされている任意のプロセッサを指定できます。