關於 Graylog 的 Docker 配置將分為上下兩篇 (預計) 介紹,本篇提供的簡易配置可以讓使用者能快速上手:
services:
mongodb:
image: mongo:6.0
volumes:
- mongodb_data:/data/db
- mongodb_config:/data/configdb
restart: unless-stopped
opensearch:
image: opensearchproject/opensearch:2.12.0
environment:
- "discovery.type=single-node"
- "plugins.security.disabled=true"
- "OPENSEARCH_INITIAL_ADMIN_PASSWORD=your-opensearch-password"
ports:
- "9200:9200"
volumes:
- opensearch_data:/usr/share/opensearch/data
restart: unless-stopped
graylog:
image: graylog/graylog:6.2
depends_on:
- mongodb
- opensearch
environment:
- GRAYLOG_HTTP_BIND_ADDRESS=0.0.0.0:9000
- GRAYLOG_HTTP_EXTERNAL_URI=http://localhost:9000/
- GRAYLOG_MONGODB_URI=mongodb://mongodb:27017/graylog
- GRAYLOG_ELASTICSEARCH_HOSTS=http://opensearch:9200
- GRAYLOG_PASSWORD_SECRET="your-password-secret"
- GRAYLOG_ROOT_PASSWORD_SHA2="your-password-sha2"
ports:
- "9000:9000" # graylog api
- "5555:5555/udp" # raw text UDP
- "5555:5555/tcp" # raw text TCP
volumes:
- graylog_data:/usr/share/graylog/data/data
restart: unless-stopped
volumes:
mongodb_data:
mongodb_config:
opensearch_data:
graylog_data:
有三個密碼相關的變數需要進行修改:
OPENSEARCH_INITIAL_ADMIN_PASSWORD
:Opensearch 的 admin 密碼,明文。GRAYLOG_PASSWORD_SECRET
/ GRAYLOG_ROOT_PASSWORD_SHA2
:可使用官方提供的生成方式
# GRAYLOG_PASSWORD_SECRET
< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c96; echo
# GRAYLOG_ROOT_PASSWORD_SHA2 (密碼明文為 admin)
echo -n "admin" | sha256sum | cut -d" " -f1
上述配置重點聚焦於基礎啟動與核心安全設置,屬於簡化版本,只針對最基本的持久化(如 graylog、mongodb、opensearch 資料目錄)和必要的核心環境變數。
明天會一起研究更為正式的配置。