Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Amazon Linux で Filebeat と Logstash を使用して OpenSearch Service に接続するにはどうすればよいですか?
Amazon Linux で Filebeat と Logstash を使用して Amazon OpenSearch Service クラスターに接続していますが、エラーが発生します。
簡単な説明
Logstash を使用して Amazon OpenSearch Service に接続するには、以下の手順を実行してください:
1. OpenSearch Service にログを転送するには、ポート 443 などのセキュリティポートを設定します。
2. Filebeat、Logstash、OpenSearch Service の設定を更新します。
3. Filebeat を、ソースの Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにインストールします。YAML 設定ファイルが正常にインストールおよび設定されていることを確認します。
4. ログの送信元である別の Amazon EC2 インスタンスに Logstash をインストールします。
注: Logstash が正しくセットアップまたは設定されていないと、「401 Authorization」エラー、「403 Forbidden」エラー、x-pack インストールエラーのいずれかが発生します。
解決方法
セキュリティポートを設定する
Logstash からログを転送するようにセキュリティポートを設定します:
1. Apache と Filebeat をインストールした EC2 インスタンスを作成して、インスタンスが Logstash から OpenSearch Service にログを転送できるようにします。
2. EC2 インスタンスが OpenSearch Service の仮想プライベートクラウド (VPC) と同じセキュリティグループにあることを確認します。
3. Logstash と OpenSearch Service の間でデータを送信できるように、セキュリティグループでポート 80、443、5044 が開いていることを確認します。
Filebeat、Logstash、OpenSearch Service の設定を更新する
従来の Elasticsearch バージョンの OpenSearch Service は、同じバージョンの Filebeat と Logstash を使用する場合に最も適切に動作します。次のサービスバージョンには、互換性のあるバージョンを使用してください:
- Filebeat バージョン x.x
- Logstash バージョン x.x (Log4j セキュリティパッチ用の v7.16.2 および v6.8.22)
- 従来の Elasticsearch バージョン x.x での OpenSearch Service
前の例では、バージョン番号の「x.x」が設定と一致している必要があります。
注:
- OpenSearch Service 1.x を互換モードで使用している場合、OpenSearch Service はそのバージョンを 7.10 と報告します。互換性マトリックスを確認して、Filebeat と Logstash の適切なバージョンを選択してください。詳細については、Elasticsearch ウェブサイトの「サポート一覧表」を参照してください。
- OpenSearch Service バージョン 1.0 以降を使用している場合は、ドメインを初めて起動したときに互換モードが有効になっていることを確認してください。
ダウンロードしたソフトウェアの同期を維持するには、各 EC2 インスタンスに RPM をダウンロードします。パイプラインでの単一障害点を防ぐために、Filebeat と Logstash は同じ EC2 インスタンスで実行しないでください。
Filebeat をソース EC2 インスタンスにインストールする
1. 互換性のある Filebeat バージョンの RPM をダウンロードします:
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-7.16.2-x86_64.rpm
2. Filebeat RPM ファイルをインストールします:
rpm -ivh filebeat-oss-7.16.2-x86_64.rpm
ログの送信元となる別の EC2 インスタンスに Logstash をインストールする
1. 互換性のある Logstash バージョンの RPM ファイルをダウンロードします:
wget https://artifacts.elastic.co/downloads/logstash/logstash-oss-7.16.2-x86_64.rpm
注: この例では、互換モードが有効になっている OpenSearch Service バージョン 1.1 の Filebeat と Logstash のバージョン 7.16 を使用しています。
2. EC2 インスタンスに Java または OpenJDK をインストールします:
yum install java-1.8.0-*
3. rpm コマンドを実行して、Logstash 用にダウンロードした RPM ファイルをインストールします:
rpm -ivh logstash-oss-7.16.2-x86_64.rpm
注: Logstash を実行するには Java が必要です。この例では、Logstash のすべてのバージョンでサポートされている Java バージョン 8 (Open JDK 1.8) を使用しています。サポートされている Java と Logstash のバージョンの詳細については、Elasticsearch ウェブサイトの「サポート一覧表」を参照してください。
4. OpenSearch Service 用の Logstash プラグインをインストールします:
bin/logstash-plugin install logstash-output-opensearch
5. OpenSearch 用の Logstash プラグインがインストールされていることを確認します:
bin/logstash-plugin list
注: Logstash OSS バージョン 7.12.1 では、logstash-output-elasticsearch プラグインと logstash-output-opensearch プラグインの両方をサポートしています。Logstash OSS バージョン 7.13 以降では、logstash-output-opensearch プラグインのみをサポートしています。
6. /etc/filebeat ディレクトリと /etc/logstash ディレクトリをチェックして、設定ファイルを確認します。
7. Filebeat の場合は、出力を Logstash または OpenSearch Service (GitHub のウェブサイトから) のいずれかに更新してください。ログを送信するように指定し、サービスを開始します。
注: Filebeat を使用して OpenSearch Dashboards にテンプレートをアップロードしようとすると、アップロードは失敗します。Filebeat は、クラスターが x-pack プラグインをサポートしていることを前提としています。
8. Filebeat の YAML 設定ファイルを更新して、Apache のアクセスログを Logstash に送信します。
YAML ファイルの例:
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: ["vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com:443"] #protocol: "https" output.logstash: # The Logstash hosts hosts: ["Logstash-EC2-InstanceIP:5044"] setup.ilm.enabled: false ilm.enabled: false
9. Logstash の設定ファイルがポート 5044 で Filebeat にアクセスできることを確認します。ポート 5044 へのアクセスにより、Logstash は OpenSearch Service の VPC エンドポイントにリクエストを転送できます。
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" } }
10. Logstash インスタンスから OpenSearch Service のエンドポイントにアクセスできることを確認します:
curl -XGET https://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com
11. (オプション) きめ細かなアクセスコントロール (FGAC) を有効にした場合は、次のコマンドを実行します:
curl -u my-username:my-password -XGET https://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com
注: タイムアウトの問題が発生した場合は、Logstash EC2 インスタンスが OpenSearch Service 用の VPC と同じセキュリティグループに属していることを確認してください。また、セキュリティグループでポート 80、443、5044 が開いていることを確認してください。
12. 次のコマンドを実行して、各インスタンスで Filebeat および Logstash サービスを開始します:
Filebeat
systemctl start filebeat (service filebeat start)
Logstash
cp /etc/logstash/logstash.conf /etc/logstash/conf.d/ systemctl start logstash (service logstash start)
13. お使いの OpenSearch Service ドメインで cat index API コールを実行し、Filebeat のログが送信されていることを確認します。ログが正常に送信されると、次の応答が表示されます:
curl -XGET https://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com/_cat/indices 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
デフォルトでは、Filebeat のインデックスは毎日ローテーションされます。
Filebeat のインデックスの出力例:
curl -XGET https://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com/_cat/indices 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 Dashboards を正常に設定した場合、パイプラインは次のようになります:
Filebeat > Logstash > Amazon OpenSearch Service/Dashboards
「401 Unauthorized」エラー
Logstash から「401 Unauthorized」エラーが表示される場合は、OpenSearch Service ドメインが FGAC または Amazon Cognito によって保護されていることを示しいます。FGAC では、ドメインのアクセスポリシーで定義する必要があるユーザーまたはロールによる署名付きリクエストが必要です。「401 Unauthorized」エラーが表示された場合は、Logstash の設定ファイルで FGAC を有効にしてください。
Logstash ファイルの例:
output { opensearch { hosts => ["https://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com:443"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" ilm_enabled => false user => "my-username" password => "my-password" } }
「403 Forbidden」エラー
Logstash を使用して OpenSearch Service にデータを送信すると、「403 Forbidden」エラーが表示されることがあります。このエラーは、Logstash に必要な権限がなく、AWS Identity Access Management (IAM) の ID の検証に失敗した場合に発生します。この問題を解決するには、IAM 認証情報を使用して OpenSearch Service へのリクエストに署名します。
Logstash を使用して OpenSearch Service のリクエストに署名する:
1. OpenSearch Service 用の Logstash プラグインをインストールします:
bin/logstash-plugin install logstash-output-opensearch
2. IAM ロールをインスタンスにアタッチします:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttp*" ], "Resource": "[Amazon-OpenSearch-Domain-ARN]" } ] }
3. Logstash の設定を更新して、Logstash の「opensearch」プラグインをパイプラインの出力として使用します:
output { opensearch { hosts => ["domain-endpoint"] ssl => true region => "us-east-1" index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } }
Logstash の x-pack インストールエラー
Logstash の起動時に x-pack でエラーが発生する場合は、レジストリファイルから x-pack プラグインを手動で無効にしてください。
x-pack プラグインを手動で無効にする:
1. 次のファイルを開きます:
/usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb
2. load\ _xpack を検索してインラインでコメントします:
"load_xpack unless LogStash::OSS" >> "#load_xpack unless LogStash::OSS"
注: 設定ファイルで、Index Life Management (ILM) の設定の ilm.enabled と ilm\ _enabled が両方とも false に設定されていることを確認できます。設定ファイルでこれらの ILM 設定を無効にすると、x-pack プラグインの起動エラーが発生しなくなります。
関連情報

関連するコンテンツ
- 質問済み 9ヶ月前lg...
- AWS公式更新しました 2年前