RabbitMQ Configuration (Early IAP Versions)
  • 19 Nov 2024
  • Dark
    Light
  • PDF

RabbitMQ Configuration (Early IAP Versions)

  • Dark
    Light
  • PDF

Article summary

Earlier release versions of IAP use RabbitMQ, an open-source message broker, to handle all inter-communication between its component processes. This article provides a reference for configuring RabbitMQ with:

  • IAP/2023.1
  • IAP/2022.1

Prerequisites

Before proceeding, make sure compatible versions of the following prerequisites are installed:

  • RabbitMQ
  • Erlang

If using the Event Deduplication feature, compatabile versions of the following should also be installed:

  • RabbitMQ Message Deduplication
  • Elixir

The latest compatibility versions for all prerequisites are documented in the product dependencies.

Package Commands

Use the following list of commands to check the current versions of the prerequisite packages.

Package Command Description
RabbitMQ rabbitmq-diagnostics server_version Returns the current version of the RabbitMQ installation.
Erlang rabbitmq-diagnostics erlang_version Returns the current version of the Erlang installation.
RabbitMQ Message Deduplication rabbitmq-plugins list rabbitmq_message_deduplication Returns the current version of the Deduplication plugin.
Elixir elixir --version Returns the current version of the Elixir installation.

More information is available in the RabbitMQ section of the install guide.

Configuring RabbitMQ Properties

RabbitMQ properties are configured in the Profiles of the Admin Essentials application:

  1. Click Profiles in the left-hand side navigation menu. The Profiles accordion menu expands, listing all IAP profiles.
  2. Select the profile to be edited.
  3. Click the Configure tab at the top of the profile view.
  4. Under the Edit Profile Properties section of the configuration view, select rabbitmq to edit its properties.

RabbitMQ Profile Properties (IAP/23.1 and IAP/22.1)
Faigure 01

RabbitMQ Variable References

Referenced below are brief descriptions and example values for all RabbitMQ variables that can be edited in IAP.

Variable Description Example Values
Protocol The protocol used by RabbitMQ. Valid values are AMQP or AMQPS. AMQP
Hosts The hostname or IPv4 address of the RabbitMQ server. This variable accepts a single value or an array. rabbitmq.example.com
10.0.0.1
port The port used to connect to the RabbitMQ server. The default ports for AMQP and AMQPS are 5672 and 5671, respectively. 5672
5671
adminPort The port used to connect to the RabbitMQ server management plugin. The default port is 15672. 15672
Username The username used to connect to the RabbitMQ server. pronghorn
Password The password for the account specified by the Username variable. Th1Sis@n3xamplePAss!
Locale The locale used by RabbitMQ. The default value is en_US. en_US
FrameMax The maximum frame size (in bytes) allowed over the connection. A value of 0 means no limit. 0
Heartbeat The heartbeat period in seconds. A value of 0 means the server value is used. 0
45
Vhost The virtual host used by the RabbitMQ server. Special characters in the name of a virtual host must be escaped via HTML URL encoding. %2Ffoo

RabbitMQ High Availability Considerations

When deploying Itential Automation Platform (IAP) in a High Availability topology, several additional steps must be taken to ensure the proper operation of RabbitMQ.

RabbitMQ Clustering and Message Queue Mirroring

To achieve high availability, you must configure RabbitMQ to use clustering and message queue mirroring. A RabbitMQ cluster is a logical grouping of RabbitMQ instances, or nodes. All of the nodes in a RabbitMQ cluster share operational data with each other; however, message queues are not replicated by default.

To replicate message queues between the nodes in a cluster, message queue mirroring must be configured. When using message queue mirroring, all changes to a queue are first applied to a leader replica. The leader replica is only present on one node, which is known as the leader node for the relevant queue. After changes are applied to the leader replica, the changes propagate to the mirrors of the queue. Mirrors are copies of a queue that exist on nodes that are not the leader node for the queue.

Itential recommends that at least three (3) nodes are present in a cluster used by IAP. Furthermore, RabbitMQ recommends that an odd number of nodes are present in a cluster.

Refer to the official RabbitMQ site for more information on configuring clustering and message queue mirroring.

RabbitMQ Hosts Variable Behavior

When configuring IAP to connect to a RabbitMQ cluster, it is important that the Hosts variable described in the RabbitMQ variable reference above is configured as an array. You should enter the hostname or IPv4 address of each RabbitMQ node in the cluster to the array. When configured in this manner, IAP will failover to another node in the RabbitMQ cluster in the event of a node outage.

To add multiple values to the Hosts variable from the IAP profile configuration view:

  1. Enter the hostname or IPv4 address of the primary RabbitMQ node in the first field.
  2. Click + Row. This creates a new field for text input.
  3. Enter the hostname or IPv4 address of a secondary RabbitMQ node in the newly created field.
  4. Click Save to confirm all changes.

Adding Multiple Values to Hosts (IAP/23.1 and IAP/22.1)
Figure 02


Was this article helpful?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.