MongoDB:SASL身份验证步骤上服务器返回错误:身份验证失败

时间:2019-08-10 09:33:45

标签: mongodb docker prometheus

我正在尝试使用dockerprometheusmongodb_exporter来监视MongoDB。我还曾在stackoverflow上看到this question,但在当前情况下并没有帮助我。

我已使用以下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_exporter:

wget https://github.com/dcu/mongodb_exporter/releases/download/v1.0.0/mongodb_exporter-linux-amd64

,然后运行下面编写的命令:

./mongodb_exporter-linux-amd64 -logtostderr -mongodb.uri 'mongodb://root:example@localhost:27017' -groups.enabled 'assert, durability, background_flushing, connections, extra_info, global_lock, index_counters, network, op_counters, op_counters_repl, memory, locks, metrics'

但是我遇到这个错误:

  

在:9001上侦听(方案= HTTP,安全=否,clientValidation =否)   E0810 13:49:59.679747 8412 connection.go:48]无法使用URL mongodb:// root:example @ localhost:27017连接到服务器:SASL身份验证步骤服务器返回错误:身份验证失败。

由于该错误,我看不到localhost:9001上的所有指标。我该怎么办才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

通过将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