Installation · 24 min read · Nov 24, 2025
So installieren Sie den TIG-Stack (Telegraf, InfluxDB und Grafana) auf Debian 12

Der TIG (Telegraf, InfluxDB und Grafana) Stack ist ein Akronym für eine Plattform von Open-Source-Tools, die das Sammeln, Speichern, Grafiken und Alarmieren von Systemmetriken erleichtern. Sie können Metriken wie Speicher, Speicherplatz, angemeldete Benutzer, Systemlast, Swap-Nutzung, Uptime, laufende Prozesse usw. von einem Ort aus überwachen und visualisieren. Die im Stack verwendeten Tools sind wie folgt:
- Telegraf - ist ein Open-Source-Metrik-Sammelagent zum Sammeln und Senden von Daten und Ereignissen aus Datenbanken, Systemen und IoT-Sensoren. Es unterstützt verschiedene Ausgabe-Plugins wie InfluxDB, Graphite, Kafka usw., an die es die gesammelten Daten senden kann.
- InfluxDB - ist eine Open-Source-Zeitdatenbank, die in der Programmiersprache Go geschrieben ist. Sie ist für schnelle, hochverfügbare Speicherung optimiert und eignet sich für alles, was große Mengen zeitgestempelter Daten umfasst, einschließlich Metriken, Ereignisse und Echtzeitanalysen.
- Grafana - ist eine Open-Source-Datenvisualisierungs- und Überwachungs-Suite. Sie unterstützt verschiedene Eingangs-Plugins wie Graphite, ElasticSearch, InfluxDB usw. Sie bietet ein schönes Dashboard und Metrikanalysen, mit denen Sie jede Art von Systemmetriken und Leistungsdaten visualisieren und überwachen können.
In diesem Tutorial lernen Sie, wie Sie den TIG-Stack auf einem einzelnen Debian 12-Server installieren und konfigurieren.
Voraussetzungen
- Ein Server, der Debian 12 mit mindestens 1 GB RAM ausführt.
- Ein Nicht-Sudo-Benutzer mit Root-Rechten.
- Die unkomplizierte Firewall (UFW) ist aktiviert und läuft.
- Ein vollqualifizierter Domainname (FQDN) wie
grafana.example.com, der auf Ihren Server verweist. - Ein SMTP-Konto mit einem E-Mail-Dienst wie Amazon SES oder Mailgun, um E-Mail-Benachrichtigungen für Dienstalarme zu erhalten.
- Stellen Sie sicher, dass alles aktualisiert ist.
$ sudo apt update && sudo apt upgrade - Einige essentielle Pakete sind erforderlich, damit das Tutorial und Craft CMS ausgeführt werden können. Einige davon sind möglicherweise bereits auf Ihrem Server vorhanden.
$ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y
Schritt 1 - Firewall konfigurieren
Bevor Sie Pakete installieren, besteht der erste Schritt darin, die Firewall zu konfigurieren, um Ports für InfluxDB und Grafana zu öffnen.
Überprüfen Sie den Status der Firewall.
$ sudo ufw status
Sie sollten etwas sehen, das wie folgt aussieht.
Status: aktiv
Zu Aktion Von
-- ------ ----
OpenSSH ERLAUBEN Überall
OpenSSH (v6) ERLAUBEN Überall (v6)
Öffnen Sie den Port 8086 für InfluxDB und 3000 für den Grafana-Server.
$ sudo ufw allow 8086
$ sudo ufw allow 3000
Erlauben Sie HTTP- und HTTPS-Ports.
$ sudo ufw allow http
$ sudo ufw allow https
Überprüfen Sie den Status erneut, um zu bestätigen.
$ sudo ufw status
Status: aktiv
Zu Aktion Von
-- ------ ----
OpenSSH ERLAUBEN Überall
8086 ERLAUBEN Überall
3000 ERLAUBEN Überall
80/tcp ERLAUBEN Überall
443 ERLAUBEN Überall
OpenSSH (v6) ERLAUBEN Überall (v6)
8086 (v6) ERLAUBEN Überall (v6)
3000 (v6) ERLAUBEN Überall (v6)
80/tcp (v6) ERLAUBEN Überall (v6)
443 (v6) ERLAUBEN Überall (v6)
Schritt 2 - InfluxDB installieren
Wir werden das offizielle Repository von InfluxDB verwenden, um es zu installieren.
Laden Sie den GPG-Schlüssel von InfluxDB herunter.
$ wget -q https://repos.influxdata.com/influxdata-archive_compat.key
Importieren Sie den GPG-Schlüssel auf den Server.
$ echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
influxdata-archive_compat.key: OK
Importieren Sie das InfluxDB-Repository.
$ echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
Aktualisieren Sie die Repository-Liste des Systems.
$ sudo apt update
Sie haben die Möglichkeit, InfluxDB 1.8.x oder 2.0.x zu installieren. Es ist jedoch besser, die neueste Version zu verwenden. Installieren Sie InfluxDB.
$ sudo apt install influxdb2
Starten Sie den InfluxDB-Dienst.
$ sudo systemctl start influxdb
Überprüfen Sie den Status des Dienstes.
$ sudo systemctl status influxdb
? influxdb.service - InfluxDB ist eine Open-Source, verteilte Zeitdatenbank
Geladen: geladen (/lib/systemd/system/influxdb.service; aktiviert; voreingestellt: aktiviert)
Aktiv: aktiv (laufend) seit Di 2024-01-02 02:39:41 UTC; vor 1s
Docs: https://docs.influxdata.com/influxdb/
Prozess: 5584 ExecStart=/usr/lib/influxdb/scripts/influxd-systemd-start.sh (code=exited, status=0/ERFOLG)
Haupt-PID: 5585 (influxd)
Aufgaben: 8 (Limit: 2299)
Speicher: 53.1M
CPU: 735ms
CGroup: /system.slice/influxdb.service
??5585 /usr/bin/influxd
........
Schritt 3 - InfluxDB-Datenbank und Benutzeranmeldeinformationen erstellen
Um die Daten von Telegraf zu speichern, müssen Sie die Influx-Datenbank und den Benutzer einrichten.
InfluxDB wird mit einem Befehlszeilenwerkzeug namens influx geliefert, um mit dem InfluxDB-Server zu interagieren. Denken Sie an influx als das mysql-Befehlszeilenwerkzeug.
Führen Sie den folgenden Befehl aus, um die erste Konfiguration für Influx durchzuführen.
$ influx setup
> Willkommen bei InfluxDB 2.0!
? Bitte geben Sie Ihren Hauptbenutzernamen ein navjot
? Bitte geben Sie Ihr Passwort ein *************
? Bitte geben Sie Ihr Passwort erneut ein *************
? Bitte geben Sie den Namen Ihrer Hauptorganisation ein howtoforge
? Bitte geben Sie den Namen Ihres Hauptbuckets ein tigstack
? Bitte geben Sie Ihre Aufbewahrungsfrist in Stunden ein, oder 0 für unendlich 360
? Einrichten mit diesen Parametern?
Benutzername: navjot
Organisation: howtoforge
Bucket: tigstack
Aufbewahrungsfrist: 360h0m0s
Ja
Benutzer Organisation Bucket
navjot howtoforge tigstack
Sie müssen Ihren anfänglichen Benutzernamen, Ihr Passwort, den Namen der Organisation, den Hauptbucket-Namen zum Speichern von Daten und die Aufbewahrungsfrist in Stunden für diese Daten festlegen. Ihre Daten werden in der Datei /home/username/.influxdbv2/configs gespeichert.
Sie können dieses Setup auch durchführen, indem Sie die URL http:// in Ihrem Browser aufrufen. Sobald Sie das anfängliche Setup durchgeführt haben, können Sie sich mit den oben erstellten Anmeldeinformationen unter der URL anmelden.

Sie sollten mit dem folgenden Dashboard begrüßt werden.

Der anfängliche Einrichtungsprozess erstellt ein Standard-Token, das vollen Lese- und Schreibzugriff auf alle Organisationen in der Datenbank hat. Sie benötigen ein neues Token aus Sicherheitsgründen, das nur mit der Organisation und dem Bucket verbunden ist, mit dem wir uns verbinden möchten.
Um ein neues Token zu erstellen, klicken Sie auf das folgende Symbol in der linken Seitenleiste und klicken Sie auf den Link API-Token, um fortzufahren.
Sie werden zur Seite API-Token weitergeleitet. Hier sehen Sie das Standard-Token, das wir zum Zeitpunkt der ersten Konfiguration erstellt haben.

Klicken Sie auf die Schaltfläche API-Token generieren und wählen Sie die Option Benutzerdefiniertes API-Token aus, um ein neues Overlay-Popup zu starten. Geben Sie dem Token einen Namen (telegraf) und erweitern Sie den Abschnitt Ressourcen und wählen Sie den Standardbucket aus, den wir unter den Abschnitten Lesen und Schreiben erstellt haben.

Klicken Sie auf Generieren, um die Token-Erstellung abzuschließen. Klicken Sie auf die Schaltfläche IN DIE ZWISCHENABLAGE KOPIEREN, um das Token zu kopieren. Die Schaltfläche funktioniert möglicherweise in einigen Fällen nicht, also stellen Sie sicher, dass Sie es bestätigen, bevor Sie das Popup schließen.

Speichern Sie es vorerst, da wir es später benötigen werden.
Damit ist die Installation und Konfiguration von InfluxDB abgeschlossen. Als nächstes müssen wir Telegraf installieren.
Schritt 4 - Telegraf installieren
Telegraf und InfluxDB teilen sich dasselbe Repository. Das bedeutet, dass Sie Telegraf direkt installieren können.
$ sudo apt install telegraf
Der Dienst von Telegraf wird während der Installation automatisch aktiviert und gestartet.
Telegraf ist ein plugin-gesteuertes Agent und hat 4 Arten von Plugins:
- Eingangs-Plugins sammeln Metriken.
- Verarbeitungs-Plugins transformieren, dekorieren und filtern Metriken.
- Aggregator-Plugins erstellen und aggregieren Metriken.
- Ausgabe-Plugins definieren die Ziele, an die Metriken gesendet werden, einschließlich InfluxDB.
Telegraf speichert seine Konfiguration für all diese Plugins in der Datei /etc/telegraf/telegraf.conf. Der erste Schritt besteht darin, Telegraf mit InfluxDB zu verbinden, indem das Ausgabe-Plugin influxdb_v2 aktiviert wird. Öffnen Sie die Datei /etc/telegraf/telegraf.conf zur Bearbeitung.
$ sudo nano /etc/telegraf/telegraf.conf
Suchen Sie die Zeile [[outputs.influxdb_v2]] und kommentieren Sie sie aus, indem Sie das # davor entfernen. Bearbeiten Sie den Code darunter wie folgt.
# # Konfiguration zum Senden von Metriken an InfluxDB 2.0
[[outputs.influxdb_v2]]
# ## Die URLs der InfluxDB-Clusterknoten.
# ##
# ## Mehrere URLs können für einen einzelnen Cluster angegeben werden, nur EINE der
# ## URLs wird in jedem Intervall geschrieben.
# ## z.B.: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
urls = ["http://127.0.0.1:8086"]
#
# ## Token zur Authentifizierung.
token = "$INFLUX_TOKEN"
#
# ## Organisation ist der Name der Organisation, in die Sie schreiben möchten.
organization = "howtoforge"
#
# ## Zielbucket, in den geschrieben werden soll.
bucket = "tigstack"
Fügen Sie den zuvor gespeicherten InfluxDB-Token-Wert anstelle der Variable $INFLUX_TOKEN im obigen Code ein.
Suchen Sie die Zeile EINGANGS-PLUGINS und Sie werden die folgenden Eingangs-Plugins sehen, die standardmäßig aktiviert sind.
# Lesen Sie Metriken über die CPU-Nutzung
[[inputs.cpu]]
## Ob pro-CPU-Statistiken gemeldet werden sollen oder nicht
percpu = true
## Ob die gesamten System-CPU-Statistiken gemeldet werden sollen oder nicht
totalcpu = true
## Wenn wahr, sammeln Sie rohe CPU-Zeitmetriken
collect_cpu_time = false
## Wenn wahr, berechnen und melden Sie die Summe aller nicht-leeren CPU-Zustände
report_active = false
## Wenn wahr und die Informationen verfügbar sind, fügen Sie core_id- und physical_id-Tags hinzu
core_tags = false
# Lesen Sie Metriken über die Speichernutzung nach Einhängepunkt
[[inputs.disk]]
## Standardmäßig werden Statistiken für alle Einhängepunkte gesammelt.
## Setzen Sie mount_points, um die Statistiken nur auf die angegebenen Einhängepunkte zu beschränken.
# mount_points = ["/"]
## Ignorieren Sie Einhängepunkte nach Dateisystemtyp.
ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
## Ignorieren Sie Einhängepunkte nach Einhängeoptionen.
## Der Befehl 'mount' meldet Optionen aller Einhänge in Klammern.
## Bind-Mounts können mit der speziellen Option 'bind' ignoriert werden.
# ignore_mount_opts = []
# Lesen Sie Metriken über die Festplatten-I/O nach Gerät
[[inputs.diskio]]
....
....
# Holen Sie sich Kernelstatistiken von /proc/stat
[[inputs.kernel]]
# keine Konfiguration
# Lesen Sie Metriken über die Speichernutzung
[[inputs.mem]]
# keine Konfiguration
# Holen Sie sich die Anzahl der Prozesse und gruppieren Sie sie nach Status
[[inputs.processes]]
# keine Konfiguration
# Lesen Sie Metriken über die Swap-Speichernutzung
[[inputs.swap]]
# keine Konfiguration
# Lesen Sie Metriken über Systemlast und Uptime
[[inputs.system]]
# keine Konfiguration
Sie können zusätzliche Eingangs-Plugins je nach Bedarf konfigurieren, einschließlich Apache-Server, Docker-Container, Elasticsearch, iptables-Firewall, Kubernetes, Memcached, MongoDB, MySQL, Nginx, PHP-fpm, Postfix, RabbitMQ, Redis, Varnish, Wireguard, PostgreSQL usw.
Sobald Sie fertig sind, speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Starten Sie den Telegraf-Dienst neu, sobald Sie die Änderungen angewendet haben.
$ sudo systemctl restart telegraf
Schritt 5 - Überprüfen, ob Telegraf-Statistiken in InfluxDB gespeichert werden
Bevor Sie weiterfahren, müssen Sie überprüfen, ob die Telegraf-Statistiken korrekt gesammelt und in die InfluxDB eingespeist werden. Öffnen Sie die InfluxDB-Benutzeroberfläche in Ihrem Browser, klicken Sie auf das zweite Symbol in der linken Seitenleiste und wählen Sie das Menü Buckets aus.

Klicken Sie auf tigstack und Sie sollten mit der folgenden Seite begrüßt werden.

Klicken Sie auf den Bucket-Namen und dann auf einen der Werte im Filter _measurement, und klicken Sie weiter auf andere Werte, sobald sie erscheinen. Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Absenden. Sie sollten oben ein Diagramm sehen. Möglicherweise müssen Sie einige Zeit warten, bis die Daten erscheinen. Wir haben das Zeitintervall von Vergangene 1 h auf Vergangene 5m verschoben, um ein Diagramm über ein großes Gebiet zu erzeugen.

Dies sollte bestätigen, dass die Daten korrekt übergeben werden.
Schritt 6 - Grafana installieren
Wir werden das offizielle Grafana-Repository verwenden, um es zu installieren. Importieren Sie den Grafana-GPG-Schlüssel.
$ sudo mkdir -p /etc/apt/keyrings/
$ wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
Fügen Sie das Repository zu Ihrem System hinzu.
$ echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Wenn Sie Grafana Beta installieren möchten, fügen Sie stattdessen das folgende Repository hinzu.
$ echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com beta main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Aktualisieren Sie die Repository-Liste des Systems.
$ sudo apt update
Installieren Sie Grafana.
$ sudo apt install grafana
Starten und aktivieren Sie den Grafana-Dienst.
$ sudo systemctl enable grafana-server --now
Überprüfen Sie den Dienststatus.
$ sudo systemctl status grafana-server
? grafana-server.service - Grafana-Instanz
Geladen: geladen (/lib/systemd/system/grafana-server.service; aktiviert; voreingestellt: aktiviert)
Aktiv: aktiv (laufend) seit Di 2024-01-02 03:48:01 UTC; vor 3s
Docs: http://docs.grafana.org
Haupt-PID: 8769 (grafana)
Aufgaben: 7 (Limit: 2299)
Speicher: 42.6M
CPU: 1.804s
CGroup: /system.slice/grafana-server.service
??8769 /usr/share/grafana/bin/grafana server --config=/etc/grafana/grafana.ini --pidfile=/run/grafana/grafana-server.pid --packaging=deb cfg:default.paths.logs=/var/log/grafana cfg:default.paths...
.......
Schritt 7 - Grafana-Datenquelle einrichten
Starten Sie die URL http:// in Ihrem Browser und die folgende Grafana-Anmeldeseite sollte Sie begrüßen.

Melden Sie sich mit dem Standardbenutzernamen admin und dem Passwort admin an. Als nächstes müssen Sie ein neues Standardpasswort festlegen.

Sie werden mit der folgenden Grafana-Startseite begrüßt. Klicken Sie auf die Schaltfläche Fügen Sie Ihre erste Datenquelle hinzu.

Klicken Sie auf die Schaltfläche InfluxDB.

Wählen Sie auf der nächsten Seite Flux aus dem Dropdown-Menü als Abfragesprache aus. Sie können InfluxQL als Abfragesprache verwenden, aber es ist komplizierter zu konfigurieren, da es standardmäßig nur InfluxDB v1.x unterstützt. Flux unterstützt InfluxDB v2.x und ist einfacher einzurichten und zu konfigurieren.

Geben Sie die folgenden Werte ein.
URL: http://localhost:8086 Basis-Auth-Details Benutzer: navjot Passwort:
InfluxDB-Details Organisation: howtoforge Token: Standard-Bucket: tigstack

Klicken Sie auf die Schaltfläche Speichern und testen, und Sie sollten eine Bestätigungsnachricht sehen, die bestätigt, dass die Einrichtung erfolgreich war.

Schritt 8 - Grafana-Dashboards einrichten
Der nächste Schritt besteht darin, Grafana-Dashboards einzurichten. Klicken Sie auf das Hamburger-Menü links von Startseite und klicken Sie auf Dashboards, um den Bildschirm zum Erstellen von Dashboards zu öffnen.

Klicken Sie auf die Schaltfläche Dashboard erstellen, um fortzufahren.

Klicken Sie auf der nächsten Seite auf die Schaltfläche Visualisierung hinzufügen, um das Overlay zu starten, und klicken Sie auf influxdb-1, um es als Datenquelle auszuwählen.

Sie werden zur folgenden Seite Panel bearbeiten weitergeleitet.

Fügen Sie den folgenden Code im Abfrage-Editor ein.
from(bucket: "NAMEOFYOUBUCKET")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "cpu")
|> filter(fn: (r) => r["_field"] == "usage_idle")
|> filter(fn: (r) => r["cpu"] == "cpu-total")
|> filter(fn: (r) => r["host"] == "NAMEOFYOURHOST")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> map(fn: (r) => ({ r with _value: r._value * -1.0 + 100.0 }))
|> toFloat()
|> yield(name: "mean")
Verwenden Sie den Bucket-Namen, den wir oben verwendet haben. Und den Namen des Hosts, den Sie aus der Datei /etc/hostname abrufen können.
Der obige Code berechnet die CPU-Nutzung und generiert ein Diagramm dafür. Geben Sie dem Panel einen Titel.

Klicken Sie auf die Schaltfläche Abfrageinspektor und dann auf die Schaltfläche Aktualisieren, um zu überprüfen, ob Ihre Abfrage erfolgreich funktioniert. Klicken Sie auf das Kreuzsymbol, um den Inspektor zu schließen.

Sie können auch die Achsen benennen, indem Sie das Feld Label auf der rechten Seite im Abschnitt Achse verwenden.

Klicken Sie auf die Schaltfläche Übernehmen, um das Panel zu speichern. Klicken Sie auf die Schaltfläche Dashboard speichern, wenn Sie fertig sind.

Geben Sie dem Dashboard einen Namen und klicken Sie auf Speichern, um abzuschließen.

Es öffnet sich das Dashboard, und klicken Sie dann auf die Schaltfläche Visualisierung hinzufügen, um ein weiteres Panel zu erstellen.

Wiederholen Sie den Vorgang, indem Sie ein weiteres Panel für die RAM-Nutzung erstellen.
from(bucket: "NAMEOFYOUBUCKET")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "mem")
|> filter(fn: (r) => r["_field"] == "used_percent")
|> filter(fn: (r) => r["host"] == "NAMEOFYOURHOST")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> yield(name: "mean")
Verwenden Sie den folgenden Code, um die HDD-Nutzung anzuzeigen.
from(bucket: "NAMEOFYOURBUCKET")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "disk")
|> filter(fn: (r) => r["_field"] == "used")
|> filter(fn: (r) => r["path"] == "/")
|> filter(fn: (r) => r["host"] == "NAMEOFYOURHOST")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> map(fn: (r) => ({ r with _value: r._value / 1000000.0 }))
|> toFloat()
|> yield(name: "mean")
Sie können eine unbegrenzte Anzahl von Panels erstellen.
Der obige Code basiert auf der Flux-Skriptsprache. Glücklicherweise müssen Sie die Sprache nicht lernen, um Abfragen zu schreiben. Sie können die Abfrage von der InfluxDB-URL generieren. Obwohl das Lernen der Sprache von Vorteil sein kann, um die Abfragen zu optimieren.
Sie müssen zur InfluxDB-Dashboard zurückkehren und die Erforschen-Seite öffnen, um die Abfrage zu erhalten.
Klicken Sie auf den Bucket-Namen und dann auf einen der Werte im Filter _measurement, und klicken Sie weiter auf andere Werte, sobald sie erscheinen. Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Skripteditor und Sie sollten die folgende Seite sehen. Das Diagramm sollte ebenfalls aktualisiert werden.


Kopieren Sie die angezeigte Abfrage, und Sie können sie jetzt im Grafana-Dashboard verwenden, um Ihre Diagramme zu erstellen.
Schritt 9 - Alarme und Benachrichtigungen konfigurieren
Der Hauptzweck der Einrichtung von Monitoren besteht darin, rechtzeitig Alarme zu erhalten, wenn der Wert einen bestimmten Schwellenwert überschreitet.
Der erste Schritt besteht darin, das Ziel festzulegen, an das Sie Alarme erhalten möchten. Sie können Benachrichtigungen per E-Mail, Slack, Kafka, Google Hangouts Chat, Microsoft Teams, Telegram usw. erhalten.
Wir werden E-Mail-Benachrichtigungen für unser Tutorial aktivieren. Um E-Mail-Benachrichtigungen einzurichten, müssen wir zuerst den SMTP-Dienst konfigurieren. Öffnen Sie die Datei /etc/grafana/grafana.ini, um SMTP zu konfigurieren.
$ sudo nano /etc/grafana/grafana.ini
Suchen Sie die folgende Zeile [smtp] darin. Kommentieren Sie die folgenden Zeilen aus und geben Sie die Werte für den benutzerdefinierten SMTP-Server ein.
[smtp]
enabled = true
host = email-smtp.us-west-2.amazonaws.com:587
user = IHRBENUTZERNAME
# Wenn das Passwort # oder ; enthält, müssen Sie es mit dreifachen Anführungszeichen umschließen. Ex """#passwort;"""
password = IHRBENUTZERPASSWORT
;cert_file =
;key_file =
;skip_verify = false
from_address = [email protected]
from_name = HowtoForge Grafana
# EHLO-Identität im SMTP-Dialog (standardmäßig instance_name)
;ehlo_identity = dashboard.example.com
# SMTP startTLS-Richtlinie (standardmäßig 'OpportunisticStartTLS')
;startTLS_policy = NoStartTLS
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Starten Sie den Grafana-Server neu, um die Einstellungen anzuwenden.
$ sudo systemctl restart grafana-server
Öffnen Sie die Grafana-Seite, klicken Sie auf das Alarm-Symbol und klicken Sie auf Kontaktpunkte.

Grafana erstellt und konfiguriert automatisch einen Standard-E-Mail-Kontaktpunkt, der mit der richtigen E-Mail-Adresse konfiguriert werden muss. Klicken Sie auf die Schaltfläche Bearbeiten gegenüber dem Kontaktpunkt grafana-default-email.

Geben Sie die Details ein, um den E-Mail-Benachrichtigungskanal einzurichten.

Wenn Sie eine zusätzliche Nachricht senden möchten, klicken Sie auf den Link Optionale E-Mail-Einstellungen und geben Sie die Nachricht ein.

Klicken Sie auf Test, um das Popup zu öffnen, und klicken Sie dann auf die Schaltfläche Testbenachrichtigung senden, um zu sehen, ob die E-Mail-Einstellungen funktionieren. Klicken Sie auf Kontaktpunkt speichern, wenn Sie fertig sind.
Sie sollten die folgende E-Mail erhalten, die die Einstellungen bestätigt.

Jetzt, da wir Benachrichtigungskanäle eingerichtet haben, müssen wir Alarme einrichten, wann wir diese E-Mails erhalten möchten. Um die Alarme einzurichten, müssen Sie zurück zu den Dashboard-Panels.
Gehen Sie zurück zum Bildschirm Dashboards. Klicken Sie auf das Dashboard, das wir gerade erstellt haben, und Sie erhalten dessen Startseite mit verschiedenen Panels. Um das Panel zu bearbeiten, klicken Sie auf den Namen des Panels, und ein Dropdown-Menü wird angezeigt. Klicken Sie auf den Link Bearbeiten, um fortzufahren.

Klicken Sie auf das Alarm-Panel und klicken Sie auf die Schaltfläche Neue Alarmregel, um einen neuen Alarm einzurichten. Wir erstellen einen Alarm für das CPU-Nutzungs-Panel.

Sie können jetzt die Bedingungen konfigurieren, unter denen Grafana den Alarm sendet. Klicken Sie auf das Dropdown-Menü Optionen und wählen Sie den Standard-Zeitraum (jetzt-6h bis jetzt) aus, um den Zeitraum auf die Letzten 15 Minuten zu ändern, was bedeutet, dass es von vor 15 Minuten bis jetzt überprüft.

Standardmäßig ist der ausgewählte Alarmtyp ein von Grafana verwalteter Alarm. Es sind standardmäßig zwei Ausdrücke ausgewählt. Löschen Sie sie, indem Sie die Schaltfläche zum Löschen gegen sie drücken. Wählen Sie im Dropdown-Menü Ausdruck hinzufügen den Klassischen Zustand als Ausdruckstyp aus.


Klicken Sie auf Als Alarmbedingung festlegen, um den gewählten Ausdruck zum Senden der Alarme auszuwählen. Dadurch wird das Ausdrucksfenster wie unten gezeigt geändert.

Bedingungen
Grafana arbeitet mit einer Abfrage des folgenden Formats, um zu bestimmen, wann ein Alarm ausgelöst werden soll.
avg() DER Abfrage(A) IST ÜBER 0.8
avg() steuert, wie der Wert für jede Serie auf einen vergleichbaren Wert gegenüber dem Schwellenwert reduziert werden soll. Sie können auf den Funktionsnamen klicken, um eine andere Funktion wie avg(), min(), max(), sum(), count() usw. auszuwählen.
query(A) Der Buchstabe in der Klammer definiert, welche Abfrage aus dem Tab Metriken ausgeführt werden soll.
IST UNTER 14 Definiert den Typ des Schwellenwerts und den Schwellenwertwert. Sie können auf IST UNTER klicken, um einen anderen Schwellenwerttyp auszuwählen.
Sie können eine zweite Bedingung darunter hinzufügen, indem Sie auf die Schaltfläche + unter der ersten Bedingung klicken. Derzeit können Sie nur UND- und ODER-Operatoren zwischen mehreren Bedingungen verwenden.
Als nächstes werden wir das Bewertungsverhalten festlegen. Klicken Sie auf die Schaltfläche Neuer Ordner, um einen Ordner zu erstellen, um Ihre Regeln zu speichern. Klicken Sie auf die Schaltfläche Neue Bewertungsgruppe, um eine Gruppe zu erstellen, um Regeln zu bündeln, die nach demselben Zeitintervall bewertet werden. Setzen Sie das Zeitintervall auf 5m, während Sie die Gruppe erstellen.

Sobald Sie fertig sind, sollte die Seite wie folgt aussehen. Setzen Sie den Alarmstatus, wenn ein Ausführungsfehler oder Timeout auftritt, auf Alarmierung.

Regel
- Name - Geben Sie einen beschreibenden Namen für den Alarm ein.
- Ordner - Erstellen oder wählen Sie einen vorhandenen Ordner aus, um Ihre Benachrichtigungsregel zu speichern.
- Gruppe - Geben Sie einen Namen für Ihre Alarmgruppe ein. Alarme in einer einzelnen Gruppe werden nach demselben Zeitintervall bewertet.
- Ausstehend - Geben Sie an, wie oft Grafana den Alarm bewerten soll. Es wird auch als Bewertungsintervall bezeichnet. Sie können hier jeden gewünschten Wert festlegen.
Keine Daten- und Fehlerbehandlung
Sie können konfigurieren, wie Grafana mit Abfragen umgehen soll, die keine Daten oder nur Nullwerte zurückgeben, indem Sie die folgenden Bedingungen verwenden:
- Keine Daten - Setzen Sie den Regelstatus auf
NoData - Alarmierung - Setzen Sie den Regelstatus auf
Alarmierung - Ok - Setzen Sie den Alarmregelstatus auf
Ok, da Sie auch dann einen Alarm erhalten, wenn alles in Ordnung ist.
Sie können Grafana mitteilen, wie es mit Ausführungs- oder Timeout-Fehlern umgehen soll.
- Alarmierung - Setzen Sie den Regelstatus auf
Alarmierung - Ok - Setzen Sie den Alarmregelstatus auf
Ok, da Sie auch dann einen Alarm erhalten, wenn alles in Ordnung ist. - Fehler - Setzen Sie den Alarmregelstatus auf Fehler, um anzuzeigen, dass ein Problem vorliegt.
Sobald Sie fertig sind, klicken Sie auf die Schaltfläche Alarmevorschau, um zu sehen, ob alles einwandfrei funktioniert. Klicken Sie auf die Schaltfläche Regel speichern und beenden oben rechts, um das Hinzufügen des Alarms abzuschließen. Sie sollten jetzt beginnen, Alarme per E-Mail zu erhalten. Folgendes ist ein Beispiel für eine solche E-Mail.

Schritt 10 - Nginx installieren
Debian 12 wird mit einer älteren Version von Nginx ausgeliefert. Sie müssen das offizielle Nginx-Repository herunterladen, um die neueste Version zu installieren.
Importieren Sie den Signaturschlüssel von Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Fügen Sie das Repository für die Hauptversion von Nginx hinzu.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Aktualisieren Sie die System-Repositories.
$ sudo apt update
Installieren Sie Nginx.
$ sudo apt install nginx
Überprüfen Sie die Installation. Auf Debian-Systemen funktioniert der folgende Befehl nur mit sudo.
$ sudo nginx -v
nginx version: nginx/1.25.3
Starten Sie den Nginx-Server.
$ sudo systemctl start nginx
Überprüfen Sie den Dienststatus.
$ sudo systemctl status nginx
? nginx.service - nginx - Hochleistungs-Webserver
Geladen: geladen (/lib/systemd/system/nginx.service; aktiviert; voreingestellt: aktiviert)
Aktiv: aktiv (laufend) seit Di 2024-01-02 09:21:10 UTC; vor 5s
Docs: https://nginx.org/en/docs/
Prozess: 12964 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/ERFOLG)
Haupt-PID: 12965 (nginx)
Aufgaben: 3 (Limit: 2299)
Speicher: 2.9M
CPU: 86ms
CGroup: /system.slice/nginx.service
??12965 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??12966 "nginx: worker process"
??12967 "nginx: worker process"
Jan 02 09:21:10 grafana systemd[1]: Starting nginx.service - nginx - Hochleistungs-Webserver...
Jan 02 09:21:10 grafana systemd[1]: Started nginx.service - nginx - Hochleistungs-Webserver.
Schritt 11 - SSL installieren
Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Sie können Certbot entweder mit dem Repository von Debian installieren oder die neueste Version mit dem Snapd-Tool herunterladen. Wir werden die Snapd-Version verwenden.
Debian 12 wird nicht mit Snapd installiert. Installieren Sie das Snapd-Paket.
$ sudo apt install snapd
Führen Sie die folgenden Befehle aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist.
$ sudo snap install core && sudo snap refresh core
Installieren Sie Certbot.
$ sudo snap install --classic certbot
Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Überprüfen Sie, ob Certbot korrekt funktioniert.
$ certbot --version
certbot 2.8.0
Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d grafana.example.com
Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/grafana.example.com auf Ihrem Server herunter.
Generieren Sie ein Diffie-Hellman-Gruppe-Zertifikat.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Überprüfen Sie den Zeitplan für den Certbot-Erneuerungsdienst.
$ systemctl list-timers
Sie finden snap.certbot.renew.service als einen der Dienste, die geplant sind.
NÄCHST LINKS LETZTE VERGANGEN EINHEIT AKTIVIERT
-----------------------------------------------------------------------------------------------------------------------------------------
Di 2024-01-02 15:24:52 UTC 6h links Mo 2024-01-01 15:24:52 UTC 17h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Di 2024-01-02 20:05:29 UTC 10h links Di 2024-01-02 09:02:47 UTC 21min ago apt-daily.timer apt-daily.service
Di 2024-01-02 20:35:00 UTC 11h links - - snap.certbot.renew.timer snap.certbot.renew.service
Führen Sie einen Testlauf des Prozesses durch, um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert.
$ sudo certbot renew --dry-run
Wenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.
Schritt 12 - Nginx für Grafana und InfluxDB konfigurieren
Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.
$ sudo nano /etc/nginx/nginx.conf
Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu.
server_names_hash_bucket_size 64;
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/grafana.conf zur Bearbeitung.
$ sudo nano /etc/nginx/conf.d/grafana.conf
Fügen Sie den folgenden Code ein. Ersetzen Sie grafana.example.com durch Ihren Domainnamen.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl reuseport;
listen [::]:443 ssl reuseport;
http2 on;
server_name grafana.example.com;
access_log /var/log/nginx/grafana.access.log;
error_log /var/log/nginx/grafana.error.log;
ssl_certificate /etc/letsencrypt/live/grafana.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/grafana.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/grafana.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] valid=60s;
resolver_timeout 2s;
location / {
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000;
}
location /api/live {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000;
}
location /influxdb/ {
access_log /var/log/nginx/influx.access.log;
error_log /var/log/nginx/influx.error.log;
rewrite ^/influxdb$ /influxdb/ permanent;
rewrite ^/influxdb/(.*)$ /$1 break;
proxy_cookie_path ~*^/api /influxdb/api;
proxy_connect_timeout 600s;
proxy_http_version 1.1;
proxy_pass http://localhost:8086;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_set_header Authorization $http_authorization;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
sub_filter ' ' ' ';
sub_filter 'src="/' 'src="/influxdb/';
sub_filter 'href="/' 'href="/influxdb/';
sub_filter 'data-basepath="' 'data-basepath="/influxdb/';
sub_filter 'n.p="/' 'n.p="/influxdb/';
sub_filter 'o.p="/' 'o.p="/influxdb/';
sub_filter '/api/' '/influxdb/api/';
sub_filter 'api/v2/query' 'influxdb/api/v2/query';
sub_filter '/health`' '/influxdb/health`';
sub_filter_types text/css text/javascript application/javascript application/json;
sub_filter_once off;
}
}
# erzwingen Sie HTTPS
server {
listen 80;
listen [::]:80;
server_name grafana.example.com;
return 301 https://$host$request_uri;
}
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Überprüfen Sie Ihre Nginx-Konfiguration.
$ sudo nginx -t
Starten Sie den Nginx-Server neu.
$ sudo systemctl restart nginx
Telegraf für HTTPS konfigurieren
Öffnen Sie die Datei /etc/telegraf/telegraf.conf zur Bearbeitung.
$ sudo nano /etc/telegraf/telegraf.conf
Suchen Sie den Abschnitt [[outputs.influxdb_v2]] und ändern Sie den Wert der URL in https://grafana.nspeaks.com/influxdb, damit die Daten zwischen InfluxDB und Telegraf gesichert sind.
urls = ["https://grafana.example.com/influxdb"]
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Starten Sie den Telegraf-Dienst neu.
$ sudo systemctl restart telegraf
Grafana für HTTPS konfigurieren
Als nächstes müssen wir Grafana für den HTTPS-Zugriff konfigurieren. Öffnen Sie die Datei /etc/grafana/grafana.ini zur Bearbeitung.
$ sudo nano /etc/grafana/grafana.ini
Suchen Sie den Abschnitt [server] und ändern Sie die Variable domain und root_url wie folgt.
# Der öffentlich zugängliche Domainname, der verwendet wird, um grafana von einem Browser aus zuzugreifen
;domain = localhost
domain = grafana.example.com
# Umleitung zur richtigen Domain, wenn der Host-Header nicht mit der Domain übereinstimmt
# Verhindert DNS-Rückbindungsangriffe
;enforce_domain = true
# Die vollständige öffentlich zugängliche URL, die Sie im Browser verwenden, wird für Weiterleitungen und E-Mails verwendet
# Wenn Sie einen Reverse-Proxy und einen Unterpfad verwenden, geben Sie die vollständige URL an (mit Unterpfad)
;root_url = %(protocol)s://%(domain)s:%(http_port)s/
root_url = %(protocol)s://%(domain)s
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Starten Sie den Grafana-Server neu.
$ sudo systemctl restart grafana-server
Firewall-Ports für InfluxDB und Grafana schließen
Sie sollten auch die Ports von InfluxDB und Grafana schließen.
$ sudo ufw delete allow 8086
$ sudo ufw delete allow 3000
Grafana sollte unter https://grafana.example.com und die InfluxDB-Benutzeroberfläche und API sollten beide unter der URL https://grafana.example.com/influxdb zugänglich sein.
Fazit
Dies schließt das Tutorial zur Installation und Konfiguration des TIG-Stacks auf einem Debian 12-Server ab. Wenn Sie Fragen haben, posten Sie diese bitte in die Kommentare unten.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.