146 lines
3.8 KiB
YAML
146 lines
3.8 KiB
YAML
services:
|
|
# MongoDB: https://hub.docker.com/_/mongo/
|
|
mongodb6:
|
|
image: mongo:6.0.14
|
|
container_name: mongodb6
|
|
hostname: mongodb6
|
|
environment:
|
|
- TZ=America/New_York
|
|
restart: unless-stopped
|
|
#DB in share for persistence
|
|
volumes:
|
|
- type: bind
|
|
source: ./docker-persist/mongo_data/mongo_db
|
|
target: /data/db
|
|
- type: bind
|
|
source: ./docker-persist/mongo_data/mongo_configdb
|
|
target: /data/configdb
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 500mb
|
|
networks:
|
|
backend2:
|
|
ipv4_address: 10.10.14.3
|
|
|
|
|
|
|
|
opensearch:
|
|
image: opensearchproject/opensearch:2.12.0
|
|
container_name: opensearch
|
|
hostname: opensearch
|
|
volumes:
|
|
- ./docker-persist/opensearch-data:/usr/share/opensearch/data
|
|
environment:
|
|
- "OPENSEARCH_JAVA_OPTS=-Xms4g -Xmx8g"
|
|
- "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=yV5z1R5WmznU7Mb1@p%w=7WlbHqDqUw^"
|
|
- TZ=America/New_York
|
|
ports:
|
|
- "9200:9200"
|
|
ulimits:
|
|
memlock:
|
|
hard: -1
|
|
soft: -1
|
|
nofile:
|
|
soft: 65536
|
|
hard: 65536
|
|
restart: unless-stopped
|
|
networks:
|
|
backend2:
|
|
ipv4_address: 10.10.14.4
|
|
|
|
|
|
|
|
|
|
|
|
# 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:
|
|
- ./docker-persist/graylog_data:/usr/share/graylog/data
|
|
entrypoint: "/usr/bin/tini -- wait-for-it 10.10.14.4:9200 -- /docker-entrypoint.sh"
|
|
environment:
|
|
# - GRAYLOG_NODE_ID_FILE= "/usr/share/graylog/data/config/node-id"
|
|
- GRAYLOG_HTTP_BIND_ADDRESS=172.16.1.92:9000
|
|
- GRAYLOG_ELASTICSEARCH_HOSTS= http://10.10.14.4:9200
|
|
- GRAYLOG_MONGODB_URI= mongodb://mongodb6:27017/graylog
|
|
# To make reporting (headless_shell) work inside a Docker container
|
|
- GRAYLOG_REPORT_DISABLE_SANDBOX=true
|
|
# CHANGE ME (must be at least 16 characters)!
|
|
- GRAYLOG_PASSWORD_SECRET=somepasswordpepper
|
|
# Password: "admin"
|
|
- GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
|
|
- GRAYLOG_HTTP_EXTERNAL_URI=http://172.16.1.92:9000/
|
|
- TZ=America/New_York
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 2gb
|
|
networks:
|
|
dmz-macvlan:
|
|
ipv4_address: 172.16.1.92
|
|
backend2:
|
|
ipv4_address: 10.10.14.2
|
|
links:
|
|
- mongodb6:mongo
|
|
- opensearch
|
|
restart: unless-stopped
|
|
depends_on:
|
|
mongodb6:
|
|
condition: service_started
|
|
opensearch:
|
|
condition: service_started
|
|
ports:
|
|
# Graylog web interface and REST API
|
|
- "9000:9000/tcp"
|
|
# Beats
|
|
- "5044:5044/tcp"
|
|
# Syslog TCP
|
|
- "5140:5140/tcp"
|
|
- "514:1514"
|
|
- "1515:1515"
|
|
# Syslog UDP
|
|
- "1514:1514/udp"
|
|
# GELF TCP
|
|
- "12201:12201/tcp"
|
|
# GELF UDP
|
|
- "12201:12201/udp"
|
|
# Forwarder data
|
|
- "13301:13301/tcp"
|
|
# Forwarder config
|
|
- "13302:13302/tcp"
|
|
|
|
|
|
|
|
|
|
# Volumes for persisting data, see https://docs.docker.com/engine/admin/volumes/volumes/
|
|
volumes:
|
|
mongo_db:
|
|
mongo_configdb:
|
|
opensearch-data:
|
|
graylog_data:
|
|
driver: local
|
|
|
|
|
|
# Network specifications
|
|
networks:
|
|
dmz-macvlan:
|
|
external: true
|
|
backend2:
|
|
internal: true
|
|
ipam:
|
|
driver: default
|
|
config:
|
|
- subnet: "10.10.14.0/24"
|