# Server-Monitoring mit Alarmen für CPU, RAM und Disk

> Überwache CPU, Load, Arbeitsspeicher, Festplatte und Netzwerk deiner Server minütlich, erhalte E-Mail-Alarme bei Grenzwerten und prüfe Cronjobs per Heartbeat.

Das Server-Monitoring von Vimonto Deploy misst einmal pro Minute CPU, Load, Arbeitsspeicher, Festplatte und Netzwerk jedes Servers, zeigt die Werte in Diagrammen und warnt dich per E-Mail und in der App, wenn ein Wert zu lange zu hoch bleibt. **Heartbeats** überwachen deine geplanten Jobs: Ein Job ruft nach Abschluss eine URL auf, und du wirst gewarnt, wenn dieser Aufruf nicht rechtzeitig eintrifft.

Alles findest du auf der Seite **Monitoring** des Servers. Das Dashboard der Organisation zeigt außerdem die Diagramme aller deiner Server nebeneinander.

![Die Monitoring-Seite eines Servers mit Werten für CPU, Load, Arbeitsspeicher und Festplatte, Verlaufsdiagrammen, einer Liste von Monitoren und einem Heartbeat mit seiner Ping-URL](https://ops.vimonto.com/docs-media/de/server-monitoring.webp?v=161e760d "Einen Server überwachen")

## Wie funktioniert der Monitoring-Agent?

Der Monitoring-Agent ist ein kleines Bash-Skript auf deinem Server. Cron führt es jede Minute als root aus. Bei jedem Lauf misst es den Server und schickt die Zahlen per HTTPS an Vimonto Deploy, mit einem Token, das nur zu diesem Server gehört. Auf dem Server lauscht nichts: Es wird kein Port geöffnet und kein Daemon gestartet.

| Was der Agent misst | Wie |
| --- | --- |
| CPU-Auslastung | Der Anteil der ausgelasteten CPU-Zeit, gemessen über eine Sekunde |
| Load (1 Min.) | Der Load-Durchschnitt der letzten Minute, mit der Anzahl der CPU-Kerne |
| Arbeitsspeicher | Belegter Arbeitsspeicher (gesamt minus verfügbar), in Prozent |
| Festplatte | Belegter Platz auf der Root-Festplatte (`/`), in Prozent |
| Netzwerk | Empfangene und gesendete Bytes auf der Hauptnetzwerkschnittstelle des Servers, angezeigt in Mbit/s |

Vimonto Deploy speichert eine Messung pro Server und Minute und löscht Messungen nach **31 Tagen**.

### Den Agent installieren

Neue Server erhalten den Agent automatisch: Er ist der letzte Schritt der [Provisionierung](https://ops.vimonto.com/docs/de/servers/provisioning). Hat ein Server keinen Agent, zeigt die Monitoring-Seite **Es läuft noch kein Monitoring-Agent**. Klicke auf **Agent installieren**; die erste Messung erscheint innerhalb einer Minute.

Der Agent besteht aus diesen Dateien auf dem Server:

| Datei | Zweck |
| --- | --- |
| `/usr/local/bin/vimonto-agent` | Das Agent-Skript |
| `/etc/vimonto/agent.env` | Wohin die Messungen gehen, und das Token des Servers (nur für root lesbar) |
| `/etc/cron.d/vimonto-agent` | Führt den Agent jede Minute aus |

### Wenn der Agent keine Werte mehr meldet

Ist seit fünf Minuten keine Messung eingetroffen, zeigt die Seite **Der Agent meldet sich nicht** mit dem Zeitpunkt der letzten Messung. Prüfe, ob der Server läuft und Vimonto Deploy per HTTPS erreichen kann (ausgehender Verkehr zu der Adresse in der Meldung). Klicke dann auf **Agent neu installieren**. Dabei wird das Skript neu geschrieben und der Server erhält ein neues Token; gespeichert wird nur ein Hash dieses Tokens.

## Werte und Diagramme lesen

Oben auf der Seite zeigen vier Werte die letzte Messung:

- **CPU**, mit der Anzahl der Kerne.
- **Load (1 Min.)**. Ist die Load höher als die Anzahl der Kerne, wartet Arbeit auf die CPU.
- **Arbeitsspeicher**, der belegt ist.
- **Festplatte**, die Root-Festplatte.

CPU, Arbeitsspeicher und Festplatte werden ab 75 % orange und ab 90 % rot.

Unter **Verlauf** zeigen vier Diagramme CPU, Arbeitsspeicher, Festplatte und Netzwerk (eingehend und ausgehend) im Zeitverlauf. Den Zeitraum wählst du über den Diagrammen:

| Zeitraum | Ein Punkt pro |
| --- | --- |
| 1 Stunde | Minute |
| 6 Stunden | Minute |
| 24 Stunden | 5 Minuten |
| 7 Tage | 30 Minuten |
| 30 Tage | 2 Stunden |

Längere Zeiträume zeigen den Durchschnitt jedes Abschnitts. Eine kurze Spitze wirkt dort also niedriger als in der Ansicht über 1 Stunde.

## Einen Alarm erhalten, wenn ein Server unter Last steht

Ein **Monitor** schickt dir eine E-Mail, wenn eine Metrik eine bestimmte Anzahl Minuten lang auf oder über einem Schwellenwert bleibt, und noch einmal, wenn sie wieder darunter liegt.

1. Klicke unter **Monitore** auf **Monitor hinzufügen**.
2. Wähle die **Metrik**: **CPU-Auslastung**, **CPU-Last (1 Min.)**, **Speicherauslastung** oder **Festplattenbelegung**.
3. Gib den **Schwellenwert** ein: einen Prozentwert für die Auslastung oder einen Load-Wert für die CPU-Last. Eine Load gleich der Anzahl der Kerne bedeutet volle Auslastung.
4. Gib unter **Für (Minuten)** ein, wie lange der Wert auf oder über dem Schwellenwert bleiben muss, von 1 bis 60 Minuten.
5. Gib unter **Benachrichtigen** die E-Mail-Adresse ein. Standardmäßig ist es deine.
6. Klicke auf **Hinzufügen**.

Jeder Monitor wird zum Beispiel als *CPU-Auslastung ≥ 90 % für 5 Min.* angezeigt, mit seinem Status (**Alles in Ordnung** oder **Alarm**), dem letzten Wert und während eines Alarms dem Zeitpunkt, seit dem er besteht.

### Wann schickt ein Monitor eine E-Mail?

Jede neue Messung wird mit deinen Monitoren abgeglichen:

- **Alarm:** Die Metrik lag in *jeder* Minute des Zeitfensters auf oder über dem Schwellenwert. Eine Minute ohne Messung gilt als nicht belegt, Lücken lösen also nie einen Alarm aus. Du bekommst eine E-Mail mit einem Betreff wie *Warnung: CPU-Auslastung auf web-1 ist 96 %*.
- **Behoben:** Sobald der letzte Wert wieder unter dem Schwellenwert liegt, kehrt der Monitor zu **Alles in Ordnung** zurück, und du bekommst eine E-Mail *Behoben*.

Du bekommst eine E-Mail, wenn der Alarm beginnt, und eine, wenn er endet, nicht jede Minute eine.

Gute Ausgangswerte: CPU-Auslastung bei 90 % für 5 Minuten, Speicherauslastung bei 90 % für 5 Minuten und Festplattenbelegung bei 85 % für 1 Minute. Um einen Monitor zu ändern, entferne ihn und füge einen neuen hinzu.

## Geplante Jobs mit Heartbeats überwachen

Ein **Heartbeat** prüft, ob etwas regelmäßig passiert, etwa ein nächtliches Backup oder ein Cronjob. Du erhältst eine eindeutige URL. Dein Job ruft sie jedes Mal auf, wenn er erfolgreich fertig ist. Kommt der Aufruf nicht rechtzeitig, schickt Vimonto Deploy dir eine E-Mail.

### Einen Heartbeat hinzufügen

1. Klicke unter **Heartbeats** auf **Heartbeat hinzufügen**.
2. Gib unter **Name** einen Namen ein, zum Beispiel *Nächtliches Backup*.
3. Gib unter **Erwartet alle (Minuten)** ein, wie oft der Job läuft. 60 ist stündlich, 1440 ist täglich.
4. Gib unter **Toleranz (Minuten)** ein, wie viel später der Job laufen darf, bevor er als verpasst gilt.
5. Gib unter **Benachrichtigen** die E-Mail-Adresse ein und klicke auf **Hinzufügen**.
6. Kopiere die URL des Heartbeats und lass deinen Job sie aufrufen, wenn er fertig ist.

Am einfachsten hängst du den Aufruf im [Scheduler](https://ops.vimonto.com/docs/de/servers/scheduler) an den Befehl an, sodass er nur läuft, wenn der Befehl erfolgreich war:

```bash
php /home/vimonto/example.com/current/artisan backup:run && curl -fsS -m 10 https://deploy.example.com/heartbeat/your-token
```

Die URL akzeptiert GET- und POST-Anfragen und antwortet mit `OK`.

### Wann gilt ein Heartbeat als verpasst?

Ein Heartbeat ist fällig zum Zeitpunkt seines letzten Pings (oder vor dem ersten Ping zum Zeitpunkt seiner Erstellung) plus Intervall plus Toleranz. Vimonto Deploy prüft jede Minute alle Heartbeats. Ein überfälliger Heartbeat wird **Verpasst**, und du bekommst eine E-Mail wie *Verpasst: Nächtliches Backup auf web-1*.

| Status | Bedeutung |
| --- | --- |
| **Wartet auf den ersten Ping** | Der Heartbeat wurde hinzugefügt, aber noch nicht aufgerufen. |
| **Aktiv** | Der letzte Ping kam rechtzeitig. |
| **Verpasst** | Innerhalb von Intervall plus Toleranz ist kein Ping eingetroffen. |

Du bekommst eine E-Mail, wenn ein Heartbeat verpasst wird. Ruft der Job die URL wieder auf, wird der Heartbeat **Aktiv**, und du bekommst eine E-Mail *Wieder aktiv*.

Um Name, Intervall, Toleranz oder E-Mail-Adresse zu ändern, wähle im Menü des Heartbeats **Bearbeiten**; die URL bleibt gleich. Nach **Entfernen** funktioniert die URL nicht mehr und liefert einen 404.

## Wer wird benachrichtigt?

Wenn ein Monitor oder Heartbeat seinen Zustand ändert, wird auf zwei Wegen benachrichtigt:

- **Die Adresse unter Benachrichtigen** bekommt eine E-Mail beim Alarm und bei der Erholung. Sie muss keinem Mitglied gehören, ein gemeinsames Team-Postfach funktioniert also auch.
- **Mitglieder der Organisation**, die den Server sehen können, bekommen eine Benachrichtigung **Monitor-Alarm** oder **Heartbeat verpasst**, in der App (die Glocke in der oberen Leiste) und per E-Mail. Jedes Mitglied wählt diese Kanäle oder schaltet einen Server stumm in seinen [Benachrichtigungseinstellungen](https://ops.vimonto.com/docs/de/more/notifications).

Niemand bekommt denselben Alarm doppelt. Gehört die Adresse unter **Benachrichtigen** einem Mitglied, das **Monitor-Alarm** oder **Heartbeat verpasst** per E-Mail bekommt, entfällt die separate E-Mail an diese Adresse und das Mitglied bekommt nur die E-Mail der Benachrichtigung. Die Adresse unter **Benachrichtigen** ist standardmäßig deine, also bekommst du von Haus aus eine E-Mail. Ein gemeinsames Postfach oder eine andere Adresse außerhalb der Organisation bekommt die separate E-Mail weiterhin, ebenso ein Mitglied, das die E-Mail für diese Art von Benachrichtigung ausgeschaltet oder den Server stummgeschaltet hat.

## Wer darf das Monitoring ändern?

Jedes Mitglied sieht die Werte, Diagramme, Monitore und Heartbeats. Zum Hinzufügen und Entfernen von Monitoren und Heartbeats und zum Installieren des Agents brauchst du die Berechtigung, Server zu verwalten (Owner, Administrator, Manager und Developer). Änderungen warten, bis der Server aktiv ist, wie auf den anderen Serverseiten. Siehe [Mitglieder und Rollen](https://ops.vimonto.com/docs/de/organization/members-and-roles).

## Häufig gestellte Fragen

### Kostet das Monitoring extra oder bremst es meinen Server?

Nein. Das Monitoring ist im Tarif enthalten. Der Agent läuft jede Minute etwa eine Sekunde lang und sendet ein paar Zahlen.

### Warum zeigt mein Server keine Messungen?

Möglicherweise ist der Agent nicht installiert oder der Server erreicht Vimonto Deploy nicht. Installiere den Agent auf der Monitoring-Seite (neu) und stelle sicher, dass ausgehender HTTPS-Verkehr erlaubt ist.

### Kann ich einen Server ohne Sites überwachen, etwa einen Datenbank- oder Cache-Server?

Ja. Der Agent funktioniert auf jedem [Servertyp](https://ops.vimonto.com/docs/de/servers/server-types).

### Kann ich Alarme an Slack oder eine Team-Adresse senden?

Alarme gehen per E-Mail an die Adresse unter **Benachrichtigen** und als Benachrichtigung in der App und per E-Mail an die Mitglieder. Eine Slack-Anbindung gibt es nicht; gib als Adresse zum Benachrichtigen eine gemeinsame Adresse ein, etwa das Postfach deines Teams.

### Wie lange werden Monitoring-Daten aufbewahrt?

Messungen werden 31 Tage aufbewahrt, der längste Zeitraum in den Diagrammen ist also 30 Tage.
