Docker – logging to Graylog2 container with GELF log-driver raises an error

I want to set up Docker system to run MongoDB, Elasticsearch, Graylog2 and my microservices and also forward all the logs to the Graylog server. I’ve made a docker-compose.yml file to run it altogether:

version: '2'

services:
    elasticsearch:
        image: "elasticsearch:2"
        command: "elasticsearch -Des.cluster.name='graylog'"
        volumes:
          - elasticsearch:/usr/share/elasticsearch/data
        ulimits:
          memlock:
            soft: -1
            hard: -1
          nofile:
            soft: 65536
            hard: 65536
        ports:
            - "9200:9200"
    graylog:
        image: graylog2/server:latest
        environment:
            GRAYLOG_PASSWORD_SECRET: somepasswordpepper
            GRAYLOG_ROOT_PASSWORD_SHA2: 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
            GRAYLOG_WEB_ENDPOINT_URI: http://127.0.0.1:9000/api
        links:
            - mongodb:mongo
            - elasticsearch:elasticsearch
        ports:
            - "9000:9000"
            - "12201/udp:12201/udp"
            - "1514/udp:1514/udp"

    mongodb:
        build: ./docker/mongo
        ports:
            - "27017:27017"
        volumes:
            - mongodb:/data/db

    omsevents:
        build:
            context: ./oms-events
        links:
            - mongodb
        logging:
            driver: "gelf"
            options:
                gelf-address: "udp://graylog:12201"
                tag: "oms-events"

volumes:
    mongodb:
        driver: "local"
    elasticsearch:
        driver: "local"

(the ./docker/mongo and ./oms-events folder contains Dockerfiles to build the image from).

  • Mono TLS1.2 issues - btls-cert-sync “command not found”
  • Docker Compose in Bluemix KeyError Message
  • How do I delete a docker image from docker hub via command line?
  • docker service not listen to tcp port
  • Mysterious UnicodeDecodeError in python3 while building Docker container
  • How to correctly close a Meteor stream?
  • The thing is, if I run it it will throw an error:

    ERROR: for omsevents  Cannot start service omsevents: Failed to initialize logging driver: gelf: cannot connect to GELF endpoint: graylog:12201 dial udp: lookup graylog: no such host
    ERROR: Encountered errors while bringing up the project.
    

    If I remove the logging block from the oms-events config, this will work, but this won’t forward the logs to GELF.

    My guess is that is happening because Graylog and Elasticsearch aren’t set up when the oms-events service is starting, that’s why it cannot connect to it. But I’m not sure about it.

    How can I fix this?

  • Docker installation issues on Windows 10 Home Edition
  • Pulling docker images
  • Docker in Docker docker-compose daemon not running on host. Windows 10
  • Is there a way to download a Docker image without Docker daemon?
  • How can my docker harddrive be bigger than the hosts?
  • Difference between Docker for AWS and Docker Cloud?
  • Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.