是否可以使用 gelf 将日志从 docker 容器中继到多个服务器?

Is it possible to relay the logs from a docker container to more than one server using gelf?

目前,我有一个 docker 容器使用 gelf 将日志发送到 Logstash。在用于创建容器的 docker-compose 文件中设置了非常标准的配置。

我正在研究将 docker 容器的日志发送到多个 ELK 实例的可行性。这不是生产所必需的,但会大大提高我们开发团队的生活质量。

阅读the docs,似乎我需要的是不可能的(至少,他们没有提到gelf-address 属性是否接受URI列表,在我寻找更多信息时,我必须假定它不会。

有谁知道这是否可以实现?谢谢!

查看docker的代码here and here我会说目前只支持单个目标地址。

// New creates a gelf logger using the configuration passed in on the
// context. The supported context configuration variable is gelf-address.
func New(info logger.Info) (logger.Logger, error) {
    // parse gelf address
    address, err := parseAddress(info.Config["gelf-address"])

这个项目 andviro/grayproxy 可能会帮助您获取单个 GELF 输入,并将其转发给多个 GELF 收集器:

By default grayproxy configures the input at udp://0.0.0.0:12201 and no outputs. Outputs are added using -out flag and may be specified multiple times