docker-compose.yml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. version: '3'
  2. networks:
  3. graynet:
  4. driver: bridge
  5. # This is how you persist data between container restarts
  6. volumes:
  7. mongo_data:
  8. driver: local
  9. os_data:
  10. driver: local
  11. graylog_data:
  12. driver: local
  13. services:
  14. # Graylog stores configuration in MongoDB
  15. mongo:
  16. image: mongo:6.0.5-jammy
  17. container_name: mongodb
  18. volumes:
  19. - "mongo_data:/data/db"
  20. networks:
  21. - graynet
  22. restart: unless-stopped
  23. # The logs themselves are stored in Opensearch
  24. opensearch:
  25. image: opensearchproject/opensearch:2
  26. container_name: opensearch
  27. environment:
  28. - "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
  29. - "bootstrap.memory_lock=true"
  30. - "discovery.type=single-node"
  31. - "action.auto_create_index=false"
  32. - "plugins.security.ssl.http.enabled=false"
  33. - "plugins.security.disabled=true"
  34. volumes:
  35. - "os_data:/usr/share/opensearch/data"
  36. ulimits:
  37. memlock:
  38. soft: -1
  39. hard: -1
  40. nofile:
  41. soft: 65536
  42. hard: 65536
  43. ports:
  44. - 9200:9200/tcp
  45. networks:
  46. - graynet
  47. restart: unless-stopped
  48. graylog:
  49. image: graylog/graylog:5.0
  50. container_name: graylog
  51. environment:
  52. # CHANGE ME (must be at least 16 characters)!
  53. GRAYLOG_PASSWORD_SECRET: "somepasswordpepper"
  54. # Password: admin
  55. GRAYLOG_ROOT_PASSWORD_SHA2: "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918"
  56. GRAYLOG_HTTP_BIND_ADDRESS: "0.0.0.0:9000"
  57. GRAYLOG_HTTP_EXTERNAL_URI: "http://localhost:9000/"
  58. GRAYLOG_ELASTICSEARCH_HOSTS: "http://opensearch:9200"
  59. GRAYLOG_MONGODB_URI: "mongodb://mongodb:27017/graylog"
  60. GRAYLOG_TIMEZONE: "America/Detroit"
  61. TZ: "America/Detroit"
  62. entrypoint: /usr/bin/tini -- wait-for-it opensearch:9200 -- /docker-entrypoint.sh
  63. volumes:
  64. - "${PWD}/config/graylog/graylog.conf:/usr/share/graylog/config/graylog.conf"
  65. - "graylog_data:/usr/share/graylog/data"
  66. networks:
  67. - graynet
  68. restart: always
  69. depends_on:
  70. opensearch:
  71. condition: "service_started"
  72. mongo:
  73. condition: "service_started"
  74. ports:
  75. - 9000:9000/tcp # Graylog web interface and REST API
  76. - 1514:1514/tcp # Syslog
  77. - 1514:1514/udp # Syslog
  78. - 12201:12201/tcp # GELF
  79. - 12201:12201/udp # GELF