graylog mongodb 配置与 docker-compose 上的用户密码
问题:graylog mongodb 配置与 docker-compose 上的用户密码 我试图在为 graylog 制作 docker-compose 文件时设置 mongodb 用户密码。 但我无法正确设置用户和密码。 这是我的 docker-compose.yml : version: '2' services: # MongoDB: https://hub.docker.com/_/mon
问题:graylog mongodb 配置与 docker-compose 上的用户密码
我试图在为 graylog 制作 docker-compose 文件时设置 mongodb 用户密码。
但我无法正确设置用户和密码。
这是我的 docker-compose.yml :
version: '2'
services:
# MongoDB: https://hub.docker.com/_/mongo/
mongodb:
image: mongo:4.2
volumes:
- mongo_data:/data/db
environment:
- MONGO_INITDB_ROOT_USERNAME=user
- MONGO_INITDB_ROOT_PASSWORD=password
- MONGO_INITDB_DATABASE=graylog
ports:
# mongodb
- 27017:27017
# Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/7.10/docker.html
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
volumes:
- es_data:/usr/share/elasticsearch/data
environment:
- http.host=0.0.0.0
- transport.host=localhost
- network.host=0.0.0.0
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 1g
# Graylog: https://hub.docker.com/r/graylog/graylog/
graylog:
image: graylog/graylog:4.1
volumes:
- graylog_data:/usr/share/graylog/data
environment:
# CHANGE ME (must be at least 16 characters)!
- GRAYLOG_PASSWORD_SECRET=somepasswordpepper
# Password: admin
- GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
- GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/
- MONGODB_URI=mongodb://user:password@localhost:27017/graylog
- GRAYLOG_MONGODB_URI=mongodb://user:password@localhost:27017/graylog
- MONGO_INITDB_ROOT_USERNAME=user
- MONGO_INITDB_ROOT_PASSWORD=password
- GRAYLOG_MONGO_INITDB_ROOT_USERNAME=user
- GRAYLOG_MONGO_INITDB_ROOT_PASSWORD=password
entrypoint: /usr/bin/tini -- wait-for-it elasticsearch:9200 -- /docker-entrypoint.sh
links:
- mongodb:mongo
- elasticsearch
restart: always
depends_on:
- mongodb
- elasticsearch
ports:
# Graylog web interface and REST API
- 9000:9000
# Syslog TCP
- 1514:1514
# Syslog UDP
- 1514:1514/udp
# GELF TCP
- 12201:12201
# GELF UDP
- 12201:12201/udp
# Volumes for persisting data, see https://docs.docker.com/engine/admin/volumes/volumes/
volumes:
mongo_data:
driver: local
es_data:
driver: local
graylog_data:
driver: local
但我还有一个:
灰色日志_1 | 2021-06-30 07:00:32,022 信息:org.mongodb.driver.cluster - 集群描述尚不可用。在超时之前等待 30000 毫秒 graylog_1 | 2021-06-30 07:00:32,022 信息:org.mongodb.driver.cluster - 连接到服务器 localhost:27017 graylog_1 时监视器线程中的异常 | com.mongodb.MongoSocketOpenException: 异常打开套接字 graylog_1 |在 com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70) ~[graylog.jar:?] graylog_1 |在 com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:128) ~[graylog.jar:?] graylog_1 |在 com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) [graylog.jar:?] graylog_1 |在 java.lang.Thread.run(Thread.java:748) [?:1.8.0_292] graylog_1 |引起:java.net.ConnectException:连接被拒绝(连接被拒绝)
那么知道如何在 docker compose 文件中指定用户/密码吗?
解答
错误消息说连接被拒绝(u003d端口已关闭)。这是因为您在这里使用了localhost
作为数据库地址:
- GRAYLOG_MONGODB_URI=mongodb://user:password@localhost:27017/graylog
将localhost
更改为mongodb
:
- GRAYLOG_MONGODB_URI=mongodb://user:password@mongodb:27017/graylog
一般情况下容器里面的localhost
是指容器本身。由于graylog
容器内部没有mongodb
实例,它告诉您graylog
容器中的localhost:27017
没有任何监听。
进行此更改后,graylog
可能会告诉您由于凭据错误而无法连接。这是因为MONGO_INITDB_ROOT_USERNAME
创建的用户被添加到admin
数据库中(不是'graylog')。我猜你需要手动创建一个用户,如果你还没有。
此外,这些:
- MONGODB_URI=mongodb://user:password@localhost:27017/graylog
- MONGO_INITDB_ROOT_USERNAME=user
- MONGO_INITDB_ROOT_PASSWORD=password
- GRAYLOG_MONGO_INITDB_ROOT_USERNAME=user
- GRAYLOG_MONGO_INITDB_ROOT_PASSWORD=password
对graylog
没有影响。
更多推荐
所有评论(0)