services:
# MongoDB:
https://hub.docker.com/_/mongo/
mongodb6:
image: mongo:6.0.14
container_name: mongodb6
hostname: mongodb6
environment:
- TZ=Asia/Tehran
restart: unless-stopped
#DB in share for persistence
volumes:
- "./mongodb_data:/data/db"
- "./mongodb_config:/data/configdb"
networks:
- graylog
opensearch:
image: opensearchproject/opensearch:2.12.0
container_name: opensearch
hostname: opensearch
volumes:
- ./opensearch-data:/usr/share/opensearch/data
environment:
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
- "bootstrap.memory_lock=true"
- "discovery.type=single-node"
- "action.auto_create_index= true"
- "plugins.security.ssl.http.enabled=false"
- "plugins.security.disabled=true"
- "OPENSEARCH_INITIAL_ADMIN_PASSWORD=<password>"
- "TZ=Asia/Tehran"
ports:
- "9200:9200"
ulimits:
memlock:
hard: -1
soft: -1
nofile:
soft: 65536
hard: 65536
restart: unless-stopped
networks:
- graylog
# Graylog:
https://hub.docker.com/r/graylog/graylog/
graylog6:
image: graylog/graylog:6.0
container_name: graylog6
hostname: graylog6
domainname: internal
#journal and config directories in local NFS share for persistence
volumes:
- ./graylog_data:/usr/share/graylog/data
- ./graylog_data/config/graylog.conf:/usr/share/graylog/data/config/graylog.conf
entrypoint: "/usr/bin/tini -- wait-for-it opensearch:9200 -- /docker-entrypoint.sh"
environment:
# - GRAYLOG_NODE_ID_FILE= "/usr/share/graylog/data/config/node-id"
- GRAYLOG_HTTP_BIND_ADDRESS=127.0.0.1:9000
- GRAYLOG_ELASTICSEARCH_HOSTS=
http://opensearch:9200
- GRAYLOG_MONGODB_URI= mongodb://mongodb6:27017/graylog
# To make reporting (headless_shell) work inside a Docker container
- GRAYLOG_REPORT