Setup and Configuration Guide
1. Software Installation
1.1 Download Software
Download the required software onto each server.
1.2 Install Software
IMPORTANT : All the servers should be setup with the following
a. Pollers and mirrors discovered by the Main-Primary
b. Server names set
c. Secondary Primary server setup as Primary
c. One server needs to be an Arbiter. A poller can be used for this
Run the installation commands on each server as needed.
All the following setup commands in this setup should be run as the root user
sh ./opHA-Linux-x86_64-5.0.0.run
VERY IMPORTANT : During the installation of the arbiter server you must answer 'N' at the following prompt
Important
In this setup guide we are using example server/host names so you will have to use the names that you have set for your own configuration. For this example we have the required 6 servers for the setup.
Main-Primary Server : opha-dev1.opmantek.net
Poller1 Server opha-dev2.opmantek.net
Mirror1 Server opha-dev3.opmantek.net
Poller2 Server opha-dev4.opmantek.net
Mirror2 Server opha-dev5.opmantek.net
Second-Primary opha-dev6.opmantek.net
2. NATS Setup
This configuration should be applied only to the Main-Primary, Arbiter, and Secondary Primary servers.
Edit Configuration: Update the
/etc/nats-server.conf
file with the following settings:server_name: "opha-dev1.opmantek.net" #The local server http_port: 8222 listen: 4222 jetstream: enabled accounts { $SYS { users = [ { user: "admin", pass: "password" } ] } ophad: { users: [ { user: "omkadmin", password: "op42opha42" } ] jetstream: enabled } } jetstream { store_dir: "/opt/nats/storage" max_memory_store: 1028M max_file_store: 1028M } cluster { name: "C1" host: "opha-dev1.opmantek.net" #The current host # the current server listen: "0.0.0.0:6222" routes: [ # secondary primary "nats://opha-dev6.opmantek.net:6222", # server with the arbiter "nats://opha-dev2.opmantek.net:6222" # other servers ] }
3. Common Configuration for All Servers
3.1 Update /usr/local/omk/conf/opCommon.json
Backup Configuration: Make a backup copy of the
opCommon.json
file before making any changes.Add NATS Cluster Configuration: Ensure the following configuration is included in
opCommon.json
on all servers. In the below example we have added the main-primary, arbiter and second-primary in the nats_cluster array under the “database“ json object"nats_cluster": [ "opha-dev1.opmantek.net:4222", "opha-dev2.opmantek.net:4222", "opha-dev6.opmantek.net:4222" ]
4. Server-Specific Configuration
4.1 Update /usr/local/omk/conf/opCommon.json
for Main-Primary and Secondary Primary only
and Secondary Primary servers:
"db_replica_set": "rs1", "db_mongo_cluster": [ "opha-dev1.opmantek.net", "opha-dev6.opmantek.net" ], "nats_num_replicas": 3, "nats_cluster": [ "opha-dev1.opmantek.net", "opha-dev2.opmantek.net", "opha-dev6.opmantek.net" ]
4.2 Update opLicense.json
Make any necessary updates to opLicense.json
as required by your licensing terms.
5. MongoDB Setup (Main-Primary Only)
The following steps should be performed only on the Main-Primary MongoDB instance.
5.1 Initialize MongoDB Replica Set
Connect to MongoDB using the mongosh
command and configure the replica set:
Run the following command
mongosh --username opUserRW --password op42flow42 admin
Run the following command
rs.initiate({ _id: "rs1", version: 1, members: [ { _id: 0, host : "opha-dev1.opmantek.net:27017" }, { _id: 1, host : "opha-dev6.opmantek.net:27017" } ] })
5.2 Set Default Write Concern
Run the following command to set the default write concern:
db.adminCommand({ "setDefaultRWConcern": 1, "defaultWriteConcern": { "w": 1 } })
5.3 Add Arbiter
Run the following command to add an arbiter to the replica set:
rs.addArb("opha-dev2.opmantek.net:27018")
5.4 Restart mongod on the Main-Primary and Second-Primary
Run the following command on the Main-Primary, Secondary Primary, and Arbiter servers ONLY:
sudo systemctl restart mongod
6. Starting Services
6.1 Start NATS
Start the NATS service on the Main-Primary, Secondary Primary, and Arbiter servers ONLY:
systemctl start nats-server
6.2 Restart mongod on Pollers and Mirrors only
After configuration changes, restart mongod on all Mirrors and Pollers servers ONLY :
systemctl restart mongod
6.3 Restart services on all servers
After configuration changes, restart the services on all the servers :
systemctl restart nmis9d opchartsd opeventsd omkd ophad
6.4 Start the Poller and Mirrors
Execute the following command on the poller and mirror servers.
cd /usr/local/omk/bin ./ophad cmd producer start
7. Final Steps
Accept EULAs: Make sure when you login to each server to confirm that all End User License Agreements (EULAs) are accepted.
8. Switching Main and Secondary Primary Servers
To switch from Main-Primary to Secondary Primary, follow these steps:
Connect to MongoDB:
mongosh --username opUserRW --password op42flow42 admin
Update member priorities:
cfg = rs.conf() cfg.members[0].priority = 0.6 cfg.members[1].priority = 0.5 rs.reconfig(cfg)