Skip to main content

HA Reference Architecture

The diagram in this topic represents a Moogsoft Enterprise High Availability deployment to a single site: one datacenter, LAN, or availability zone. To support this architecture, all servers must have sufficient connection speed amongst themselves so that latency between hosts does not exceed 5 ms.


A) Load balancers / VIPs

All Moogsoft Enterprise components have their own HA mechanism that provides failover capabilities , but it is also a best practice to use a load balancer or load balancers. You can use either software or hardware load balancers with the following requirements and recommendations:

  • Load balancers must use TCP.

  • You must implement health checks using your preferred approach to remove unhealthy servers from the cluster.

  • The load balancer should provide load balancing capabilities and a VIP for each server role. For example: one UI VIP per site, one LAM VIP per site.

  • Sticky sessions are recommended.

  • You can choose your preferred load balancing approach. For example, round robin or least-connection.

B) User interface

The Moogsoft Enterprise UI comprises the following components:

  • Nginx: The web server that provides static UI content and acts as a proxy for the application server. For HA deployments, install a minimum of two Nginx instances on separate servers and optionally cluster the Nginx instances.

  • Apache Tomcat: The web server that provides servlet and API support. For HA deployments, install a minimum of two Tomcat instances on separate servers and optionally cluster the instances.

The UI components run in active/active configuration, so configure servlet instances to run in separate groups.

Required Ports: 80, 443

C) Database

Moogsoft Enterprise uses Percona XtraDB as the system database. HA requires a minimum of three server nodes configured in each cluster with latency between them not exceeding 5 ms.

Required Ports: 3306

D) Search and indexing

Moogsoft Enterprise uses Elasticsearch to store active alert and Situation data to provide search functionality within the product. For HA deployments install a cluster of a minimum of three data servers with one active master server.

Required Ports: 9200, 9300

E) Core data processing

Moogfarmd is the core data processing application that controls all other services in Moogsoft Enterprise. It manages the clustering algorithms and other applets (Moolets) that run as part of the system. For HA deployments, install a minimum of two Moogfarmd services on separate servers. Moogfarmd can only run as a two-instance group in an active/passive mode.

Required Ports: 5701, 8901 for Hazelcast: the in-memory data grid that provides fault tolerance.

F) Message Bus

Moogsoft Enterprise uses RabbitMQ as the system Message Bus. It requires a minimum of three servers for HA. RabbitMQ relies on its native clustering functionality and mirrored queues to handle failover; it does not use the Moogsoft Enterprise load balancing feature.

Required Ports: 5672, 4369, 15672, 25672

G) Data ingestion

Moogsoft Enterprise uses the following types of Link Access Modules (LAMs) to ingest data:

  • Polling LAMs that periodically connect to a data source using an integration API to collect event data.

  • Receiving LAMs that provide an endpoint for data sources to post event data.

For HA deployments:

  • Install two instances of each LAM. When both instances are in the same group, they run in active/passive mode.

  • For LAMs deployed over an unreliable link such as a WAN, or across data centers, you should deploy a caching LAM strategy that includes a database and message queue on the LAM Servers.

  • You can load balance receiving LAMs and configure them as active/active to increase capacity.