Skip to content

Unable to use mongoDB for Auth and ACL #421

@nishuthan

Description

@nishuthan

I have a VernMQ cluster with HA proxy as load balancer in docker compose. I am trying to use mongoDB to authenticate my devices. but as soon as i run the command docker compose up -d I see the logs in one of the vernMQ cluster node I see the following error

2025-12-03T06:10:11.881184+00:00 [error] <0.710.0> gen_server:error_info/8:1391: Generic server <0.710.0> terminating. Reason: {{badmatch,{false,#{<<"code">> => 13,<<"codeName">> => <<"Unauthorized">>,<<"errmsg">> => <<"Command buildInfo requires authentication">>}}},[{mc_worker_api,get_version,1,[{file,"/opt/vernemq/_build/default/lib/mongodb/src/api/mc_worker_api.erl"},{line,85}]},{mc_worker_api,connect,1,[{file,"/opt/vernemq/_build/default/lib/mongodb/src/api/mc_worker_api.erl"},{line,67}]},{vmq_diversity_worker_wrapper,handle_info,2,[{file,"/opt/vernemq/apps/vmq_diversity/src/vmq_diversity_worker_wrapper.erl"},{line,176}]},{gen_server,try_handle_info,3,[{file,"gen_server.erl"},{line,1095}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,1183}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,241}]}]}. Last message: connect. State: {state,mongodb,#Fun<vmq_diversity_sup.4.29008357>,#Fun<vmq_diversity_sup.5.29008357>,undefined,false,1000,undefined}.

Here is my docker-compose.yml

services:
  vernemq1:
    image: vernemq/vernemq:latest
    container_name: vernemq1
    environment:
      - DOCKER_VERNEMQ_ACCEPT_EULA=yes
      - DOCKER_VERNEMQ_PLUGINS__VMQ_DIVERSITY=on
      - DOCKER_VERNEMQ_PLUGINS__VMQ_PASSWD=off
      - DOCKER_VERNEMQ_PLUGINS__VMQ_ACL=off
      - DOCKER_VERNEMQ_ALLOW_ANONYMOUS=off
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__AUTH_MONGODB__ENABLED=on
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__HOST=172.28.0.10
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__PORT=27017
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__LOGIN=admin
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__PASSWORD=SecureAdminPass2025!
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__DATABASE=MyDevices
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__AUTH_SOURCE=admin
    networks:
      vernemq-net:
        ipv4_address: 172.28.0.2

  vernemq2:
    image: vernemq/vernemq:latest
    container_name: vernemq2
    environment:
      - DOCKER_VERNEMQ_ACCEPT_EULA=yes
      - DOCKER_VERNEMQ_DISCOVERY_NODE=172.28.0.2
      - DOCKER_VERNEMQ_PLUGINS__VMQ_DIVERSITY=on
      - DOCKER_VERNEMQ_PLUGINS__VMQ_PASSWD=off
      - DOCKER_VERNEMQ_PLUGINS__VMQ_ACL=off
      - DOCKER_VERNEMQ_ALLOW_ANONYMOUS=off
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__AUTH_MONGODB__ENABLED=on
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__HOST=172.28.0.10
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__PORT=27017
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__LOGIN=admin
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__PASSWORD=SecureAdminPass2025!
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__DATABASE=MyDevices
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__AUTH_SOURCE=admin
    networks:
      vernemq-net:
        ipv4_address: 172.28.0.3

  vernemq3:
    image: vernemq/vernemq:latest
    container_name: vernemq3
    environment:
      - DOCKER_VERNEMQ_ACCEPT_EULA=yes
      - DOCKER_VERNEMQ_DISCOVERY_NODE=172.28.0.2
      - DOCKER_VERNEMQ_PLUGINS__VMQ_DIVERSITY=on
      - DOCKER_VERNEMQ_PLUGINS__VMQ_PASSWD=off
      - DOCKER_VERNEMQ_PLUGINS__VMQ_ACL=off
      - DOCKER_VERNEMQ_ALLOW_ANONYMOUS=off
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__AUTH_MONGODB__ENABLED=on
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__HOST=172.28.0.10
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__PORT=27017
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__LOGIN=admin
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__PASSWORD=SecureAdminPass2025!
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__DATABASE=MyDevices
      - DOCKER_VERNEMQ_VMQ_DIVERSITY__MONGODB__AUTH_SOURCE=admin
    networks:
      vernemq-net:
        ipv4_address: 172.28.0.4

  haproxy:
    image: haproxy:latest
    container_name: haproxy-lb
    ports:
      - "1883:1883"
      - "8888:8888"
    volumes:
      - ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
    networks:
      vernemq-net:
        ipv4_address: 172.28.0.5
    depends_on:
      - vernemq1
      - vernemq2
      - vernemq3
  mongodb:
    image: mongo:latest
    container_name: vmqacl
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: SecureAdminPass2025!
    networks:
      vernemq-net:
        ipv4_address: 172.28.0.10

networks:
  vernemq-net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.28.0.0/16

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions