Docker部署Graylog后无法登录,如何正确设置账号密码?
Graylog Docker 凭据正确配置方式
核心踩坑点
Graylog登录凭据配置有两个关键细节最容易出错:
GRAYLOG_ROOT_PASSWORD_SHA2必须是密码的SHA256哈希值,不能直接填明文密码GRAYLOG_PASSWORD_SECRET需要至少16位的随机字符串,用于加密系统敏感数据
步骤1:生成所需配置值
- 生成密码密钥:用以下命令生成符合要求的随机字符串(也可手动生成足够长的随机字符)
pwgen -N 1 -s 96 - 生成密码哈希:假设你想设置的登录密码是
your_secure_password,执行以下命令得到SHA256哈希值
取输出结果中的纯哈希字符串(忽略末尾的空格和文件名)echo -n your_secure_password | sha256sum
步骤2:编写.env文件
在docker-compose.yml同目录下创建.env文件,填入生成的值:
# 自定义登录用户名 GRAYLOG_ROOT_USERNAME=admin # 刚才生成的密码密钥 GRAYLOG_PASSWORD_SECRET=your_generated_long_random_secret # 刚才生成的密码SHA256哈希值 GRAYLOG_ROOT_PASSWORD_SHA2=your_password_sha256_hash
步骤3:在docker-compose.yml中引用变量
确保Graylog服务块正确加载这些环境变量,示例配置片段:
services: graylog: image: graylog/graylog:latest environment: - GRAYLOG_ROOT_USERNAME=${GRAYLOG_ROOT_USERNAME} - GRAYLOG_PASSWORD_SECRET=${GRAYLOG_PASSWORD_SECRET} - GRAYLOG_ROOT_PASSWORD_SHA2=${GRAYLOG_ROOT_PASSWORD_SHA2} # 必须配置外部访问地址,否则Web界面可能无法正常加载 - GRAYLOG_HTTP_EXTERNAL_URI=http://your_server_ip:9000/ ports: - "9000:9000" # 依赖MongoDB和Elasticsearch,需确保这两个服务已配置 depends_on: - mongodb - elasticsearch
步骤4:重置旧数据(若之前启动过容器)
如果之前已经启动过Graylog容器,旧的凭据会存储在MongoDB的卷中,需要先清除旧数据再重新启动:
docker-compose down -v docker-compose up -d
内容的提问来源于stack exchange,提问作者KGBGUY
相关产品推荐
相关产品推荐

