
サーバーが 2 台あります。サーバー A は Elasticsearch と Logstash を実行しています。サーバー B は filebeat を実行しており、分析しようとしているすべてのログが含まれているサーバーでもあります。
サーバー A はファイアウォールの背後にあり、インターネットにアクセスできますが、受信トラフィックを許可することはできません。
サーバー B は AWS 内にあり、受信トラフィックと送信トラフィックを制御できます。
サーバー B からサーバー A の logstash にデータを取得する方法はありますか? 通常の方法では、Filebeat はデータを logstash にプッシュできる必要がありますが、私のシナリオではこれは不可能です。
答え1
B 上の Filebeat (またはその他の Beat) の場合、オプションは次のように制限されます。
- Elasticsearch — ここでは実行できません。
- Redis — いくつかの可能性。
- Kafka — 同様の可能性。
A が B のネットワーク スペースにアクセスできる場合は、B の Filebeat でログを Redis (または Elasticache Redis)、または Kafka (または AWS マネージド Kafka サービス) に保存し、A の Logstash が Redis または Kafka に接続できるようにすることができます。
セキュリティを重視するユーザーのために、Redis では接続時に認証と TLS の両方をサポートする機能が追加されました。バージョン 6.x 以降、特に AWS のバージョンでは、Redis は実際の ACL をサポートしています。