

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Logstash 將資料載入至 Amazon OpenSearch Service
<a name="managedomains-logstash"></a>

Logstash 的開放原始碼版本 (Logstash OSS) 提供便利的方法來使用大量 API 將資料上傳到您的 Amazon OpenSearch Service 網域。此服務支援所有標準 Logstash 輸入外掛程式，包括 Amazon S3 輸入外掛程式。OpenSearch Service 可支援 [logstash-output-opensearch](https://github.com/opensearch-project/logstash-output-opensearch) 輸出外掛程式，該外掛程式支援基本身分驗證和 IAM 憑證。該外掛程式可與 Logstash OSS 的 8.1 版及較低版本搭配使用。

## Configuration
<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 網域搭配使用[精細存取控制](fgac.md)與 HTTP 基本身分驗證，則組態類似於任何其他 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 的所有請求。下列身分型政策會將所有 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)。