Unable to connect docker container to logstash via gelf driver Unable to connect docker container to logstash via gelf driver docker docker

Unable to connect docker container to logstash via gelf driver


I've found the mistake, i've to specify the UDP protocol in the logstash service port definition.

logstash:  build: logstash/  volumes:    - ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml    - ./logstash/pipeline:/usr/share/logstash/pipeline  ports:    - "5000:5000/udp"  environment:    LS_JAVA_OPTS: "-Xmx256m -Xms256m"  networks:    - elk  depends_on:    - elasticsearch


You need to use the gelf input plugin. Here an example of a functioning compose file:

services:  logstash:    image: docker.elastic.co/logstash/logstash:5.3.1    logging:      driver: "json-file"    networks:      - logging    ports:      - "127.0.0.1:12201:12201/udp"    entrypoint: logstash -e 'input { gelf { } } output { stdout{ } }'    

You can test it by running:

docker run --log-driver=gelf --log-opt gelf-address=udp://127.0.0.1:12201 ubuntu /bin/sh -c 'while true; do date "+%d-%m-%Y %H:%M:%S:%3N"; sleep 1 ; done

and checking docker logs on the logstash container.