-
Notifications
You must be signed in to change notification settings - Fork 163
Description
So I'm running a docker swarm with 3 nodes, using microceph for keep data available on all nodes.
Now I wanted to try and set up graylog 7.0 with the datanode container, but I keep runnning into the issue were the graylog container fails to generate any files in my bind mounted directories. It does however create directories. (config, contentpacks, journal, log, plugin).
I've found you have to set the permissions to user/group permissions to 1100:1100 with the permission map of 755, but despite this there are no files created. I've also tried to set root as the owner, but then I get an error saying it failed to create the directories, which makes sense.
Both the mongodb and datanodes do seem to work fine.
When looking at the graylog container logs I get:
2025-11-30T20:06:21.134596072Z main ERROR Reconfiguration failed: No configuration found for '73d4cc9e' at 'null' in 'null'
2025-11-30T20:06:21.255620465Z main INFO Added converter factory com.github.joschi.jadconfig.guava.GuavaConverterFactory@5a755cc1
2025-11-30T20:06:21.255950443Z main INFO Added converter factory com.github.joschi.jadconfig.jodatime.JodaTimeConverterFactory@49ff7d8c
2025-11-30T20:06:21.256235833Z main ERROR Couldn't load configuration: Properties file /usr/share/graylog/data/config/graylog.conf doesn't exist!
From what I understand graylog.conf should be auto generated by the envs I've set in my compose file.
So am I doing something wrong or is this a bug?
This is my docker compose:
networks:
docker-proxy:
name: docker-proxy
external: true
graylog_network:
name: graylog_network
services:
graylog-db:
image: mongo:7.0
volumes:
- /mnt/cephfs/docker/graylog/db-data:/data/db
- /mnt/cephfs/docker/graylog/db-config:/data/configdb
networks:
- graylog_network
datanode:
image: graylog/graylog-datanode:7.0.1
hostname: "datanode"
environment:
# GRAYLOG_DATANODE_PASSWORD_SECRET and GRAYLOG_PASSWORD_SECRET MUST be the same value
- GRAYLOG_DATANODE_PASSWORD_SECRET=${GRAYLOG_PASSWORD_SECRET}
- GRAYLOG_DATANODE_MONGODB_URI=mongodb://graylog-db:27017/graylog
ulimits:
memlock:
hard: -1
soft: -1
nofile:
soft: 65536
hard: 65536
volumes:
- /mnt/cephfs/docker/graylog/datanode:/var/lib/graylog-datanode
- /etc/localtime:/etc/localtime:ro
networks:
- graylog_network
graylog:
hostname: "server"
image: graylog/graylog:7.0.1
entrypoint: "/usr/bin/tini -- /docker-entrypoint.sh"
depends_on:
- graylog-db
- datanode
environment:
- GRAYLOG_NODE_ID_FILE="/usr/share/graylog/data/data/node-id"
- GRAYLOG_PASSWORD_SECRET=${GRAYLOG_PASSWORD_SECRET}
- GRAYLOG_ROOT_PASSWORD_SHA2="${GRAYLOG_ROOT_PASSWORD_SHA2}"
- GRAYLOG_HTTP_BIND_ADDRESS=0.0.0.0:9000
- GRAYLOG_HTTP_EXTERNAL_URI=http://${WebGUIAddress}:9000/
- GRAYLOG_MONGODB_URI=mongodb://graylog-db:27017/graylog
- GRAYLOG_TZ=${TZ}
- GRAYLOG_TIMEZONE=${TZ}
- GRAYLOG_ROOT_TIMEZONE=${TZ}
### EMAIL ###
- GRAYLOG_TRANSPORT_EMAIL_PROTOCOL=smtp
- GRAYLOG_TRANSPORT_EMAIL_WEB_INTERFACE_URL=https://${WebGUIAddress}
- GRAYLOG_TRANSPORT_EMAIL_HOSTNAME=${EmailServer}
- GRAYLOG_TRANSPORT_EMAIL_ENABLED=true
- GRAYLOG_TRANSPORT_EMAIL_PORT=465
- GRAYLOG_TRANSPORT_EMAIL_USE_AUTH=true
- GRAYLOG_TRANSPORT_EMAIL_AUTH_USERNAME=${GRAYLOG_EMAIL_USERNAME}
- GRAYLOG_TRANSPORT_EMAIL_AUTH_PASSWORD=${GRAYLOG_EMAIL_PASSWORD}
- GRAYLOG_TRANSPORT_EMAIL_USE_TLS=false
- GRAYLOG_TRANSPORT_EMAIL_USE_SSL=true
- GRAYLOG_TRANSPORT_FROM_EMAIL=${GRAYLOG_EMAIL_USERNAME}
- GRAYLOG_TRANSPORT_SUBJECT_PREFIX=${GRAYLOG_TRANSPORT_SUBJECT_PREFIX}
volumes:
- /mnt/cephfs/docker/graylog/data:/usr/share/graylog/data:rw
- /etc/localtime:/etc/localtime:ro
networks:
- docker-proxy
- graylog_network
deploy:
replicas: 1
labels:
- traefik.enable=true # enable traefik
- traefik.http.routers.graylog.rule=Host(`${WebGUIAddress}`)
- traefik.http.routers.graylog.entrypoints=websecure # Define entry point
- traefik.http.services.graylog.loadbalancer.server.port=9000
ports:
- 514:514/tcp # Syslog 514 TCP
- 514:514/udp # Syslog 514 UDP