Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
如何在 Amazon Linux 上使用 Filebeat 和 Logstash 連線到 OpenSearch Service?
我想使用 Amazon Linux 上的 Filebeat 和 Logstash 連線到 Amazon OpenSearch Service 叢集,但收到錯誤。
解決方法
設定安全連接埠
若要使用 Logstash 連線到 OpenSearch Service,請設定安全連接埠以轉送來自 Logstash 的日誌。
請完成下列步驟:
- 為 Filebeat 啟動一個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,然後為 Logstash 啟動另一個執行個體,以從中傳送記錄。
- 確認您的 EC2 執行個體與 OpenSearch Service 的虛擬私有雲端 (VPC) 位於相同安全群組。
- 確保安全群組中的連接埠 80、443 和 5044 已打開,以便 Logstash 與 OpenSearch Service 之間能夠順利傳送資料。
更新 Filebeat、Logstash 和 OpenSearch Service 組態
最佳實務是使用與您的 OpenSearch Service 與舊版 Elasticsearch 版本相符的 Filebeat 和 Logstash 版本。使用與您的網域版本相符的 Filebeat 和 Logstash 版本。
例如,如果您使用具有相容模式的 OpenSearch Service 1.x,則 OpenSearch Service 會將版本顯示為 7.10。檢查相容性矩陣以選擇正確版本的 Filebeat 和 Logstash。如需詳細資訊,請參閱 Elastic 網站上的支援矩陣或 OpenSearch 網站上的相容性矩陣。
如果您使用 OpenSearch Service 1.0 版或更新版本,請在啟動網域時啟用相容模式。
為了確保下載的軟體保持同步,請將 Red Hat Package Managers (RPMs) 下載到每個執行個體。為了防止管道中出現單點故障,請勿在同一個執行個體上執行 Filebeat 和 Logstash。
在來源 EC2 執行個體上安裝 Filebeat
若要在來源執行個體上安裝 Filebeat,請完成以下步驟:
-
執行以下命令,下載相容 Filebeat 版本的 RPM:
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-8.15.2-x86_64.rpm -
執行以下命令,安裝 Filebeat RPM 檔案:
rpm -ivh filebeat-oss-8.15.2-x86_64.rpm
在單獨的 EC2 執行個體上安裝和設定 Logstash
請完成下列步驟:
-
執行以下命令,下載相容的 Logstash RPM 檔案:
wget https://artifacts.elastic.co/downloads/logstash/logstash-oss-8.15.2-x86_64.rpm -
執行以下命令,在您的 EC2 執行個體上安裝 Java 或 OpenJDK:
yum install java-1.8.0-***注意:**上述命令使用 Java 版本 8 (OpenJDK 1.8)。所有 Logstash 版本都支援 Java 版本 8。
-
執行以下命令,安裝 Logstash RPM 檔案:
rpm -ivh logstash-oss-8.15.2-x86_64.rpm -
執行以下命令,開啟 Logstash 資料目錄:
cd /usr/share/logstash/ -
執行下列命令,為 Logstash 安裝 OpenSearch Service 外掛程式:
bin/logstash-plugin install logstash-output-opensearch -
若要確認 Logstash 外掛程式是否安裝成功,請執行以下命令:
bin/logstash-plugin list**注意:**對於 Logstash OSS 7.13 及更新版本,僅使用 logstash-output-opensearch 外掛程式。版本 7.12.1 同時支援 logstash-output-elasticsearch 和 logstash-output-opensearch 外掛程式。
-
若要確認組態目錄是否存在,請查看 /etc/filebeat 和 /etc/logstash 目錄。
-
若要透過 Logstash 傳送日誌,請在 /etc/filebeat/filebeat.yml 建立 Filebeat 組態檔案。
Filebeat 組態檔案範例:filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false setup.template.settings: index.number_of_shards: 1 index.codec: best_compression #output.elasticsearch: #hosts: ["your-domain-endpoint"] #protocol: "https" output.logstash: # The Logstash hosts hosts: ["Logstash-EC2-InstanceIP:5044"] setup.ilm.enabled: false ilm.enabled: false**注意:**將 Logstash-EC2-InstanceIP:5044 替換為您 Logstash 執行個體的 IP 位址,並將 your-domain-endpoint 替換為您的網域端點。您也可以將日誌直接傳送到 OpenSearch Service。如需詳細資訊,請參閱 GitHub 網站上的 logstash-output-opensearch。
-
在 /etc/logstash/conf.d/logstash.conf 中建立 Logstash 組態檔案。
Logstash 組態檔案範例:
input { beats { port => 5044 } } output { opensearch { hosts => ["https://domain-endpoint:443"] ssl => true index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" user => "my-username" password => "my-password" } }
**注意:**將 domain-endpoint、my-username 和 my-password 替換為您的值。 若要測試與 OpenSearch Service 端點的連線,請執行下列命令:
curl -XGET https://your-domain-endpoint
**注意:**將 your-domain-endpoint 替換為您的網域端點。 (選用) 如果您啟動了精細存取控制 (FGAC),則執行以下命令:
curl -u my-username:my-password -XGET https://your-domain-endpoint
**注意:**將 your-domain-endpoint 替換為您的網域端點。 執行以下命令啟動 Filebeat 和 Logstash 服務:
systemctl start filebeat
systemctl start logstash
- 若要確認 Filebeat 日誌是否已傳送,請向您的 OpenSearch Service 網域執行以下 curl 命令:
curl -XGET https://your-domain-endpoint/_cat/indices
**注意:**將 your-domain-endpoint 替換為您的網域端點。
Filebeat 索引的輸出範例:
green open filebeat-7.16.2-2022.01.27 f97c4WnuQ-CtsAJJaJHUlg 1 1 1511515 0 249.7mb 124.7mb green open .kibana_1 Ioco6fUoSCGkaOvHNCL39g 1 1 1 0 7.4kb 3.7kb
green open filebeat-7.16.2-2022.01.27 f97c4WnuQ-CtsAJJaJHUlg 1 1 1511515 0 249.7mb 124.7mb green open .kibana_1 Ioco6fUoSCGkaOvHNCL39g 1 1 1 0 7.4kb 3.7kb green open filebeat-7.16.2-2022.01.28 4i8W0smlRGGFcQOaDMxonA 1 1 89 0 207.1kb 118.1kb
如果您已成功使用 Amazon EC2 Linux 設定 Filebeat、Logstash 和 OpenSearch 儀表板,您的管線將類似以下範例:
Filebeat > Logstash > Amazon OpenSearch Service/Dashboards
對 401、403 和 Logstash x-pack 安裝錯誤進行疑難排解
401 未授權錯誤
如果 Logstash 傳回「401 Unauthorized」錯誤,表示您的 OpenSearch Service 網域使用了以下其中一項安全性功能:
- FGAC
- Amazon Cognito 驗證
若要解決此問題,請將驗證憑證新增至 Logstash 組態檔案 /etc/logstash/conf.d/logstash.conf。
組態範例:
output { opensearch { hosts => ["https://your-domain-endpoint"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" ilm_enabled => false user => "my-username" password => "my-password" } }
**注意:**將 your-domain-endpoint、my-username 和 my-password 替換為您 OpenSearch Service 網域的值。
403 Forbidden 錯誤
如果 Logstash 沒有存取 OpenSearch Service 所需的 AWS Identity and Access Management (IAM) 權限,就會發生「403 Forbidden」錯誤。
若要解決此問題,請完成以下步驟:
-
執行下列命令,為 Logstash 安裝 OpenSearch Service 外掛程式:
bin/logstash-plugin install logstash-output-opensearch -
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttp*" ], "Resource": "[Amazon-OpenSearch-Domain-ARN]" } ] }**注意:**將 Amazon-OpenSearch-Domain-ARN 替換為您 OpenSearch Service 網域的 Amazon Resource Name (ARN)。
-
更新位於 /etc/logstash/conf.d/logstash.conf 的 Logstash 組態檔案。
Logstash 組態檔案範例:output { opensearch { hosts => ["domain-endpoint"] ssl => true region => "example_region" index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } }**注意:**將 domain-endpoint 和 example-region 替換為您 OpenSearch Service 網域的值。
Logstash x-pack 安裝錯誤
如果 Logstash 因「x-pack plugin」錯誤而啟動失敗,請完成以下步驟:
-
開啟以下登錄檔:
/usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb -
找到以下這行程式碼:
load_xpack unless LogStash::OSS -
將程式碼更新為以下範例:
#load_xpack unless LogStash::OSS -
為防止 x-pack 外掛程式啟動錯誤,請關閉組態檔案中的 Index Life Management (ILM) 設定:
在 Filebeat 中,設定 ilm.enabled: false。
在 Logstash 中,設定 ilm_enabled => false。
相關資訊
- 語言
- 中文 (繁體)

相關內容
- 已提問 1 年前