【问题标题】:Pull logs from remote server into elasticsearch从远程服务器拉日志到elasticsearch
【发布时间】:2020-04-03 13:43:36
【问题描述】:

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

长篇大论如下:

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

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

我们想做的事情看起来有点像以下:

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

到目前为止,我们的调查仅产生了将日志信息推送到 logstashelasticsearch 的解决方案。

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

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

【问题讨论】:

    标签: elasticsearch logstash filebeat elk elastic-beats


    【解决方案1】:

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

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

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

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

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

    有关详细信息,请阅读 kafka documentation,以及 logstash 文档中的 kafka inputkafka output 文档。

    【讨论】:

    • Kafka 是一个很好的解决方法。这将需要额外的基础设施,但我想这是我们必须做出的权衡。感谢您的提示! (我找到了另一个几乎相同的解决方案,只是使用另一个弹性搜索实例来缓冲消息)。但我更喜欢 Kafka,感觉配置/设置占用空间比其他 elasticsearch 安装少。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多