Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Replication Setup and Configuration Guide

...

Table of Contents
stylenone

...

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

...

VERY IMPORTANT : During the installation of the arbiter server you must answer 'N' at the following prompt

...

...

2. NATS Setup

This configuration should be applied to the Main-Primary, Arbiter, and Secondary Primary servers ONLY.

  1. Edit Configuration: Update the /etc/nats-server.conf file with the following settings:

    Code Block
    languagejson
    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

  1. Backup Configuration: Make a backup copy of the opCommon.json file before making any changes.

  2. 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

    Code Block
    languagejson
    "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:

Code Block
languagejson
"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 License

Currently there are 2 available licenses and messagebus will not run without a license.

  1. opHA-MB for NMIS & opCharts (This license is required for messagebus to run)

  2. opHA-MB for opEvents (This license is an add-on for opEvents)

    image-20241107-234837.png

...

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:

...

Code Block
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:

Code Block
db.adminCommand({ "setDefaultRWConcern": 1, "defaultWriteConcern": { "w": 1 } })

5.3 Add Arbiter

Run the following command to add an arbiter to the replica set:

Code Block
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:

Code Block
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:

Code Block
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 :

Code Block
systemctl restart mongod

6.3 Restart services on all servers

After configuration changes, restart the services on all the servers :

Code Block
systemctl restart nmis9d opchartsd opeventsd omkd ophad

6.4 Start the Poller and Mirrors

Execute the following command on the poller and mirror servers.

Code Block
cd /usr/local/omk/bin
./ophad cmd producer start

...

7. Final Steps

  1. 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:

...