Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- version: '3.4'
- services:
- traefik:
- image: traefik:v2.3.1
- restart: always
- container_name: traefik
- ports:
- - "80:80" # <== http
- - "8080:8080" # <== :8080 is where the dashboard runs on
- - "443:443" # <== https
- command:
- - --api.insecure=true
- - --api.dashboard=true # <== Enabling the dashboard to view services, middlewares, routers, etc...
- - --api.debug=true # <== Enabling additional endpoints for debugging and profiling
- - --log.level=DEBUG # <== Setting the level of the logs from traefik
- - --providers.docker=true # <== Enabling docker as the provider for traefik
- - --providers.docker.exposedbydefault=false # <== Don't expose every container to traefik, only expose enabled ones
- - --providers.file.filename=/dynamic.yaml # <== Referring to a dynamic configuration file
- - --providers.docker.network=frontend # <== Operate on the docker network named web
- - --entrypoints.frontend.address=:80 # <== Defining an entrypoint for port :80 named web
- - --entrypoints.compose_frontend.address=:443 # <== Defining an entrypoint for https on port :443 named web-secured
- - --certificatesresolvers.mytlschallenge.acme.tlschallenge=true
- - --certificatesresolvers.mytlschallenge.acme.email=mihirm@example.com
- - --certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json
- volumes:
- - ./letsencrypt:/letsencrypt # <== Volume for certs (TLS)
- - "/var/run/docker.sock:/var/run/docker.sock"
- - ./dynamic.yaml:/dynamic.yaml # <== Volume for dynamic conf file, **ref: line 27
- networks:
- frontend:
- logging:
- driver: json-file
- options:
- max-size: "20m"
- max-file: "5"
- graylog2_mongo:
- image: mongo:3
- container_name: graylog2_mongo
- restart: always
- labels:
- - "traefik.enable=false"
- volumes:
- - "graylog2_mongo:/data/db"
- networks:
- backend_graylog2:
- logging:
- driver: json-file
- options:
- max-size: "20m"
- max-file: "5"
- graylog2_elasticsearch:
- image: docker.elastic.co/elasticsearch/elasticsearch:6.8.10
- container_name: graylog2elasticsearch
- restart: always
- command: elasticsearch -Ecluster.name='graylog'
- labels:
- - "traefik.enable=false"
- volumes:
- - "graylog2_elasticsearch:/usr/share/elasticsearch/data"
- networks:
- backend_graylog2:
- logging:
- driver: json-file
- options:
- max-size: "20m"
- max-file: "5"
- graylog2:
- image: graylog/graylog:3.3.6
- container_name: graylog2
- restart: always
- env_file:
- - ./graylog2.env
- labels:
- - "traefik.enable=true" # <== Enable traefik to proxy this container
- - "traefik.backend=graylog2"
- - "traefik.docker.network=compose_frontend"
- - "traefik.port=9000"
- - "traefik.http.routers.frontend.entryPoints=frontend"
- - "traefik.http.routers.frontend.middlewares=redirect@file"
- - "traefik.http.routers.frontend.rule=Host(`graylog.localhost)"
- - "traefik.http.routers.compose_frontend.rule=Host(`graylog.localhost`)"
- - "traefik.http.routers.compose_frontend.entrypoints=compose_frontend"
- - "traefik.http.routers.compose_frontend.tls.certresolver=mytlschallenge"
- ports:
- - "12201:12201/udp"
- - "12201:12201"
- - "1514:1514/udp"
- - "1514:1514"
- links:
- - graylog2_mongo:mongo
- - graylog2_elasticsearch:elasticsearch
- volumes:
- - "graylog2_graylog2-data:/usr/share/graylog/data/journal"
- - "graylog2_graylog2-config:/usr/share/graylog/data/config"
- networks:
- frontend:
- backend_graylog2:
- logging:
- driver: json-file
- options:
- max-size: "20m"
- max-file: "5"
- kibana:
- container_name: kibana
- image: docker.elastic.co/kibana/kibana:6.8.10
- labels:
- - "traefik.backend=kibana"
- - "traefik.docker.network=compose_frontend"
- - "traefik.frontend.rule=Host:metrics-graylog.localhost"
- - "traefik.frontend.entryPoints=http,https"
- - "traefik.port=5601"
- networks:
- frontend:
- backend_graylog2:
- links:
- - graylog2_elasticsearch:elasticsearch
- logstash:
- container_name: logstash
- image: docker.elastic.co/logstash/logstash:6.8.10
- volumes:
- - ./logstash/pipeline/:/usr/share/logstash/pipeline/
- - ./logstash/:/usr/share/logstash/config/
- - ./logstash/patterns:/etc/logstash/patterns
- - ./logstash/templates:/etc/logstash/templates
- - ./logstash/conf.d/:/etc/logstash/conf.d/
- ports:
- - "5044:5044"
- - "5000:5000"
- - "5001:5002"
- - "5002:5002"
- - "9600:9600"
- environment:
- LS_JAVA_OPTS: "-Xmx10g -Xmx10g"
- networks:
- frontend:
- backend_graylog2:
- links:
- - graylog2_elasticsearch:elasticsearch
- volumes:
- graylog2_mongo:
- graylog2_elasticsearch:
- graylog2_graylog2-data:
- graylog2_graylog2-config:
- ##Networks
- networks:
- frontend:
- backend_graylog2:
Add Comment
Please, Sign In to add comment