MongoDB:服务器在SASL身份验证步骤上返回错误:身份验证失败
我正在尝试使用MongoDB:服务器在SASL身份验证步骤上返回错误:身份验证失败,mongodb,docker,prometheus,Mongodb,Docker,Prometheus,我正在尝试使用docker、prometheus和监控MongoDB。我也看过stackoverflow,但在目前的情况下,它对我没有帮助 我使用了下面的docker compose文件来构建mongodb服务 version: '3' services: mongo: image: mongo container_name: mongo restart: always environment: MONGO_INITDB_ROOT_USERNA
docker
、prometheus
和监控MongoDB。我也看过stackoverflow,但在目前的情况下,它对我没有帮助
我使用了下面的docker compose文件来构建mongodb服务
version: '3'
services:
mongo:
image: mongo
container_name: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
prometheus:
image: prom/prometheus
restart: always
ports:
- 9090:9090
上述配置已成功运行。我使用以下命令下载了mongodb_导出器:
wgethttps://github.com/dcu/mongodb_exporter/releases/download/v1.0.0/mongodb_exporter-linux-amd64
然后运行以下命令:
/mongodb\u exporter-linux-amd64-logtostderr-mongodb.uri'mongodb://root:example@localhost:27017'-groups.enabled'断言、持久性、后台刷新、连接、额外信息、全局锁定、索引计数器、网络、操作计数器、操作计数器、复制、内存、锁、度量'
但我面临着这个错误:
监听:9001(scheme=HTTP,secured=no,clientValidation=no)
E0810 13:49:59.679747 8412连接。转到:48]无法使用url连接到服务器mongodb://root:example@localhost:27017:服务器在SASL身份验证步骤上返回错误:身份验证失败
由于该错误,我无法查看
localhost:9001
上的所有指标。我应该怎么做才能解决这个问题?将localhost更改为mongo容器的名称,也就是mongo
,从而解决了这个问题
现在可以成功运行以下代码:
version: '3'
services:
mongo:
image: mongo
container_name: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
prometheus:
image: prom/prometheus
container_name: prometheus
restart: always
ports:
- 9090:9090
volumes:
- /home/mostafa/Desktop/docker_lab/mongo/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '--config.file=/etc/prometheus/prometheus.yml'
mongodb-exporter:
build: .
container_name: mongodb_exporter
command: ./mongodb_exporter-linux-amd64 -logtostderr -mongodb.uri mongodb://mongo:27017 -groups.enabled 'asserts,durability,background_flusshing,connections,extra_info,global_lock,index_counters,network,op_counters,op_counters_repl,memory,locks,metrics'
restart: always
ports:
- 9001:9001
将localhost更改为mongo容器的名称,也就是
mongo
,解决了这个问题
现在可以成功运行以下代码:
version: '3'
services:
mongo:
image: mongo
container_name: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
prometheus:
image: prom/prometheus
container_name: prometheus
restart: always
ports:
- 9090:9090
volumes:
- /home/mostafa/Desktop/docker_lab/mongo/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '--config.file=/etc/prometheus/prometheus.yml'
mongodb-exporter:
build: .
container_name: mongodb_exporter
command: ./mongodb_exporter-linux-amd64 -logtostderr -mongodb.uri mongodb://mongo:27017 -groups.enabled 'asserts,durability,background_flusshing,connections,extra_info,global_lock,index_counters,network,op_counters,op_counters_repl,memory,locks,metrics'
restart: always
ports:
- 9001:9001