[Backlogmanager] [FIWARE-JIRA] (HELP-17728) [fiware-stackoverflow] Connect Fiware IoT Agent to sharded MongoDB

Fernando Lopez (JIRA) jira-help-desk at jira.fiware.org
Tue May 18 09:57:00 CEST 2021


     [ https://jira.fiware.org/browse/HELP-17728?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Fernando Lopez reassigned HELP-17728:
-------------------------------------

    Assignee: Clara Pezuela

> [fiware-stackoverflow] Connect Fiware IoT Agent to sharded MongoDB
> ------------------------------------------------------------------
>
>                 Key: HELP-17728
>                 URL: https://jira.fiware.org/browse/HELP-17728
>             Project: Help-Desk
>          Issue Type: Monitor
>          Components: FIWARE-TECH-HELP
>            Reporter: Backlog Manager
>            Assignee: Clara Pezuela
>              Labels: docker, fiware, fiware-orion, mongodb, sharding
>
> Created question in FIWARE Q/A platform on 14-05-2021 at 07:05
> {color: red}Please, ANSWER this question AT{color} https://stackoverflow.com/questions/67530914/connect-fiware-iot-agent-to-sharded-mongodb
> +Question:+
> Connect Fiware IoT Agent to sharded MongoDB
> +Description:+
> I am using to following docker-compose file to setup my sharded MongoDB which has 3 shards, 3 config servers and 2 router instances:
> version: "3.5"
> services:
>   mongorsn1:
>     container_name: mongors1n1
>     hostname: mongors1n1
>     image: mongo
>     command: mongod --shardsvr --replSet mongors1 --dbpath /data/db --port 27017
>     ports:
>       - 27017:27017
>     expose:
>       - "27017"
>     environment:
>       TERM: xterm
>     volumes:
>       - /etc/localtime:/etc/localtime:ro
>       - /mongo_cluster/data1:/data/db
>   mongors1n2:
>     container_name: mongors1n2
>     hostname: mongors1n2
>     image: mongo
>     command: mongod --shardsvr --replSet mongors1 --dbpath /data/db --port 27017
>     ports:
>       - 27027:27017
>     expose:
>       - "27017"
>     environment:
>       TERM: xterm
>     volumes:
>       - /etc/localtime:/etc/localtime:ro
>       - /mongo_cluster/data2:/data/db
>   mongors1n3:
>     container_name: mongors1n3
>     hostname: mongors1n3
>     image: mongo
>     command: mongod --shardsvr --replSet mongors1 --dbpath /data/db --port 27017
>     ports:
>       - 27037:27017
>     expose:
>       - "27017"
>     environment:
>       TERM: xterm
>     volumes:
>       - /etc/localtime:/etc/localtime:ro
>       - /mongo_cluster/data3:/data/db
>       
>   mongocfg1:
>     container_name: mongocfg1
>     image: mongo
>     command: mongod --configsvr --replSet mongors1conf --dbpath /data/db --port 27017
>     environment:
>       TERM: xterm
>     expose:
>       - "27017"
>     volumes:
>       - /etc/localtime:/etc/localtime:ro
>       - /mongo_cluster/config1:/data/db
>       
>   mongocfg2:
>     container_name: mongocfg2
>     image: mongo
>     command: mongod --configsvr --replSet mongors1conf --dbpath /data/db --port 27017
>     environment:
>       TERM: xterm
>     expose:
>       - "27017"
>     volumes:
>       - /etc/localtime:/etc/localtime:ro
>       - /mongo_cluster/config2:/data/db
>       
>   mongocfg3:
>     container_name: mongocfg3
>     image: mongo
>     command: mongod --configsvr --replSet mongors1conf --dbpath /data/db --port 27017
>     environment:
>       TERM: xterm
>     expose:
>       - "27017"
>     volumes:
>       - /etc/localtime:/etc/localtime:ro
>       - /mongo_cluster/config3:/data/db
>   mongos1:
>     container_name: mongos1
>     image: mongo
>     hostname: mongos1
>     depends_on:
>       - mongocfg1
>       - mongocfg2
>     command: mongos --configdb mongors1conf/mongocfg1:27017,mongocfg2:27017,mongocfg3:27017 --port 27017
>     ports:
>       - 27019:27017
>     expose:
>       - "27017"
>     volumes:
>       - /etc/localtime:/etc/localtime:ro
>   mongos2:
>     container_name: mongos2
>     image: mongo
>     hostname: mongos2
>     depends_on:
>       - mongocfg1
>       - mongocfg2
>     command: mongos --configdb mongors1conf/mongocfg1:27017,mongocfg2:27017,mongocfg3:27017 --port 27017
>     ports:
>       - 27020:27017
>     expose:
>       - "27017"
>     volumes:
>       - /etc/localtime:/etc/localtime:ro
> As you can see it is up and running correctly.
> docker exec -it mongos1 bash -c "echo 'sh.status()' | mongo "
> MongoDB shell version v4.4.6
> connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
> Implicit session: session { "id" : UUID("f00e3ac7-e114-40b3-b7f8-0e5cf9c56e10") }
> MongoDB server version: 4.4.6
> --- Sharding Status ---
>   sharding version: {
>         "_id" : 1,
>         "minCompatibleVersion" : 5,
>         "currentVersion" : 6,
>         "clusterId" : ObjectId("609e21145937100b3f006e20")
>   }
>   shards:
>         {  "_id" : "mongors1",  "host" : "mongors1/mongors1n1:27017,mongors1n2:27017,mongors1n3:27017",  "state" : 1 }
>   active mongoses:
>         "4.4.6" : 2
>   autosplit:
>         Currently enabled: yes
>   balancer:
>         Currently enabled:  yes
>         Currently running:  no
>         Failed balancer rounds in last 5 attempts:  0
>         Migration Results for the last 24 hours:
>                 No recent migrations
>   databases:
>         {  "_id" : "config",  "primary" : "config",  "partitioned" : true }
> bye
> Now here is the docker-compose file I use to connect Orion and the IoT Agent to my MongoDB shards.
> version: "3.5"
> services:
>   orion:
>     image: atos/smbt/orion:2.5.2
>     hostname: orion
>     container_name: orion
>     restart: unless-stopped
>     ports:
>       - "1026:1026"
>     entrypoint:
>       - /usr/bin/contextBroker
>       - -fg 
>       - -multiservice
>       - -ngsiv1Autocast
>       - -corsOrigin
>       - __ALL
>     command: -dbhost mongors1n1:27017,mongors1n2:27027,mongors1n3:27037 -rplSet mongors1 -logLevel ERROR -noCache
>     healthcheck:
>       test: curl --fail -s http://orion:1026/version || exit 1
>     networks:
>       - fiware_mongo_sharding_default
>   
>   iot-agent:
>     image: atos/smbt/iotagent-ul:1.15.0
>     hostname: iot-agent
>     container_name: iot-agent
>     restart: unless-stopped
>     expose:
>         - "4041"
>         - "7896"
>     ports:
>         - "4041:4041"
>         - "7896:7896"
>     environment:
>         - IOTA_CB_HOST=orion
>         - IOTA_CB_PORT=1026
>         - IOTA_NORTH_PORT=4041
>         - IOTA_REGISTRY_TYPE=mongodb
>         - IOTA_LOG_LEVEL=ERROR
>         - IOTA_TIMESTAMP=true
>         - IOTA_CB_NGSI_VERSION=v2
>         - IOTA_AUTOCAST=true
>         - IOTA_MONGO_HOST=mongors1n1
>         - IOTA_MONGO_PORT=27017
>         - IOTA_MONGO_DB=iotagentul
>         - IOTA_HTTP_PORT=7896
>         - IOTA_PROVIDER_URL=http://iot-agent:4041
>     networks:
>       - fiware_mongo_sharding_default      
>   
> networks:
>   fiware_mongo_sharding_default:
>     external: true
> Orion is connected to MongoDB but with the IoT Agent I get the following error message.
> time=2021-05-14T07:51:51.086Z | lvl=ERROR | corr=28202651-30e1-48dc-88a9-53de603e7e6d | trans=28202651-30e1-48dc-88a9-53de603e7e6d | op=IoTAgentNGSI.DbConn | from=n/a | srv=n/a | subsrv=n/a | msg=MONGODB-001: Error trying to connect to MongoDB: MongoNetworkError: failed to connect to server [mongos1:27019] on first connect [MongoNetworkError: connect ECONNREFUSED 172.20.0.9:27019] | comp=IoTAgent
> I have tried different things such as:
> - IOTA_MONGO_HOST=mongos1
> - IOTA_MONGO_PORT=27019
> but to no avail unfortunately. Is there something I am doing wrong?
> Thanks in advance for your help.



--
This message was sent by Atlassian JIRA
(v6.4.1#64016)


More information about the Backlogmanager mailing list

You can get more information about our cookies and privacy policies clicking on the following links: Privacy policy   Cookies policy