У Docker есть прекрасная возможноть логировать сообщения и отправлять с помощью различных двайверов. 
https://docs.docker.com/config/containers/logging/...
Один из них, который работает прекрастно с Logstash, это gelf
Пример запуска
docker run -d \
-p 80:80 \
--name nginx-logs \
--log-driver=gelf \
--log-opt gelf-address=udp://ELK-host:12201 \
--log-opt tag=site.com.ua \ 
nginx
Если это docker-compose, тогда так:
services:
  nginx:
    image: nginx
    hostname: nginx-log
    logging:
       driver: gelf
       options:
         gelf-address: "udp://ELK-host:12201"
         tag: "site.com.ua"
В свою очередь, конфиг Logstash для директивы input такой
input {
  beats {
    port => 5044
  }
  gelf {
    port => 12201
    type => gelf
  }
}
Единстенное, сейчас ищу как эти контейнеры с помощью Logstash разделить в Kibana с помощью тегов, когда их много. Ищу синтаксис конструкции для директивы output.