Versions Compared

Key

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

Non-Replication Setup and Configuration Guide

...

Table of Contents
stylenone

...

Introduction

opHA-MB 5.0 introduces the concept of a Primary & multiple Poller servers and a message busMessage Bus:

  • The Primary is the server that keeps the information of all the pollers and it is where we can read all the information from. The Consumer (ophad running on Primary) reads data continuously off the message bus Message Bus and stores it in the database

  • The Producer (ophad running on Pollers) has a change stream setup for the collections and receives update updates from the database if when there is are any. This change stream data is pushed onto the message busMessage Bus.

For the terms used in this project together with their meanings, see https://docs.community.firstwave.com/wiki/spaces/opHA/pages/edit-v2/3164408853#Terminology.

1. Software

...

Upgrade

1.1 Prerequisites

IMPORTANT: All the servers should be setup with the following

...

b. Pollers and Mirrors discovered by the Main Primary

c. On the Main Primary, go to the Peers screen, and for each Peer, click on the Sync all nodes button and Pull Peer Data button to ensure latest data is on the Main Primary.

d. Server names set

de. MongoDB 6 installed

We will be using the below example host names throughout this guide.

...

Poller1 Server: opha-poller1.opmantek.net

1.2 Download Software

Download the opHA 5 software onto each server.

1.3 Install Software

Run the installation commands on each server in the opHA cluster.

...

Code Block
languagejson
sudo sh ./opHA-Linux-x86_64-5.0.0.run

1.4 Install Message Bus Software

The Message Bus software (NATS) has to be installed and configured.

For this scenario, we do not need a MongoDB Arbiter, so use -y to answer yes to the two questions.

cd /usr/local/omk/install
sudo sh ./install_message_bus.sh -y

2. NATS Setup

This configuration should be applied to the Main Primary server ONLY.

...

Code Block
languagejson
server_name: "opha-primary1.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 
} 

4. MongoDB Setup (Main Primary Only)

The following steps should be performed only on the Main Primary MongoDB instance.

4.1 Initialize MongoDB Replica Set

Connect to MongoDB using the mongosh command:

Run the following command

Code Block
mongosh --username opUserRW --password op42flow42 admin

Then run the following commands, to initiate a MongoDB Replica Set for streaming database changes.

Code Block
rs.initiate()
exit

Restart mongod

Code Block
systemctl restart mongod

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 Server Configuration: Ensure the following configuration is included in opCommon.json on all servers. In the below example we have added the Main Primary FQDN and port to be utilized in the nats_server attribute, you can find this in the database section.

    Code Block
    languagejson
    "nats_server": "opha-primary1.opmantek.net"

    IMPORTANT

    Delete the following line from the opCommon.json file.

  3. Code Block
    languagejson
    "db_mongo_cluster": [],

4. MongoDB Setup (Main Primary Only)

The following steps should be performed only on the Main Primary MongoDB instance.

4.1 Initialize MongoDB Replica Set

Connect to MongoDB using the mongosh command:

Run the following command

Code Block
mongosh --username opUserRW --password op42flow42 admin

Then run the following commands, to initiate a MongoDB Replica Set for streaming database changes.

Code Block
rs.initiate()
exit

Restart mongod

...

5. Starting Services

5.1 Start NATS (on Main Primary Only)

Start the NATS service on the Main Primary server ONLY:

Code Block
sudo systemctl start nats-server

5.2 Restart mongod on Pollers and Mirrors only

After configuration changes, restart mongod on all Poller and Mirror servers ONLY:

Code Block
sudo systemctl restart mongod

5.3 Restart FirstWave daemons on all servers

After configuration changes have been made, you will need to restart the relevant FirstWave module daemons applicable to your server.

...

Proceed to the next step.

6. Update License

Install the opHA-MB for NMIS & opCharts license on the Main Primary server only.

...

You need to enter a License Key in the Modules → opLicensing as below on the Main Primary.

...

7. Restart opHA service on the Main Primary

Code Block
sudo systemctl restart ophad

8. Start the Poller and Mirrors

Execute the following command on the poller and mirror servers.

Code Block
sudo /usr/local/omk/bin/ophad cmd producer start

9. Final Steps

  1. Accept EULAs: Make sure when you login to each server to confirm that all End User License Agreements (EULAs) are accepted.

...