HA Reference Architecture

The diagram in this topic represents a Moogsoft AIOps 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. For more information, see Server Roles.Server Roles

v7_3docs9_3_19v3.png

Load balancers / VIPs

All Moogsoft AIOps 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.

User Interface role: 1 and 2

The Moogsoft AIOps 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

Database role: 3, 4 and 5

Moogsoft AIOps uses Percona XtraDB Cluster as the system database. It requires a three servers configured in master > standby > standby mode for HA. See Database Architecture Improvements for more information.Database Architecture Improvements

You can split the database pair across two sites if the latency is less than 10ms.

Required Ports: 3306

D) Search and indexing

Moogsoft AIOps 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 AIOps. 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 AIOps 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 AIOps load balancing feature.

Required Ports: 5672, 4369, 15672

G) Data ingestion

Moogsoft AIOps 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.