Задать вопрос
  • Как собирать логи из Docker контейнеров снаружи этих самих контейнеров?

    @Adept_23
    У 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.
    Ответ написан
    Комментировать