将日志从远程服务器拉入Elasticsearch

时间:2019-12-10 11:21:14

标签: elasticsearch logstash filebeat elk elastic-beats

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

长话如下:

  • 我们有一个DMZ且面向公众的设置
  • 我们有一个intranet环境,该环境托管许多内部系统,包括ELK堆栈
  • 由于安全规定,我们无法建立从DMZintranet的连接(在IP级别上)。
  • 但是我们可以建立从intranetDMZ
  • 的连接

由于此设置,我们无法遵循在存储日志的服务器上安装Filebeat并将邮件推送到我们的logstash安装的常规方法。

我们想做的事情看起来类似于以下内容:

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

我们的调查结果只得出了将日志信息推送到logstashelasticsearch的解决方案。

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

我们的问题是,我们的想法是否完全可能实现,如果可以的话,我们将使用什么工具以及使用哪种设置来实现这一目标。

1 个答案:

答案 0 :(得分:1)

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

在您的DMZ服务器上,您将通过文件拍收集日志并将其发送到Logstash实例,然后该Logstash实例会将您的日志输出到Kafka。

这是一个简单的管道,具有beats输入,fitler和kafka输出,如果您不想对数据进行任何扩充,则可以将日志直接发送到kafka来自文件拍。

然后您的kafka经纪人将在端口上侦听并等待任何使用者连接并使用消息。

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

有关更多信息,请阅读logstash文档中的kafka documentationkafka inputkafka output的文档。

相关问题