services: # MongoDB: https://hub.docker.com/_/mongo/ mongodb: image: "mongo:6.0.14" networks: - graylog opensearch: image: "opensearchproject/opensearch:2.12.0" environment: - "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g" - "bootstrap.memory_lock=true" - "discovery.type=single-node" - "action.auto_create_index=false" - "plugins.security.ssl.http.enabled=false" - "plugins.security.disabled=true" # Can generate a password for `OPENSEARCH_INITIAL_ADMIN_PASSWORD` using a linux device via: # tr -dc A-Z-a-z-0-9_@#%^-_=+ < /dev/urandom | head -c${1:-32} - OPENSEARCH_INITIAL_ADMIN_PASSWORD=+_8r#wliY3Pv5-HMIf4qzXImYzZf-M=M ulimits: memlock: hard: -1 soft: -1 nofile: soft: 65536 hard: 65536 restart: "on-failure" networks: - graylog # Graylog: https://hub.docker.com/r/graylog/graylog/ graylog: image: "graylog/graylog:5.2" environment: - GRAYLOG_NODE_ID_FILE=/usr/share/graylog/data/config/node-id - GRAYLOG_HTTP_BIND_ADDRESS=0.0.0.0:9000 - GRAYLOG_ELASTICSEARCH_HOSTS=http://opensearch:9200 - GRAYLOG_MONGODB_URI=mongodb://mongodb:27017/graylog # CHANGE ME (must be at least 16 characters)! - GRAYLOG_PASSWORD_SECRET=somepasswordpepper # Password: admin - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 - GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/ entrypoint: /usr/bin/tini -- wait-for-it elasticsearch:9200 -- /docker-entrypoint.sh networks: - graylog restart: always depends_on: - mongodb - opensearch ports: # Graylog web interface and REST API - 9000:9000 # Syslog TCP - 1514:1514 # Syslog UDP - 1514:1514/udp # GELF TCP - 12201:12201 # GELF UDP - 12201:12201/udp networks: graylog: driver: bridge