2

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

长篇大论如下:

  • 我们有一个DMZ面向公众的设置
  • 我们有一个intranet托管许多内部系统的环境,包括 ELK 堆栈
  • 由于安全规定,我们无法建立DMZintranet.
  • 然而,我们可以建立intranetDMZ

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

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

  • Filebeat 或任何其他进程在服务器内部收集日志DMZ
  • 在此服务器上,有一些进程(Filebeat, logstash,另一个elasticsearch实例?)将这些信息保存在本地存储中
  • 这个工具(不管它最终是什么)监听一个端口,该端口可从intranet
  • 内部的另一个工具intranet连接到该DMZ工具并提取所有收集的日志以进行进一步处理。

到目前为止,我们的调查只产生了将日志信息推送到logstash或的解决方案elasticsearch

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

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

4

1 回答 1

3

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

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

这是一个简单的管道,带有beats输入、过滤器和kafka输出,如果您不想对数据进行任何扩充,可以将日志从 filebeat 直接发送到 kafka。

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

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

有关更多信息,请阅读kafka 文档,以及 logstash 文档中有关kafka 输入kafka 输出的文档。

于 2019-12-10T14:07:13.053 回答