docker-compose.yml 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. log_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. - "log_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.1
  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. GRAYLOG_TRANSPORT_EMAIL_PROTOCOL: "smtp"
  63. GRAYLOG_TRANSPORT_EMAIL_WEB_INTERFACE_URL: "http://192.168.3.233:9000/"
  64. GRAYLOG_TRANSPORT_EMAIL_HOSTNAME: "outbound.mailhop.org"
  65. GRAYLOG_TRANSPORT_EMAIL_ENABLED: "true"
  66. GRAYLOG_TRANSPORT_EMAIL_PORT: "587"
  67. GRAYLOG_TRANSPORT_EMAIL_USE_AUTH: "true"
  68. GRAYLOG_TRANSPORT_EMAIL_AUTH_USERNAME: "xxxxx"
  69. GRAYLOG_TRANSPORT_EMAIL_AUTH_PASSWORD: "xxxxx"
  70. GRAYLOG_TRANSPORT_EMAIL_USE_TLS: "true"
  71. GRAYLOG_TRANSPORT_EMAIL_USE_SSL: "false"
  72. GRAYLOG_TRANSPORT_FROM_EMAIL: "graylog@example.com"
  73. GRAYLOG_TRANSPORT_SUBJECT_PREFIX: "[graylog]"
  74. entrypoint: /usr/bin/tini -- wait-for-it opensearch:9200 -- /docker-entrypoint.sh
  75. volumes:
  76. - "${PWD}/config/graylog/graylog.conf:/usr/share/graylog/config/graylog.conf"
  77. - "graylog_data:/usr/share/graylog/data"
  78. networks:
  79. - graynet
  80. restart: always
  81. depends_on:
  82. opensearch:
  83. condition: "service_started"
  84. mongo:
  85. condition: "service_started"
  86. ports:
  87. - 9000:9000/tcp # Graylog web interface and REST API
  88. - 1514:1514/tcp # Syslog
  89. - 1514:1514/udp # Syslog
  90. - 12201:12201/tcp # GELF
  91. - 12201:12201/udp # GELF