> For the complete documentation index, see [llms.txt](https://docs.enginsight.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.enginsight.com/docs/manual/english/installation-and-configuration/installation-and-configuration/load-balanced-setup.md).

# Load-Balanced Setup

For productive deployments of Enginsight, we recommend that you implement load balancing once you reach approximately **300 hosts** that have Pulsar installed.&#x20;

A load-balanced setup becomes **mandatory** once you reach approximately **500 hosts** that have Pulsar installed.

To achieve this, you must set up and configure multiple virtual machines and/or adjust the configuration of your existing Database Server and Application Server:

* 1 VM for the [load balancer](/docs/manual/english/installation-and-configuration/installation-and-configuration/load-balanced-setup/server-for-the-load-balancer.md)
* 1 VM for the [Enginsight Services](/docs/manual/english/installation-and-configuration/installation-and-configuration/load-balanced-setup/server-for-the-enginsight-services.md)
* 1 VM for the [Database Server](/docs/manual/english/installation-and-configuration/installation-and-configuration/load-balanced-setup/database-server.md)
* at least 2 VMs that act as [Application Server](/docs/manual/english/installation-and-configuration/installation-and-configuration/load-balanced-setup/application-server.md). The [required number of Application Servers](/docs/manual/english/installation-and-configuration/system-requirements/application-server.md#systemanforderungen-uberwachung-von-mehr-als-500-hosts-mit-pulsar) increases with the number of hosts that are monitored via Pulsar.

***

## Architecture of a Load-Balanced Setup

The following diagram shows a load-balanced setup, including the protocols and ports used.

<figure><img src="https://2423388680-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV7OrHgKXA0t1jankQBYf%2Fuploads%2FqBu6u2crfPYWE8GERA3Z%2FEnginsight-EN-Load%20Balancer%20Grafik.jpeg?alt=media&amp;token=fe7afa98-3324-4740-9bdc-dded64a61edd" alt=""><figcaption></figcaption></figure>

On the **Database Server**, **MongoDB** continues to serve as the database for Enginsight. In addition, **Redis** (REmote DIctionary Server) is installed to provide faster data access. MongoDB uses **port 27017**, while Redis uses **port 6379** for communication with the Enginsight Application Servers and the server for the Enginsight Services.

The middle layer consists of the Application Servers and the server for the Enginsight Services. While in a non-load-balanced setup, all Enginsight Docker containers run on a single Application Server, these services are distributed across multiple servers in a load-balanced deployment.

The **Application Servers** host only the Docker containers for the **Enginsight user interface** (container name: **ui-m1**) and the **Enginsight API** (container name: **server-m2**). The ui-m1 container uses **port 80**, while the server-m2 container uses **port 8080** to communicate with the Load Balancer.

The **server for the Enginsight Services** hosts only the following Docker containers:

<table><thead><tr><th width="155.890625">Service</th><th width="190.08984375">Docker Container Name</th><th>Description</th></tr></thead><tbody><tr><td>Sentinel</td><td>sentinel-m3</td><td>Manages alerts and associated notifications.</td></tr><tr><td>Reporter</td><td>reporter-m4</td><td>Provides the Enginsight platform with up-to-date vulnerability data (CVEs) and distributes it to the individual platform components.</td></tr><tr><td>Profiler</td><td>profiler-m22</td><td>Calculates baseline values for machine learning metrics.</td></tr><tr><td>Anomalies</td><td>anomalies-m28</td><td>Compares measured data against the machine learning baseline to detect anomalies.</td></tr><tr><td>Scheduler</td><td>scheduler-m29</td><td>Executes scheduled automated actions, such as plugins or audits.</td></tr><tr><td>Updater</td><td>updater-m34</td><td>Manages and updates configuration checklists for hosts.</td></tr><tr><td>Generator</td><td>generator-m35</td><td>Generates PDF reports, for example for hosts, endpoints, and penetration tests.</td></tr><tr><td>Historian</td><td>historian-m38</td><td>Aggregates collected data for historical analysis and trend visualization.</td></tr><tr><td>Themis</td><td>themis-m43</td><td>Acts as an integrity manager and validates data for correctness and timeliness.</td></tr></tbody></table>

The **load balancer** is responsible for receiving external requests from hosts and forwarding them to the appropriate server. The load balancer runs **nginx**, which ensures that external connections are secured via **SSL/TLS certificates** over **HTTPS**.

***
