6 Replies Latest reply on Aug 7, 2015 9:35 AM by Jerome Razen

    Smart IT cluster installation

      Share This:



      For a while now I've tried to perform a "cluster installation" of Smart IT (meaning: I'd like to have 2 Smart IT servers running behind a loadbalancer). Has anybody else tried this, by any chance? The official documentation was pretty bad, in my opinion. It was updated in July and has gotten a little better, but it's still very confusing. (I'm referring to this: Setting up a high availability and automatic failover for the Smart IT social database - BMC Remedy with Smart IT 1.1 - …)


      Before updating the above documentation, BMC support had pointed me to some forum with a tutorial on how to set up MongoDB replication and told me that I could also find a lot of YouTube videos on that topic. I couldn't believe this was the official recommendation.


      Has anybody been successful in setting up a clustered Smart IT environment?


      Also: Assuming one has a single Smart IT server up and running, is there a way to add a second Smart IT server at a later point? Are the setup-steps for this documented anywhere?




        • 1. Re: Smart IT cluster installation

          We have set up two SmartIT servers in a cluster with a load balancer in front of them.

          After installation:

          - update the SHR:SHR_Keystore host name value to the SmartIT load balancer value. Emails which include a link back to the ticket in SmartIT use this value in the URL

          - in the MyIT Admin Console add a new persistent datastore for the AR server load balancer then select this data store in the MyIT-ITSM application

          - update the connect.arsystem.hostName attribute in the SmartIT Tomcat ...external-conf/connect.properties file to be the AR server load balancer

          - for the SmartIT server you installed second replace the api.token line in the connect.properties file with the one from the SmartIT server you installed firest - the values for this parameter should match the values in the SHR:SHR_Keystore record


          To be honest we are having issues at the moment with SmartIT servers becoming unresponsive after ~ 24 hours and are trying to figure out why.


          We also have three MongoDB servers in a cluster with ElasticSearch on each.

          The main points:

          - use the supported versions (we use MongoDB 2.6.8, ES 1.4.2 and River 2.0.5

          - Select one of the MongoDB servers and:

          Open a command prompt and then open a MongoDB shell e.g.D:\mongodb\bin\mongo.exe

          Run the following commands:

          use admin

          1. db.addUser( { user: "admin",pwd: "<MongoDB Admin User>",roles: [ "userAdminAnyDatabase", "clusterAdmin" , "readWriteAnyDatabase", "dbAdminAnyDatabase" ] } )

          Quit the MongoDB shell (type exit).

          Re-start the MongoDB Windows service

          Re-open the shell and run the following commands:

          use admin

          1. db.auth(“admin”,”<MongoDB Admin User>”)

          use social

          1. db.addUser({user: "social_admin", pwd: "<MongoDB Social User>", roles: [ "readWrite", "dbAdmin" ] });

          Quit the MongoDB shell (type exit).

          On each MongoDB set up replication by adding the following line to the mongod.cfg file:

          replSet=<any name you want>

          Restart MongoDB

          They should now be running in a cluster!

          2 of 2 people found this helpful
          • 2. Re: Smart IT cluster installation

            Thank you for the feedback, Peter, it's very helpful.

            Just one question: You wrote that you have 2 Smart IT servers running and 3 MongoDBs. How come? I thought you needed 1 MongoDB per Smart IT server.

            • 3. Re: Smart IT cluster installation

              No problem, Jerome, I've spent a lot of time on this and hope that it's configured properly now - we're in production with it so only time will tell!

              Each SmartIT instance must point to the same MongoDB instance.

              We have three MongoDB servers configured as a cluster so all our SmartIT servers point to this cluster.

              We also have Elasticsearch (ES) running on each MongoDB server also in a cluster. ES gets updated from MongoDB by the River plugin.

              SmartIT updates the MongoDB primary server after which the cluster replicates the data between them. ES gets updated by the River plugin. Searches from SmartIT use ES.

              • 4. Re: Smart IT cluster installation

                Your post just made me understand the whole architecture needed for Smart IT in a cluster, thanks.

                I hadn't understood it like that, based on BMC's documentation.


                So you have 5 servers in total, right? 2x Smart IT and 3x MongoDB w/ ES.

                And both clusters (Smart IT and MongoDB) have a loadbalancer in front of them, I assume.

                • 5. Re: Smart IT cluster installation

                  The SmartIT servers have a load balancer in front of them but the MongoDB and ES instances don't need a load balancer as the clusters distribute the load between them.

                  I suggest you install MongoDB and ES before you install SmartIT.

                  When you specify the MongoDB parameters during the SmartIT installation you add the MongoDB servers to the Hosts field separating them by commas.


                  For ES, after installing SmartIT edit the following file: ...\Smart_IT_MyIT\Smart_IT_MyIT\social\config.js

                  Add the following three lines, and save.


                  search_hosts:["<IP of first ES server>"],[”<IP of second ES server>”],[”<IP of third ES server>”]


                  • 6. Re: Smart IT cluster installation

                    Thanks for the details!

                    For now I'll go with a single Smart IT server, but I'll definitely use the info you posted here in the future, when the time comes to set up a cluster. (Or, who knows, maybe by then BMC will have made the cluster-setup a bit more user-friendly)