# Anforderungen

{% hint style="info" %}
Bitte beachten Sie, dass wir unsere Services mithilfe von Docker orchestrieren. Aus diesem Grund ist es wichtig, dass auf den Servern ausschließlich die Enginsight Docker-Instanzen laufen. Veränderungen an der Setupkonfiguration in der docker-compose.yml Datei können zu unvorhersehbaren Nebeneffekten führen.&#x20;
{% endhint %}

{% hint style="info" %}
Wir empfehlen dringend, die von uns ausgewiesenen Linux-Image-Versionen zu verwenden, da spezielle Custom Builds leider nicht von uns unterstützt werden können!

Weiterhin werden ausschließlich Debian-basierte Systeme supportet. Jegliche Abweichungen von unserer Dokumentation, wie das eigenmächtige Ändern der Konfiguration, das Verändern des Setups oder das Hinzufügen weiterer Dienste auf dem Server, können von uns nicht unterstützt werden.&#x20;
{% endhint %}

{% hint style="danger" %}
Beachten Sie bitte, dass AVX für die Installation von MongoDB erforderlich ist!&#x20;
{% endhint %}

1. Virtuelle Maschinen (VM)
   1. für [Applikationsserver](#applikationsserver)
   2. für [Datenbankserver](#datenbankserver)
   3. für [Observer/Watchdog/Hacktor](#hacktor-watchdog-observer)
2. Freigaben für die [Firewall](#firewall-regeln)
3. [Docker Credentials](#docker-credentials)
4. [Lizenzfile](#lizenzfile) für Enginsight
5. [Remote Unterstützung](#remote-unterstuetzung) (bei Installation durch Enginsight Support)
6. [SSL/TLS-Zertifikat](#zertifikat)

## Ressourcen

### Applikationsserver

Der Applikationsserver dient zum Betrieb der zentralen API, des User Interfaces (UI) sowie weiterer Services der Plattform.

#### Überwachung von bis zu 500 Servern und Clients mit Pulsar-Agent

|                |                                                                                                                                                                                                       |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Betriebssystem | Debian 12, 64bit                                                                                                                                                                                      |
| CPU            | 4 Cores                                                                                                                                                                                               |
| RAM            | 8 GB (nicht dynamisch)                                                                                                                                                                                |
| Massenspeicher | <p>200 GB (SSD empfohlen)</p><p>Best Practice: Eine gemeinsame Partition für das gesamte Systeme anlegen</p>                                                                                          |
| Konnektivität  | <p>Eingehend: Port 80 (Redirect zu 443 + Let’s Encrypt ) und Port 443</p><p>Ausgehend: Port 27017 zum Datenbankserver und Port 80 & 443 zu den Servern die in den Firewall Regeln aufgeführt sind</p> |

{% hint style="info" %}
Zusätzlich empfehlen wir die Einrichtung von **mindestes 4 GB Swap-Speicher**, um potenzielle Out-of-Memory (OOM)-Probleme abzufedern. Besonders während der Generierung der Benutzeroberfläche (UI) durch Ember kann der RAM-Verbrauch stark ansteigen, was in Kombination mit der Verarbeitung eingehender Daten zu einem erhöhten Ressourcenbedarf führen kann. Ohne ausreichenden Swap-Speicher besteht die Gefahr von Neustart-Schleifen bei Ressourcenengpässen.
{% endhint %}

#### Überwachung von mehr als 500 Servern und Clients mit Pulsar-Agent

Sollten Sie mit Ihrer On-Premises-Instanz mehr als 300 Server und Clients mit dem Pulsar-Agent überwachen, sollten Sie die Möglichkeiten eines Load Balancing auf mehreren Applikationsservern in Betracht ziehen. **Bei mehr als 500 installierten Pulsar-Agents ist eine Lastenverteilung über mehrere Applikationsserver notwendig.**

| Maximale Anzahl an Pulsar-Agents | Anzahl an Applikationsservern |
| -------------------------------- | ----------------------------- |
| 500                              | 1 virtuelle Maschine          |
| 1000                             | 3 virtuelle Maschinen         |
| 2500                             | 8 virtuelle Maschinen         |
| 5000                             | 16 virtuelle Maschinen        |
| 10000                            | 32 virtuelle Maschinen        |

{% hint style="warning" %}
Wollen Sie das [Shield-Modul](https://docs.enginsight.com/docs/bedienung/plattform/shield) nutzen, um Netzwerkattacken zu blockieren, sollten Sie mehr Leistungsreserven vorhalten. Die benötigte Performance ist abhängig davon, wie viele Events auftreten. Deshalb sollten Sie Shield in mehreren Schritten einführen und die Performance im Monitoring beobachten, um ggf. rechtzeitig skalieren zu können.
{% endhint %}

{% hint style="info" %}
Bitte stellen Sie sicher, dass ein Zugriff über SSH möglich ist oder die [VMware Tools](https://www.vmware.com/support/ws5/doc/new_guest_tools_ws.html) installiert sind.
{% endhint %}

### Datenbankserver

Der Datenbank Server speichert sämtliche Monitoring Daten und kommuniziert ausschließlich mit dem Applikationsserver.

|                |                                                                                                              |
| -------------- | ------------------------------------------------------------------------------------------------------------ |
| Betriebssystem | Debian 12 64bit                                                                                              |
| Software       | MongoDB in aktueller Version                                                                                 |
| CPU            | 4 Cores                                                                                                      |
| RAM            | 4 GB                                                                                                         |
| Massenspeicher | <p>100 GB (SSD empfohlen)</p><p>Best Practice: Eine gemeinsame Partition für das gesamte Systeme anlegen</p> |
| Konnektivität  | Eingehend: Port 27017 für Applikationsserver                                                                 |
|                | Ausgehend: Port 80 & 443 zu den Servern die in den Firewall Regeln aufgeführt sind                           |

{% hint style="info" %}
Bitte stellen Sie sicher, dass ein Zugriff über SSH möglich ist oder die [VMware Tools](https://www.vmware.com/support/ws5/doc/new_guest_tools_ws.html) installiert sind.
{% endhint %}

### Benchmarktests für Server

Führen Sie die folgenden Tests durch, um die Leistung Ihrer Server zu bewerten: Diese Messungen ermöglichen eine präzise Einschätzung der Festplattenleistung und der CPU-Effizienz, um sicherzustellen, dass Ihre IT-Infrastruktur optimal funktioniert und den Anforderungen Ihrer Anwendungen gerecht wird.

#### **Festplattenleistung messen:**

Um die Festplattenleistung zu überprüfen, führen Sie das folgende Skript aus:

```
apt install fio 

fio --name=random-readwrite --ioengine=libaio --iodepth=1 --rw=randrw --bs=4k --direct=1 --size=1G --numjobs=1 --runtime=60 --filename=/tmp/testfile

```

**Erwartete Leistung:** **Mindestens 10 MB/s bei Lese- und Schreibvorgängen.**

#### **CPU Messung**

Um die CPU-Leistung zu überprüfen, führen Sie das folgende Skript aus:

```
apt install sysbench
 sysbench --test=cpu --cpu-max-prime=20000 run
```

**Erwartete Leistung: Ergebnis von 1500.**

### Hacktor/Watchdog/Observer

Für die Softwarekomponenten Hacktor, Watchdog und Observer benötigen Sie weitere VMs. Die Softwarekomponenten können gemeinschaftlich auf einem System betrieben werden, es wird jedoch **ein getrennter Betrieb empfohlen**. Bei einem gemeinschaftlichen Betrieb sind die Ressourcen zu verdoppeln.

Es handelt sich um Minimalanforderungen. Statten Sie die Instanzen mit mehr Leistung aus, damit die Softwarekomponenten mehr Leistungsreserven haben.

Ein Observer mit den angegebenen Ressourcen kann das Monitoring von bis zu 50 Endpunkten übernehmen. Beachten Sie für Endpunkte die [Option](https://docs.enginsight.com/docs/bedienung/plattform/endpunkte/observer#observer-konfigurieren), die parallele Bearbeitung von Endpunkten zu definieren. Die Standardeinstellung ist "2". Abhängig von den Leistungsreserven können Sie die Einstellung nach unten oder oben korrigieren. Sie haben außerdem die Möglichkeit, mehrere Observer der gleichen [Region zuzuordnen](https://docs.enginsight.com/docs/bedienung/plattform/endpunkte/observer#observer-konfigurieren), sodass sich die Observer die Überwachung der Endpunkte untereinander aufteilen.

Beachten Sie auch die Optionen für die [Konfiguration der Softwarekomponente Hacktor](https://docs.enginsight.com/docs/bedienung/plattform/penetrationstests/hacktor#hacktor-konfigurieren), insbesondere die Möglichkeit die [Anzahl paralleler Scans](https://docs.enginsight.com/docs/bedienung/plattform/penetrationstests/hacktor#anzahl-von-parallel-gescannten-zielen) zu erhöhen.

| Betriebssystem                        | <p>Linux: Debian 11/12, kein Windows</p><p>AMD64, ARM64, ARMv7/ARMv8</p> |
| ------------------------------------- | ------------------------------------------------------------------------ |
| CPU                                   | 2 Cores / 4 Cores (bei gemeinschaftlichen Betrieb der Services)          |
| RAM                                   | 2 GB / 4 GB (bei gemeinschaftlichen Betrieb der Services)                |
| Massenspeicher                        | 20 GB / 50 GB (bei gemeinschaftlichen Betrieb der Services)              |
| Konnektivität                         | Ausgehend: Port 80 bzw. 443                                              |
| Anzahl maximaler Prozesse (`numproc`) | <p>Minimal: 20.000</p><p>Best Practice: unbegrenzt</p>                   |

{% hint style="info" %}
Bitte stellen Sie sicher, dass ein Zugriff über SSH möglich ist oder die [VMware Tools](https://www.vmware.com/support/ws5/doc/new_guest_tools_ws.html) installiert sind.
{% endhint %}

## Firewall Regeln

### OnPrem

**App Server**

| **Richtung** | **Ziel**      | **Ziel-Port** | **Protokoll** | **Zweck**                                                     |
| ------------ | ------------- | ------------- | ------------- | ------------------------------------------------------------- |
| Ausgehend    | Update Server | 443           | TCP           | Updates für Betriebssystem und Plattform                      |
| Ausgehend    | DB            | 6379          | TCP           | Falls Redis auf der DB installiert ist (bsp.: Loadbalancer)   |
| Eingehend    | App Server    | 443           | TCP           |                                                               |
| Eingehend    | App Server    | 80            | TCP           | Falls LetsEncrypt verwendet wird                              |
| Eingehend    | App Server    | 8080          | TCP           | Bei unverschlüsselter Instanz (ausdrücklich nicht empfohlen!) |

**Datenbank Server**

| **Richtung** | **Ziel / Quelle**                     | **Ziel-Port** | **Protokoll** | **Zweck**                                                   |
| ------------ | ------------------------------------- | ------------- | ------------- | ----------------------------------------------------------- |
| Ausgehend    | Update Server                         | 80/443        | TCP           | Updates für Betriebssystem und Plattform                    |
| Eingehend    | App Server                            | 27017         |               |                                                             |
| Eingehend    | <p> </p><p>SIEM Management Server</p> | 27017         |               |                                                             |
| Eingehend    | App Server                            | 6379          | TCP           | Falls Redis auf der DB installiert ist (bsp.: Loadbalancer) |

**Component Server**

| **Richtung** | **Ziel / Quelle** | **Ziel-Port** | **Protokoll** | **Zweck**                                |
| ------------ | ----------------- | ------------- | ------------- | ---------------------------------------- |
| Ausgehend    | Update Server     | 80/443        |               | Updates für Betriebssystem und Plattform |

**Agents und Sensoren**

| **Komponente**                         | **Richtung** | **Ziel**   | **Ziel-Port** | **Protokoll** |
| -------------------------------------- | ------------ | ---------- | ------------- | ------------- |
| Pulsar Agent                           | Ausgehend    | App Server | 443           | TCP           |
| Enginsight Agent (Client/Server Agent) | Ausgehend    | App Server | 443           | TCP           |
| Watchdog                               | Ausgehend    | App Server | 443           | TCP           |
| Hacktor                                | Ausgehend    | App Server | 443           | TCP           |
| Observer                               | Ausgehend    | App Server | 443           | TCP           |

| **Wo**                | **Regel**                                 |
| --------------------- | ----------------------------------------- |
| Kundennetzwerk        | Sensor → Enginsight App Server: 443/TCP   |
| Kundennetzwerk        | Sensor → DNS: 53/UDP                      |
| Enginsight App Server | Keine eingehenden Regeln pro Sensor nötig |

{% hint style="danger" %}
Sollte Ihre Instanz nicht verschlüsselt sein, so muss der APP Server auch über 80 und 8080 erreichbar sein. Dies wird **nicht** empfohlen!\
Stellen Sie zudem bitte sicher, dass alle Server Ihren DNS erreichen
{% endhint %}

Weiterhin müssen folgende Domains von den Servern erreichbar sein:

**Alle Server:**

* Debian-Spiegelserver, der bei der Installation ausgewählt ist (Standard: deb.debian.org)
* security.debian.org&#x20;
* debian.pool.ntp.org&#x20;

**APP Server**:

* registry.enginsight.com
* get.enginsight.com
* registry-auth.enginsight.com
* github.com
* download.docker.com
* raw\.githubusercontent.com
* dls.enginsight.com
* registry-1.docker.io
* debian.pool.ntp.org
* auth.docker.io
* codeload.github.com
* production.cloudflare.docker.com
* security.debian.org
* packages.microsoft.com
* docker-images-prod.6aa30f8b08e16409b46e0173d6de2f56.r2.cloudflarestorage.com

**Datenbank**:

* repo.mongodb.org
* [www.mongodb.org](http://www.mongodb.org)
* debian.pool.ntp.org
* pgp.mongodb.com

**SIEM**:

* download.docker.com
* registry-1.docker.io
* auth.docker.io
* docker-images-prod.6aa30f8b08e16409b46e0173d6de2f56.r2.cloudflarestorage.com
* get.enginsight.com

### SIEM

Das SIEM setzt sich aus folgenden Komponenten zusammen:

* Pulsar
* Loggernaut&#x20;
* Apache Zookeeper
* Apache Solr
* (Tracer)

**Loggernaut**

| **Richtung** | **Ziel/Quelle**    | **Ziel-Port**           | **Protokoll** |
| ------------ | ------------------ | ----------------------- | ------------- |
| Ausgehend    | server-m2          | 443 oder 80 ohne https  | TCP           |
| Ausgehend    | solr               | 8983                    | TCP           |
| Ausgehend    | zookeeper          | 2181                    | TCP           |
| Ausgehend    | sftp backup server | SSH-Port (konfiguriert) | TCP           |
| Ausgehend    | s3 backup server   | 443 / 80                | TCP           |
| Eingehend    | server-m2          | 443 oder 80 ohne https  | TCP           |
| Eingehend    | tracer             | 443 oder 80 ohne https  | TCP           |

**Solr**

| **Richtung** | **Ziel/Quelle** | **Ziel-Port** | **Protokoll** |
| ------------ | --------------- | ------------- | ------------- |
| Ausgehend    | solr            | 8983          | TCP           |
| Ausgehend    | zookeeper       | 2181          | TCP           |
| Eingehend    | loggernaut      | 8983          | TCP           |
| Eingehend    | solr            | 8983          | TCP           |

**Zookeeper**

| **Richtung** | **Quelle** | **Ziel-Port** | **Protokoll** |
| ------------ | ---------- | ------------- | ------------- |
| Eingehend    | loggernaut | 2181          | TCP           |
| Eingehend    | solr       | 2181          | TCP           |

**Server-m2**

| **Richtung** | **Ziel/Quell** | **Ziel-Port**          | **Protokoll** |
| ------------ | -------------- | ---------------------- | ------------- |
| Ausgehend    | loggernaut     | 443 oder 80 ohne https | TCP           |
| Eingehend    | loggernaut     | 443 oder 80 ohne https | TCP           |

**Traicer**

| **Richtung** | **Ziel**   | **Ziel-Port**          | **Protokoll** |
| ------------ | ---------- | ---------------------- | ------------- |
| Ausgehend    | loggernaut | 443 oder 80 ohne https | TCP           |

**SFTP Backup Server**

<table data-header-hidden><thead><tr><th></th><th></th><th></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td><strong>Richtung</strong></td><td><strong>Quelle</strong></td><td><strong>Ziel</strong></td><td valign="top"><strong>Ziel-Port</strong></td><td><strong>Protokoll</strong></td></tr><tr><td>Eingehend</td><td>loggernaut</td><td>SSH-Port (konfiguriert)</td><td valign="top">SSH Port (Definiert in Config)</td><td>TCP</td></tr></tbody></table>

**S3 Backup Server**

| **Richtung** | **Quelle** | **Ziel-Port** | **Protokoll** | **Zweck**           |
| ------------ | ---------- | ------------- | ------------- | ------------------- |
| Eingehend    | loggernaut | 443 / 80      | TCP           | Empfang der Backups |

## Zertifikat

Damit der Netzwerkverkehr zwischen den Sensoren (Pulsar-Agent, Observer, Watchdog, Hacktor) und der Enginsight API verschlüsselt ist, brauchen Sie ein SSL/TLS-Zertifikat. Als Best Practice empfehlen wir ein öffentliches Zertifikat (z.B. von Let's encrypt), welches Sie intern auflösen.

Nutzen Sie einen Reverse Proxy (extern oder auf dem Server selbst), der die Requests an Port 80 (App) und Port 8080 (API) weiterleitet.

{% hint style="danger" %}
Für einen reibungslosen Betrieb der Enginsight Applikation ist der Aufruf über HTTPS zwingend notwendig.
{% endhint %}

Für den Betrieb der Standard-Installation empfehlen wir zwei DNS Names:

* ngs-api.ihre-domain.de
* ngs-app.ihre-domain.de

{% hint style="info" %}
Achten Sie beim Zertifikat bitte darauf, dass es im PEM Format vorliegt.
{% endhint %}

## Docker Credentials

Um Enginsight On-Premises zu betreiben, benötigen Sie Docker Credentials, die Sie von uns erhalten. Kontaktieren Sie uns einfach per E-Mail: <insidesales@enginsight.com>**.**

## Lizenzfile

Das nötige Lizenzfile können Sie direkt bei uns erwerben. Kontaktieren Sie uns einfach per E-Mail: <insidesales@enginsight.com>**.**

## Remote Unterstützung

Sollten Sie Enginsight On-Premises mit Unterstützung durch unseren Support installieren wollen, stellen Sie bitte sicher, dass eine Möglichkeit zur Remote Steuerung vorhanden ist. Unserer Erfahrung nach funktioniert TeamViewer am zuverlässigsten.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.enginsight.com/docs/on-premises/anforderungen.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
