Files
docker-greylog/docker-compose.yaml
2024-10-18 02:49:54 +00:00

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"