98 lines
2.9 KiB
YAML
98 lines
2.9 KiB
YAML
version: '3'
|
|
|
|
networks:
|
|
graynet:
|
|
driver: bridge
|
|
|
|
# This is how you persist data between container restarts
|
|
volumes:
|
|
mongo_data:
|
|
driver: local
|
|
log_data:
|
|
driver: local
|
|
graylog_data:
|
|
driver: local
|
|
|
|
services:
|
|
# Graylog stores configuration in MongoDB
|
|
mongo:
|
|
image: mongo:6.0.5-jammy
|
|
container_name: mongodb
|
|
volumes:
|
|
- "mongo_data:/data/db"
|
|
networks:
|
|
- graynet
|
|
restart: unless-stopped
|
|
|
|
# The logs themselves are stored in Opensearch
|
|
opensearch:
|
|
image: opensearchproject/opensearch:2
|
|
container_name: opensearch
|
|
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"
|
|
volumes:
|
|
- "log_data:/usr/share/opensearch/data"
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
nofile:
|
|
soft: 65536
|
|
hard: 65536
|
|
ports:
|
|
- 9200:9200/tcp
|
|
networks:
|
|
- graynet
|
|
restart: unless-stopped
|
|
|
|
graylog:
|
|
image: graylog/graylog:5.1
|
|
container_name: graylog
|
|
environment:
|
|
# CHANGE ME (must be at least 16 characters)!
|
|
GRAYLOG_PASSWORD_SECRET: "somepasswordpepper"
|
|
# Password: admin
|
|
GRAYLOG_ROOT_PASSWORD_SHA2: "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918"
|
|
GRAYLOG_HTTP_BIND_ADDRESS: "0.0.0.0:9000"
|
|
GRAYLOG_HTTP_EXTERNAL_URI: "http://localhost:9000/"
|
|
GRAYLOG_ELASTICSEARCH_HOSTS: "http://opensearch:9200"
|
|
GRAYLOG_MONGODB_URI: "mongodb://mongodb:27017/graylog"
|
|
GRAYLOG_TIMEZONE: "Europe/Paris"
|
|
TZ: "Europe/Paris"
|
|
GRAYLOG_TRANSPORT_EMAIL_PROTOCOL: "smtp"
|
|
GRAYLOG_TRANSPORT_EMAIL_WEB_INTERFACE_URL: "http://192.168.3.233:9000/"
|
|
GRAYLOG_TRANSPORT_EMAIL_HOSTNAME: "webmail.tips-of-mine.fr"
|
|
GRAYLOG_TRANSPORT_EMAIL_ENABLED: "true"
|
|
GRAYLOG_TRANSPORT_EMAIL_PORT: "587"
|
|
GRAYLOG_TRANSPORT_EMAIL_USE_AUTH: "true"
|
|
GRAYLOG_TRANSPORT_EMAIL_AUTH_USERNAME: "xxxxx"
|
|
GRAYLOG_TRANSPORT_EMAIL_AUTH_PASSWORD: "xxxxx"
|
|
GRAYLOG_TRANSPORT_EMAIL_USE_TLS: "true"
|
|
GRAYLOG_TRANSPORT_EMAIL_USE_SSL: "false"
|
|
GRAYLOG_TRANSPORT_FROM_EMAIL: "graylog@tips-of-mine.fr"
|
|
GRAYLOG_TRANSPORT_SUBJECT_PREFIX: "[graylog]"
|
|
|
|
entrypoint: /usr/bin/tini -- wait-for-it opensearch:9200 -- /docker-entrypoint.sh
|
|
volumes:
|
|
- "${PWD}/config/graylog/graylog.conf:/usr/share/graylog/config/graylog.conf"
|
|
- "graylog_data:/usr/share/graylog/data"
|
|
networks:
|
|
- graynet
|
|
restart: always
|
|
depends_on:
|
|
opensearch:
|
|
condition: "service_started"
|
|
mongo:
|
|
condition: "service_started"
|
|
ports:
|
|
- 9000:9000/tcp # Graylog web interface and REST API
|
|
- 1514:1514/tcp # Syslog
|
|
- 1514:1514/udp # Syslog
|
|
- 12201:12201/tcp # GELF
|
|
- 12201:12201/udp # GELF
|