

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Logstash を用いて Amazon OpenSearch Service へデータをロードする
<a name="managedomains-logstash"></a>

Logstash のオープンソース版 (Logstash OSS) には、一括 API を使用して Amazon OpenSearch Service ドメインにデータをアップロードする便利な方法があります。このサービスは、Amazon S3 入力プラグインを含む、すべての標準 Logstash 入力プラグインをサポートします。OpenSearch Service は、基本認証と IAM 認証情報の両方をサポートする [logstash-output-opensearch](https://github.com/opensearch-project/logstash-output-opensearch) 出力プラグインをサポートします。プラグインはバージョン 8.1 以前の Logstash OSS で動作します。

## 設定
<a name="logstash-config"></a>

Logstash の設定は、ドメインが使用する認証のタイプによって異なります。

どの認証方法を使用していても、設定ファイルの出力セクションで `ecs_compatibility` を `disabled` に設定する必要があります。Logstash 8.0 では、[デフォルトで ECS 互換モード](https://www.elastic.co/guide/en/logstash/current/ecs-ls.html#_specific_plugin_instance)ですべてのプラグインが実行される画期的な変更が導入されました。レガシー動作を維持するには、デフォルト値をオーバーライドする必要があります。

### きめ細かなアクセス制御の設定
<a name="logstash-config-fgac"></a>

OpenSearch Service ドメインで HTTP Basic 認証による[きめ細かなアクセスコントロール](fgac.md)を使用する場合、設定は他の OpenSearch クラスターと同様です。この設定ファイルの例では、Filebeat のオープンソース版 (Filebeat OSS) から入力を受け取ります。

```
input {
  beats  {
    port => 5044
  }
}

output {
  opensearch {
    hosts       => "https://{{domain-endpoint}}:443"
    user        => "{{my-username}}"
    password    => "{{my-password}}"
    index       => "logstash-logs-%{+YYYY.MM.dd}"
    ecs_compatibility => disabled
    ssl_certificate_verification => false
  }
}
```

設定は Beats アプリケーションとユースケースによって異なりますが、Filebeat OSS の設定は次のようになります。

```
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - {{/path/to/logs/dir/}}*.log
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.ilm.enabled: false
setup.ilm.check_exists: false
setup.template.settings:
  index.number_of_shards: 1
output.logstash:
  hosts: ["{{logstash-host}}:5044"]
```

### IAM ロールの設定
<a name="logstash-config-iam"></a>

ドメインで IAM ベースのドメインアクセスポリシーを使用する場合や IAM マスターユーザーによるきめ細かなアクセスコントロールを使用する場合、OpenSearch Service へのすべてのリクエストには IAM 認証情報を使用して署名する必要があります。次の ID ベースのポリシーは、ドメインのサブリソースへの、すべての HTTP リクエストを許可します。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "es:ESHttp*"
      ],
      "Resource": "arn:aws:es:{{us-east-1}}:{{111122223333}}:domain/{{domain-name}}/*"
    }
  ]
}
```

------

Logstash を設定するには、プラグインをその出力に使用するように、設定ファイルを変更します。この設定ファイルの例では、S3 バケット内のファイルから入力を受け取ります。

```
input {
  s3 {
    bucket => "{{amzn-s3-demo-}}"
    region => "{{us-east-1}}"
  }
}

output {        
  opensearch {     
    hosts => ["{{domain-endpoint}}:443"]             
    auth_type => {    
      type => 'aws_iam'     
      aws_access_key_id => '{{your-access-key}}'     
      aws_secret_access_key => '{{your-secret-key}}'     
      region => '{{us-east-1}}'         
      }         
      index  => "logstash-logs-%{+YYYY.MM.dd}"  
      ecs_compatibility => disabled    
  }            
}
```

設定ファイル内で IAM 認証情報を提供したくない場合は、認証情報をエクスポート (または `aws configure` を実行) できます。

```
export AWS_ACCESS_KEY_ID="{{your-access-key}}"
export AWS_SECRET_ACCESS_KEY="{{your-secret-key}}"
export AWS_SESSION_TOKEN="{{your-session-token}}"
```

OpenSearch Service ドメインが VPC にある場合、Logstash OSS マシンは VPC に接続できる必要があり、また VPC セキュリティグループを介してドメインにアクセスできる必要があります。詳細については、「[VPC ドメインのアクセスポリシーについて](vpc.md#vpc-security)」を参照してください。