LogStash输入文件配置 - 从不同Docker获取输入文件



我正在使用docker。我的日志文件在一个docker中,在另一个docker中运行的logstash。

input {
  file {
    path => "/folder/file.log"
    start_position => "end"
    id => "file"
  }
}

我如何从Docker1

告诉获取输入文件

有不同的方法可以实现这一目标。首先只使用volumes在几个容器之间共享数据。一个容器会将数据写入卷,另一个容器 - 读。

示例:

docker volume create foo
docker run -d --name writer -v foo:/var/log <image-name>
docker run -d --name logstash -v foo:/folder:ro <logstash-blah-blag>

注意,我的logStash中的 ro mode已安装卷,因为它只需要读取访问。在此配置中,所有数据中的所有数据都将其写入/var/log文件夹中的所有数据将在Logstash中可见为/folder

第二种方法更好 - 使用tcp/ip代替卷。您需要在容器1中设置FileBeat(弹性的另一个工具),并将其配置为将数据发送到LogStash中。然后只需在LogStash中使用beats而不是file输入即可。示例:

input {
    beats {
        port => 5400
    }
}

相关内容

最新更新