docker-compose.yml 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. - "OPENSEARCH_INITIAL_ADMIN_PASSWORD=SetPassw0rdL3ttersAndNumb3r5"
  35. volumes:
  36. - "log_data:/usr/share/opensearch/data"
  37. ulimits:
  38. memlock:
  39. soft: -1
  40. hard: -1
  41. nofile:
  42. soft: 65536
  43. hard: 65536
  44. ports:
  45. - 9200:9200/tcp
  46. networks:
  47. - graynet
  48. restart: unless-stopped
  49. graylog:
  50. image: graylog/graylog:6.1
  51. container_name: graylog
  52. environment:
  53. # CHANGE ME (must be at least 16 characters)!
  54. GRAYLOG_PASSWORD_SECRET: "somepasswordpepper"
  55. # Password: admin
  56. GRAYLOG_ROOT_PASSWORD_SHA2: "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918"
  57. GRAYLOG_HTTP_BIND_ADDRESS: "0.0.0.0:9000"
  58. GRAYLOG_HTTP_EXTERNAL_URI: "http://localhost:9000/"
  59. GRAYLOG_ELASTICSEARCH_HOSTS: "http://opensearch:9200"
  60. GRAYLOG_MONGODB_URI: "mongodb://mongodb:27017/graylog"
  61. GRAYLOG_TIMEZONE: "America/Detroit"
  62. TZ: "America/Detroit"
  63. GRAYLOG_TRANSPORT_EMAIL_PROTOCOL: "smtp"
  64. GRAYLOG_TRANSPORT_EMAIL_WEB_INTERFACE_URL: "http://192.168.3.233:9000/"
  65. GRAYLOG_TRANSPORT_EMAIL_HOSTNAME: "outbound.mailhop.org"
  66. GRAYLOG_TRANSPORT_EMAIL_ENABLED: "true"
  67. GRAYLOG_TRANSPORT_EMAIL_PORT: "587"
  68. GRAYLOG_TRANSPORT_EMAIL_USE_AUTH: "true"
  69. GRAYLOG_TRANSPORT_EMAIL_AUTH_USERNAME: "xxxxx"
  70. GRAYLOG_TRANSPORT_EMAIL_AUTH_PASSWORD: "xxxxx"
  71. GRAYLOG_TRANSPORT_EMAIL_USE_TLS: "true"
  72. GRAYLOG_TRANSPORT_EMAIL_USE_SSL: "false"
  73. GRAYLOG_TRANSPORT_FROM_EMAIL: "graylog@example.com"
  74. GRAYLOG_TRANSPORT_SUBJECT_PREFIX: "[graylog]"
  75. entrypoint: /usr/bin/tini -- wait-for-it opensearch:9200 -- /docker-entrypoint.sh
  76. volumes:
  77. - "${PWD}/config/graylog/graylog.conf:/usr/share/graylog/config/graylog.conf"
  78. - "graylog_data:/usr/share/graylog/data"
  79. networks:
  80. - graynet
  81. restart: always
  82. depends_on:
  83. opensearch:
  84. condition: "service_started"
  85. mongo:
  86. condition: "service_started"
  87. ports:
  88. - 9000:9000/tcp # Graylog web interface and REST API
  89. - 1514:1514/tcp # Syslog
  90. - 1514:1514/udp # Syslog
  91. - 12201:12201/tcp # GELF
  92. - 12201:12201/udp # GELF