我有两台服务器。服务器 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 Managed Kafka Services),其中 A 上的 Logstash 可以连接到 Redis 或 Kafka。
出于安全考虑,Redis 现在能够支持通过连接进行身份验证和 TLS。在 6.x 及更高版本中,尤其是 AWS 版本,Redis 具有实际的 ACL 支持。