Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
165 changes: 165 additions & 0 deletions tutorials/monitor-cloud-server-with-livck-cloud/01.de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
---
SPDX-License-Identifier: MIT
path: "/tutorials/monitor-cloud-server-with-livck-cloud/de"
slug: "monitor-cloud-server-with-livck-cloud"
date: "2026-09-24"
title: "Cloud Server mit LIVCK Cloud überwachen"
short_description: "Installiere den quelloffenen LIVCK-Agenten auf einem Cloud Server, verfolge die Auslastung von CPU, RAM und Festplatte und erhalte bei Ausfall eine E-Mail."
tags: ["Monitoring", "Linux", "Ubuntu", "Debian", "cloud-init"]
author: "René Roscher"
author_link: "https://github.com/rene-roscher"
author_img: "https://avatars.githubusercontent.com/u/43115138?s=400&v=4"
author_description: "Gründer von LIVCK"
language: "de"
available_languages: ["en", "de"]
header_img: "header-5"
cta: "cloud"
---

## Einführung

In diesem Tutorial installierst du den LIVCK-Agenten auf einem Cloud Server. Der Agent schickt Messwerte zu CPU, Arbeitsspeicher, Festplatten und Netzwerk an [LIVCK Cloud](https://livck.cloud), wo du sie als Diagramme ansehen kannst. Meldet sich der Server nicht mehr oder überschreitet ein Messwert einen Schwellwert, bekommst du eine E-Mail. Außerdem kann der Agent vom Server aus prüfen, ob Dienste in deinem privaten Netzwerk antworten.

Weil der Agent nur ausgehende Verbindungen aufbaut, musst du an deiner [Hetzner Cloud Firewall](https://docs.hetzner.com/de/cloud/firewalls/overview) nichts ändern. Der Quellcode liegt unter der MIT-Lizenz auf [GitHub](https://github.com/LIVCK/agent).
Comment on lines +21 to +23

**Voraussetzungen**

* Ein Cloud Server mit Ubuntu oder Debian
* Root-Zugang per SSH
* Eine E-Mail-Adresse. Der kostenlose Plan reicht für zwei Server und kommt ohne Zahlungsdaten aus.

## Schritt 1 - Konto bei LIVCK Cloud anlegen

Registriere dich unter [app.livck.cloud/register](https://app.livck.cloud/register) und bestätige deine E-Mail-Adresse. Im Onboarding legst du eine Organisation an und klickst bei der Planauswahl auf **Kostenlos starten**. Die übrigen Onboarding-Schritte kannst du überspringen.

## Schritt 2 - Installationsbefehl erzeugen

Öffne in der Seitenleiste **Überwachung** > **Server** und klicke auf **Server hinzufügen**. Wähle **Einen Server** und klicke auf **Weiter**. Der Dialog zeigt einen Installationsbefehl mit einem Einmal-Token, der nach einem Tag abläuft.

![Installationsbefehl in LIVCK Cloud](images/add-server.de.png)

Lass den Dialog offen. Er aktualisiert sich, sobald sich dein Server meldet.

## Schritt 3 - Agent installieren

Melde dich per SSH als root auf deinem Server an und führe den Befehl aus dem Dialog aus. Der Installer lädt das passende Paket herunter, vergleicht die Prüfsumme und startet den Agenten.

Wenn du das Skript vorher lesen willst, lade es zuerst herunter:

```bash
curl -fsSLO https://get.livck.cloud/install.sh
less install.sh
sh install.sh --token <your_token>
```

Ersetze `<your_token>` durch den Token aus dem Dialog.

Der Agent läuft unter einem eigenen Systembenutzer ohne Root-Rechte und liest seine Daten überwiegend aus `/proc` und `/sys`. Logdateien und den Inhalt deiner Dateien liest er nicht, und LIVCK Cloud kann keine Befehle auf dem Server ausführen. Neue Versionen installiert der Agent nachts selbst, nachdem er ihre Signatur geprüft hat. Auf der Seite des Servers unter **Bearbeiten** > **Updates** kannst du das Zeitfenster ändern oder automatische Updates abschalten.

## Schritt 4 - Ergebnis prüfen

Wenige Sekunden später zeigt der Dialog **Dein Server ist verbunden!** und öffnet die Seite des Servers. Die Live-Metriken dort aktualisieren sich alle zwei Sekunden, solange die Seite offen ist.

![Live-Metriken in LIVCK Cloud](images/server.de.png)

Auf dem Server sollte `systemctl status livck-agent` den Zustand `active (running)` zeigen.

Jeder neue Server bekommt drei Alarm-Regeln: CPU und Arbeitsspeicher jeweils zehn Minuten lang bei mindestens 90 % sowie die Root-Partition ab 85 % Belegung. Löst eine davon aus, bekommst du eine E-Mail. Ändern kannst du die Regeln auf der Seite des Servers unter **Bearbeiten** > **Alarm-Regeln**.

## Schritt 5 - Alarm testen

Stoppe den Agenten:

```bash
systemctl stop livck-agent
```

Im kostenlosen Plan meldet sich der Agent alle zwei Minuten. Drei bis fünf Minuten nach dem Stoppen steht der Server auf **Offline**, und du bekommst eine E-Mail.

Starte den Agenten wieder:

```bash
systemctl start livck-agent
```

Mit der nächsten Meldung ist der Server wieder **Online**, und du bekommst eine zweite E-Mail. Ein normaler Neustart löst keinen Alarm aus, solange der Server innerhalb von etwa drei Minuten wieder läuft.

## Schritt 6 - Überwachung erweitern (optional)

### Schritt 6.1 - Eigene Alarm-Regel anlegen

Für jeden anderen Messwert, den der Agent meldet, kannst du eigene Regeln anlegen, zum Beispiel für ein [Hetzner Cloud Volume](https://docs.hetzner.com/de/cloud/volumes/overview). Öffne auf der Seite des Servers **Bearbeiten** > **Alarm-Regeln**, klicke auf **Regel hinzufügen** und fülle den Dialog aus:

* **Metrik**: `sys.disk.{mount}.used_pct`
* **Einhängepunkt**: der Einhängepunkt des Volumes, zum Beispiel `/mnt/HC_Volume_12345678`
* **Operator**: **größer oder gleich (≥)**
* **Schwellwert**: `85`
* **Dauer**: `0`, damit die Regel sofort auslöst

Speichere die Regel mit **Regel erstellen**.

![Alarm-Regel in LIVCK Cloud erstellen](images/alert-rule.de.png)

### Schritt 6.2 - Dienste im privaten Netzwerk prüfen

Um eine Datenbank in einem [Hetzner Cloud Netzwerk](https://docs.hetzner.com/de/cloud/networks/overview) zu prüfen, öffne **Bearbeiten** > **Erreichbarkeit** und klicke auf **Ziel hinzufügen**. Gib eine **Bezeichnung** ein, wähle **TCP-Port** und trage die private IP-Adresse unter **Ziel (Host/IP)** und `5432` unter **Port** ein. Klicke auf **Speichern**. Nach ein paar Minuten erscheint das Ergebnis auf der Seite des Servers.

![Erreichbarkeits-Prüfungen in LIVCK Cloud](images/reachability.de.png)

Der Typ **DNS** mit einer Domain wie `example.com` als Ziel prüft, ob der auf dem Server eingestellte DNS-Resolver antwortet. Um einen bestimmten DNS-Server zu prüfen, trägst du seine IP-Adresse unter **Resolver** ein.

Damit du eine E-Mail bekommst, wenn ein Ziel nicht erreichbar ist, legst du wie in Schritt 6.1 eine Regel mit der Metrik `sys.probe.{target}.up` an, wählst dein Ziel aus und stellst unter **Alarm auslösen wenn** den Eintrag **Wert = 0** ein.

## Schritt 7 - Neue Server per cloud-init verbinden (optional)

Damit sich neue Server selbst anmelden, öffne erneut **Überwachung** > **Server** > **Server hinzufügen** und wähle **Mehrere Server**. Der Token, der dann erscheint, gilt 90 Tage lang für bis zu 50 Server. Beim Erstellen eines Servers in der [Hetzner Console](https://console.hetzner.com/) fügst du Folgendes in das Feld **Cloud config** ein:

```yaml
#cloud-config
runcmd:
- curl -fsSL https://get.livck.cloud/install.sh | sh -s -- --token <your_token>
```

Die Cloud config bleibt auf dem Server lesbar. Widerrufe den Token deshalb unter **Einstellungen** > **Enrollment-Tokens**, sobald alle Server verbunden sind.

## Ergebnis

Dein Server meldet seine Werte jetzt an LIVCK Cloud, und du bekommst eine E-Mail, wenn er ausfällt oder eine Alarm-Regel auslöst. Willst du die Überwachung entfernen, lösche zuerst den Server in LIVCK Cloud und führe dann `livck-agent uninstall` auf dem Server aus.

**Nächste Schritte:**

* Zeige den Zustand deines Servers auf einer öffentlichen Statuspage. Statuspages laufen auf [statuspage.de](https://statuspage.de) unter `<name>.statuspage.de` oder auf deiner eigenen Domain.
* [Dokumentation zum Server-Monitoring](https://docs.livck.cloud/server-monitoring/overview)
* [Quellcode des LIVCK-Agenten](https://github.com/LIVCK/agent)
* [Grundlegende Cloud-Konfiguration](https://community.hetzner.com/tutorials/basic-cloud-config/de) für weitere Möglichkeiten im Feld **Cloud config**

##### License: MIT

Check failure on line 136 in tutorials/monitor-cloud-server-with-livck-cloud/01.de.md

View workflow job for this annotation

GitHub Actions / Markdown lint (advisory)

Heading levels should only increment by one level at a time

tutorials/monitor-cloud-server-with-livck-cloud/01.de.md:136 MD001/heading-increment Heading levels should only increment by one level at a time [Expected: h3; Actual: h5] https://github.com/DavidAnson/markdownlint/blob/v0.41.1/doc/md001.md

<!--

Contributor's Certificate of Origin

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have
the right to submit it under the license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my
knowledge, is covered under an appropriate license and I have the
right under that license to submit that work with modifications,
whether created in whole or in part by me, under the same license
(unless I am permitted to submit under a different license), as
indicated in the file; or

(c) The contribution was provided directly to me by some other person
who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are
public and that a record of the contribution (including all personal
information I submit with it, including my sign-off) is maintained
indefinitely and may be redistributed consistent with this project
or the license(s) involved.

Signed-off-by: René Roscher <r.roscher@r-services.eu>

-->
164 changes: 164 additions & 0 deletions tutorials/monitor-cloud-server-with-livck-cloud/01.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
---
SPDX-License-Identifier: MIT
path: "/tutorials/monitor-cloud-server-with-livck-cloud"
slug: "monitor-cloud-server-with-livck-cloud"
date: "2026-09-24"
title: "Monitor a cloud server with LIVCK Cloud"
short_description: "Install the open source LIVCK agent on a cloud server, track its CPU, memory and disk usage in LIVCK Cloud and get an email when it goes offline."
tags: ["Monitoring", "Linux", "Ubuntu", "Debian", "cloud-init"]
author: "René Roscher"
author_link: "https://github.com/rene-roscher"
author_img: "https://avatars.githubusercontent.com/u/43115138?s=400&v=4"
author_description: "Founder of LIVCK"
language: "en"
available_languages: ["en", "de"]
header_img: "header-5"
cta: "cloud"
---

## Introduction

In this tutorial, you install the LIVCK agent on a cloud server. The agent sends CPU, memory, disk and network metrics to [LIVCK Cloud](https://livck.cloud), where you can view them as charts. If the server stops reporting or a metric crosses a threshold, you get an email. The agent can also check from the server whether services in your private network respond.

Because the agent only opens outgoing connections, you do not have to change anything in your [Hetzner Cloud Firewall](https://docs.hetzner.com/cloud/firewalls/overview). The source code is available on [GitHub](https://github.com/LIVCK/agent) under the MIT license.
Comment on lines +21 to +23

**Prerequisites**

* A cloud server with Ubuntu or Debian
* Root access via SSH
* An email address. The free plan covers two servers and does not require payment details.

## Step 1 - Create a LIVCK Cloud account

Sign up at [app.livck.cloud/register](https://app.livck.cloud/register) and confirm your email address. In the onboarding, create an organization and click **Start Free** to choose the free plan. You can skip the remaining onboarding steps.

## Step 2 - Create the install command

In the sidebar, open **Monitoring** > **Servers** and click **Add server**. Select **One server** and click **Continue**. The dialog shows an install command with a one-time token that expires after one day.

![Install command in LIVCK Cloud](images/add-server.en.png)

Leave the dialog open. It updates as soon as your server connects.

## Step 3 - Install the agent

Log in to your server as root via SSH and run the command from the dialog. The installer downloads the matching package, verifies its checksum and starts the agent.

To read the script before running it, download it first:

```bash
curl -fsSLO https://get.livck.cloud/install.sh
less install.sh
sh install.sh --token <your_token>
```

Replace `<your_token>` with the token from the dialog.

The agent runs as its own system user without root privileges and reads its data mainly from `/proc` and `/sys`. It does not read log files or the contents of your files, and LIVCK Cloud cannot run commands on the server. At night, the agent installs new versions of itself after checking their signature. On the server page under **Edit** > **Updates**, you can change the time window or turn automatic updates off.

## Step 4 - Check the result

A few seconds later, the dialog shows **Your server is connected!** and opens the server page. The live metrics there refresh every two seconds while the page is open.

![Live metrics in LIVCK Cloud](images/server.en.png)

On the server, `systemctl status livck-agent` should show `active (running)`.

Every new server gets three alert rules: CPU and memory each at 90% or more for ten minutes, and the root partition at 85% or more. If one of them fires, you get an email. You can change the rules on the server page under **Edit** > **Alert rules**.

## Step 5 - Test the alert

Stop the agent:

```bash
systemctl stop livck-agent
```

On the free plan, the agent reports every two minutes. Three to five minutes after you stop it, the server is shown as **Offline** and you get an email.

Start the agent again:

```bash
systemctl start livck-agent
```

With the next report, the server is **Online** again and you get a second email. A normal reboot does not cause an alert as long as the server is back within about three minutes.

## Step 6 - Extend the monitoring (optional)

### Step 6.1 - Add your own alert rule

You can add rules for any other metric the agent reports, for example for a [Hetzner Cloud Volume](https://docs.hetzner.com/cloud/volumes/overview). On the server page, open **Edit** > **Alert rules**, click **Add rule** and fill in the dialog:

* **Metric**: `sys.disk.{mount}.used_pct`
* **Mount point**: the mount point of the volume, for example `/mnt/HC_Volume_12345678`
* **Operator**: **greater or equal (≥)**
* **Threshold**: `85`
* **Duration**: `0`, so the rule fires immediately

Save the rule with **Create rule**.

![Create alert rule in LIVCK Cloud](images/alert-rule.en.png)

### Step 6.2 - Check services in your private network

To check a database in a [Hetzner Cloud Network](https://docs.hetzner.com/cloud/networks/overview), open **Edit** > **Reachability** and click **Add target**. Enter a **Label**, choose **TCP port** and enter the private IP address under **Target (host/IP)** and `5432` under **Port**. Click **Save**. After a few minutes, the result appears on the server page.

![Reachability targets in LIVCK Cloud](images/reachability.en.png)

The type **DNS** with a domain such as `example.com` as the target checks whether the DNS resolver configured on the server answers. To test a specific DNS server, enter its IP address under **Resolver**.

To get an email when a target is unreachable, add a rule as in step 6.1 with the metric `sys.probe.{target}.up`, select your target and choose **Value = 0** under **Trigger alarm when**.

## Step 7 - Connect new servers with cloud-init (optional)

To connect new servers automatically, open **Monitoring** > **Servers** > **Add server** again and select **Multiple servers**. The token shown there works for up to 50 servers within 90 days. When you create a server in the [Hetzner Console](https://console.hetzner.com/), paste the following into the **Cloud config** field:

```yaml
#cloud-config
runcmd:
- curl -fsSL https://get.livck.cloud/install.sh | sh -s -- --token <your_token>
```

The cloud config stays readable on the server, so revoke the token under **Settings** > **Enrollment tokens** once all servers are connected.

## Conclusion

Your server now reports to LIVCK Cloud, and you get an email when it goes offline or an alert rule fires. To remove the monitoring, first delete the server in LIVCK Cloud and then run `livck-agent uninstall` on the server.

**Next steps:**

* Show the state of your server on a public status page. Status pages run on [statuspage.de](https://statuspage.de) under `<name>.statuspage.de` or on your own domain.
* [Source code and documentation of the LIVCK agent](https://github.com/LIVCK/agent)
* [Basic Cloud Config](https://community.hetzner.com/tutorials/basic-cloud-config) for more options in the **Cloud config** field

##### License: MIT

Check failure on line 135 in tutorials/monitor-cloud-server-with-livck-cloud/01.en.md

View workflow job for this annotation

GitHub Actions / Markdown lint (advisory)

Heading levels should only increment by one level at a time

tutorials/monitor-cloud-server-with-livck-cloud/01.en.md:135 MD001/heading-increment Heading levels should only increment by one level at a time [Expected: h3; Actual: h5] https://github.com/DavidAnson/markdownlint/blob/v0.41.1/doc/md001.md

<!--

Contributor's Certificate of Origin

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have
the right to submit it under the license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my
knowledge, is covered under an appropriate license and I have the
right under that license to submit that work with modifications,
whether created in whole or in part by me, under the same license
(unless I am permitted to submit under a different license), as
indicated in the file; or

(c) The contribution was provided directly to me by some other person
who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are
public and that a record of the contribution (including all personal
information I submit with it, including my sign-off) is maintained
indefinitely and may be redistributed consistent with this project
or the license(s) involved.

Signed-off-by: René Roscher <r.roscher@r-services.eu>

-->
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading