Guest User

graylog_traefik_docker

a guest
Oct 4th, 2020
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.04 KB | None | 0 0
  1. version: '3.4'
  2. services:
  3. traefik:
  4. image: traefik:v2.3.1
  5. restart: always
  6. container_name: traefik
  7. ports:
  8. - "80:80" # <== http
  9. - "8080:8080" # <== :8080 is where the dashboard runs on
  10. - "443:443" # <== https
  11. command:
  12. - --api.insecure=true
  13. - --api.dashboard=true # <== Enabling the dashboard to view services, middlewares, routers, etc...
  14. - --api.debug=true # <== Enabling additional endpoints for debugging and profiling
  15. - --log.level=DEBUG # <== Setting the level of the logs from traefik
  16. - --providers.docker=true # <== Enabling docker as the provider for traefik
  17. - --providers.docker.exposedbydefault=false # <== Don't expose every container to traefik, only expose enabled ones
  18. - --providers.file.filename=/dynamic.yaml # <== Referring to a dynamic configuration file
  19. - --providers.docker.network=frontend # <== Operate on the docker network named web
  20. - --entrypoints.frontend.address=:80 # <== Defining an entrypoint for port :80 named web
  21. - --entrypoints.compose_frontend.address=:443 # <== Defining an entrypoint for https on port :443 named web-secured
  22. - --certificatesresolvers.mytlschallenge.acme.tlschallenge=true
  23. - --certificatesresolvers.mytlschallenge.acme.email=mihirm@example.com
  24. - --certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json
  25.  
  26. volumes:
  27. - ./letsencrypt:/letsencrypt # <== Volume for certs (TLS)
  28. - "/var/run/docker.sock:/var/run/docker.sock"
  29. - ./dynamic.yaml:/dynamic.yaml # <== Volume for dynamic conf file, **ref: line 27
  30.  
  31. networks:
  32. frontend:
  33. logging:
  34. driver: json-file
  35. options:
  36. max-size: "20m"
  37. max-file: "5"
  38.  
  39. graylog2_mongo:
  40. image: mongo:3
  41. container_name: graylog2_mongo
  42. restart: always
  43. labels:
  44. - "traefik.enable=false"
  45. volumes:
  46. - "graylog2_mongo:/data/db"
  47. networks:
  48. backend_graylog2:
  49. logging:
  50. driver: json-file
  51. options:
  52. max-size: "20m"
  53. max-file: "5"
  54.  
  55. graylog2_elasticsearch:
  56. image: docker.elastic.co/elasticsearch/elasticsearch:6.8.10
  57. container_name: graylog2elasticsearch
  58. restart: always
  59. command: elasticsearch -Ecluster.name='graylog'
  60. labels:
  61. - "traefik.enable=false"
  62. volumes:
  63. - "graylog2_elasticsearch:/usr/share/elasticsearch/data"
  64. networks:
  65. backend_graylog2:
  66. logging:
  67. driver: json-file
  68. options:
  69. max-size: "20m"
  70. max-file: "5"
  71.  
  72. graylog2:
  73. image: graylog/graylog:3.3.6
  74. container_name: graylog2
  75. restart: always
  76. env_file:
  77. - ./graylog2.env
  78. labels:
  79. - "traefik.enable=true" # <== Enable traefik to proxy this container
  80. - "traefik.backend=graylog2"
  81. - "traefik.docker.network=compose_frontend"
  82. - "traefik.port=9000"
  83. - "traefik.http.routers.frontend.entryPoints=frontend"
  84. - "traefik.http.routers.frontend.middlewares=redirect@file"
  85. - "traefik.http.routers.frontend.rule=Host(`graylog.localhost)"
  86. - "traefik.http.routers.compose_frontend.rule=Host(`graylog.localhost`)"
  87. - "traefik.http.routers.compose_frontend.entrypoints=compose_frontend"
  88. - "traefik.http.routers.compose_frontend.tls.certresolver=mytlschallenge"
  89. ports:
  90. - "12201:12201/udp"
  91. - "12201:12201"
  92. - "1514:1514/udp"
  93. - "1514:1514"
  94. links:
  95. - graylog2_mongo:mongo
  96. - graylog2_elasticsearch:elasticsearch
  97. volumes:
  98. - "graylog2_graylog2-data:/usr/share/graylog/data/journal"
  99. - "graylog2_graylog2-config:/usr/share/graylog/data/config"
  100. networks:
  101. frontend:
  102. backend_graylog2:
  103. logging:
  104. driver: json-file
  105. options:
  106. max-size: "20m"
  107. max-file: "5"
  108.  
  109. kibana:
  110. container_name: kibana
  111. image: docker.elastic.co/kibana/kibana:6.8.10
  112. labels:
  113. - "traefik.backend=kibana"
  114. - "traefik.docker.network=compose_frontend"
  115. - "traefik.frontend.rule=Host:metrics-graylog.localhost"
  116. - "traefik.frontend.entryPoints=http,https"
  117. - "traefik.port=5601"
  118. networks:
  119. frontend:
  120. backend_graylog2:
  121. links:
  122. - graylog2_elasticsearch:elasticsearch
  123.  
  124. logstash:
  125. container_name: logstash
  126. image: docker.elastic.co/logstash/logstash:6.8.10
  127. volumes:
  128. - ./logstash/pipeline/:/usr/share/logstash/pipeline/
  129. - ./logstash/:/usr/share/logstash/config/
  130. - ./logstash/patterns:/etc/logstash/patterns
  131. - ./logstash/templates:/etc/logstash/templates
  132. - ./logstash/conf.d/:/etc/logstash/conf.d/
  133. ports:
  134. - "5044:5044"
  135. - "5000:5000"
  136. - "5001:5002"
  137. - "5002:5002"
  138. - "9600:9600"
  139. environment:
  140. LS_JAVA_OPTS: "-Xmx10g -Xmx10g"
  141. networks:
  142. frontend:
  143. backend_graylog2:
  144. links:
  145. - graylog2_elasticsearch:elasticsearch
  146.  
  147. volumes:
  148. graylog2_mongo:
  149. graylog2_elasticsearch:
  150. graylog2_graylog2-data:
  151. graylog2_graylog2-config:
  152.  
  153. ##Networks
  154. networks:
  155. frontend:
  156. backend_graylog2:
  157.  
Add Comment
Please, Sign In to add comment