如何从外部源连接到docker / rancher容器中托管的Logstash服务

时间:2018-11-03 04:03:42

标签: docker logstash elastic-stack rancher

需要一些帮助我们解决在尝试设置Logstash来解析IIS日志时遇到的Rancher / Docker问题。

有一个容器,其中包含1个服务 Logstash (不是Web服务,而是系统服务,这是ELK堆栈的一部分,我们要使用它来提取给定输入中的文件并解析它们在将它们发送到已配置的输出之前先进入字段(在本例中为Elasticsearch)。

我们需要使该服务可以从外部系统(即将要发送IIS日志进行处理的Web服务器)访问。

  

问题在于我们无法获得端点配置。

rancher上运行的负载均衡器主机有两个打开的端口,应该通过路径名和目标将所有请求引导到内部服务容器,但是我们无法获得配置到logstash服务的路径。

我一直在研究logstash配置,并且在logstash.conf文件中有一个node.name的设置,但是……我还没有用它做任何事情。

希望对这些东西更熟悉的人可以提供一些见识。
基本上,我可以在Rancher上获取Logstash服务以连接到AWS Elasticsearch,但无法在其输入端口上使我们的Web框(带有IIS日志)与Logstash服务连接。

1 个答案:

答案 0 :(得分:0)

解决方案不是使用标准图像,而是对其进行自定义。涉及的步骤:

  • 使用我们需要模拟的文件夹结构创建本地存储库。只要 需要我们将要替换的文件夹

  • 添加一个dockerfile,该文件将用于通过docker run命令构建映像

  • dockerfile中的
  • 在第一行中引用现成的/标准映像作为基础,即'FROM'

  • dockerfile RUN命令中的
  • 会删除需要自定义的目录和文件。在这种情况下,它是logstash /管道 目录和logstash / config目录

  • 使用ADD命令将缺少的目录替换为我们的自定义版本

  • 使用EXPOSE命令公开服务正在侦听的端口

  • 使用docker run和-p标志构建容器以发布我们要打开的端口,并将它们映射到主机容器上的端口