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



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

有一个包含1个服务的容器Logstash(不是web服务,而是系统服务,ELK堆栈的一部分,我们希望使用它从给定的输入中获取文件,并在将其发送到配置的输出之前将其解析为字段——在本例中为Elasticsearch(。

我们需要从外部系统(即我们的web服务器,它将发送IIS日志进行处理(访问该服务。

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

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

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

希望更熟悉这些东西的人能提供一些见解
基本上,我可以让Rancher上的Logstash服务连接到AWS Elasticsearch,但我无法让我们的web框(带有IIS日志(连接到其输入端口上的Logstash服务。

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

  • 使用我们需要模拟的文件夹结构创建本地repo。只有我们要替换的文件夹需要

  • 添加一个docker文件,该文件将用于从docker运行的命令构建图像

  • 在dockerfile中,将现成/标准图像作为第一行的基础,即"FROM">

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

  • 使用ADD命令用我们的自定义版本替换丢失的目录

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

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

最新更新