需要帮助我们解决在尝试设置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标志构建容器,以发布我们想要打开的端口,并将它们映射到主机容器上的端口