从远程服务器拉取日志到elasticsearch

Pull logs from remote server into elasticsearch

简短的问题是:是否可以从远程服务器提取日志(在日志文件中)并将它们摄取到 ELK 堆栈中。

长话短说:

由于此设置,我们无法按照正常路径在存储日志的服务器上安装 Filebeat 并将消息推送到我们的 logstash 安装。

我们想要做的事情看起来有点像下面这样:

到目前为止,我们的调查只得出将日志信息推送到 logstashelasticsearch 的解决方案。

我们不想做的一件事是使用文件共享使日志文件直接从 intranet

我们的问题是我们的想法是否完全可行,如果可行,我们将使用哪些工具和设置来实现这一目标。

您可以使用 Kafka 作为消息代理尝试以下操作

在您的 DMZ 服务器上,您将使用 filebeat 收集日志并发送到 logstash 实例,然后该 logstash 实例会将您的日志输出到 kafka。

这是一个简单的管道,有一个 beats 输入,你的过滤器和一个 kafka 输出,如果你不想对你的数据做任何丰富,你可以直接发送你的日志从 filebeat 到 kafka。

然后您的 kafka 代理将监听一个端口并等待任何消费者连接并使用消息。

在您的 intranet 上,您需要一个带有使用 kafka 输入的管道的 logstash 实例,该管道将充当 kafka 消费者并提取您的消息,然后您可以使用 elasticsearch 输出然后存储在你的 intranet elasticsearch 集群中。

有关更多信息,请阅读 logstash 文档中的 kafka documentation, and the documentation for the kafka input and kafka output