Creating a RabbitMQ cluster - Restricted Security Area Surveillance 3.5

Restricted Security Area Surveillance Plugin Guide 3.5

series
Restricted Security Area Surveillance 3.5
revised_modified
2020-08-27

A RabbitMQ cluster is a feature that enables the synchronization of state data and configurations of multiple nodes, in a real-time networked environment. It adds failover protection and, in some cases, performance gains.

Procedure

To create a RabbitMQ cluster:

  1. Copy the .erlang.cookie files from the master node:
    By default in a Windows system, there is an .erlang.cookie file in two different locations in the master node. They are found in:
    • C:\Windows\System32\config\systemprofile
    • %HOMEDRIVE%%HOMEPATH%

      This usually leads to C:\Users\<username>

  2. Copy the cookies from each location and overwrite the cookie files in the same file path of the destination nodes.
  3. Copy the following certificate files from the master node and overwrite them to the other nodes:
    • CACert.pem
    • Cert.pem
    • Fingerprint.txt
    • Key.pem

    By default, these files are found in C:\Program Files (x86)\Genetec\RabbitMQ\.

Modify the RabbitMQ configuration files on the master node to enable partition handling:

  1. Right-click the Notepad application, select Run as administrator, and then open the RabbitMQ.config file in Notepad.
    By default, the RabbitMQ configuration file, RabbitMQ.config, is found in C:\Program Files (x86)\Genetec\RabbitMQ\.
    Tip: Using Notepad++ with Matlab set as language improves the readability of the file.
  2. Navigate to line 118 and add a comma after the } in the lines of code as shown:
  3. Navigate to line 303 and modify it from:
    %% {cluster_partition_handling, ignore},
    to:
    {cluster_partition_handling, pause_minority}
    By removing the %% symbol, the line is no longer flagged as a comment and becomes part of the code.
  4. Save the file.

Reinstall the RabbitMQ service to enable the configuration file changes:

  1. Right-click the RabbitMQ Command Prompt (sbin dir) application and select Run as administrator.
    This is installed with RabbitMQ by default.
  2. Execute the following commands:
    1. rabbitmq-service.bat remove
      When successfully executed, the following message is displayed:
      C:\Program Files\erl10.2\erts-10.2\bin\erlsrv: Service RabbitMQ removed from system
    2. rabbitmq-service.bat install
      When successfully executed, the following message is displayed:
      C:\Program Files\erl10.2\erts-10.2\bin\erlsrv: Service RabbitMQ added to system
    3. rabbitmq-service.bat start
      When successfully executed, the following message is displayed:
      The RabbitMQ service is starting. The RabbitMQ service was started successfully.

Ensure that your modified configuration file is loaded in memory:

  1. In the RabbitMQ Command Prompt application, execute the following command: rabbitmqctl.bat environment
    When successfully executed, the content of the RabbitMQ.config loaded in memory and the following message is displayed:
    Application environment of node rabbit@<User>
  2. Verify that your modifications have been implemented correctly:
    1. Ensure that line 303 of the displayed file reads as follows:
      {cluster_partition_handling, pause_minority}
    2. If the line of code does not read as in the previous step, modify it to match.

Copy the modified RabbitMQ.config file to the other nodes:

  1. Copy the modified RabbitMQ.config file from the master node.
    The default location of the config file is C:\Program Files (x86)\Genetec\RabbitMQ\.
  2. Overwrite the existing RabbitMQ.config file in the same file path of the destination nodes.
    It is recommended to do a backup before you overwrite the existing files.
  3. Reinstall RabbitMQ service for each node.