So installierst du den TIG Stack (Telegraf, InfluxDB und Grafana) auf Ubuntu 22.04

Der TIG (Telegraf, InfluxDB und Grafana) Stack ist ein Akronym für eine Plattform von Open-Source-Tools, die das Sammeln, Speichern, Darstellen und Alarmieren von Systemmetriken erleichtern. Du kannst Metriken wie Arbeitsspeicher, Festplattenplatz, angemeldete Benutzer, Systemauslastung, Swap-Nutzung, Betriebszeit, laufende Prozesse usw. von einem Ort aus überwachen und visualisieren. Die im Stack verwendeten Tools sind wie folgt:

  • Telegraf – ist ein Open-Source-Metriken-Sammel-Agent zum Sammeln und Senden von Daten und Ereignissen aus Datenbanken, Systemen und IoT-Sensoren. Er unterstützt verschiedene Output-Plugins wie InfluxDB, Graphite, Kafka usw., an die er die gesammelten Daten senden kann.
  • InfluxDB – ist eine Open-Source-Zeitreihendatenbank, die in der Sprache Go geschrieben wurde. Sie ist für schnelle, hochverfügbare Speicherung optimiert und eignet sich für alles, was mit großen Mengen an Zeitstempeldaten zu tun hat, einschließlich Metriken, Ereignissen und Echtzeitanalysen.
  • Grafana – ist eine Open-Source-Datenvisualisierungs- und Überwachungssoftware. Sie unterstützt verschiedene Input-Plugins wie Graphite, ElasticSearch, InfluxDB usw. und wird hier genutzt als InfluxDB client. Es bietet ein wunderschönes Dashboard und Metrik-Analysen, mit denen du jede Art von Systemmetrik und Leistungsdaten visualisieren und überwachen kannst.

In diesem Tutorial erfährst du, wie du den TIG Stack auf einem einzelnen Ubuntu 22.04 Server installierst und konfigurierst.

Voraussetzungen

  1. Ein Server, auf dem Ubuntu 22.04 läuft.
  2. Ein Nicht-Sudo-Benutzer mit Root-Rechten.
  3. Die Unkomplizierte Firewall (UFW) ist aktiviert und läuft.
  4. Stelle sicher, dass alles auf dem neuesten Stand ist.
    $ sudo apt update && sudo apt upgrade
    

Schritt 1 – Firewall konfigurieren

Bevor du die Pakete installierst, musst du als erstes die Firewall so konfigurieren, dass sie die Ports für InfluxDB und Grafana öffnet.

Überprüfe den Status der Firewall.

$ sudo ufw status

Du solltest etwas wie das Folgende sehen.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Öffne Port 8086 für InfluxDB und 3000 für den Grafana-Server.

$ sudo ufw allow 8086
$ sudo ufw allow 3000

Überprüfe den Status zur Bestätigung noch einmal.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
8086                       ALLOW       Anywhere
3000                       ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
8086 (v6)                  ALLOW       Anywhere (v6)
3000 (v6)                  ALLOW       Anywhere (v6)

Schritt 2 – Installiere InfluxDB

Wir verwenden das offizielle Repository von InfluxDB, um es zu installieren.

Lade den InfluxDB GPG-Schlüssel herunter.

$ wget -q https://repos.influxdata.com/influxdb.key

Importiere den GPG-Schlüssel in den Server.

$ echo '23a1c8836f0afc5ed24e0486339d7cc8f6790b83886c4c96995b88a061c5bb5d influxdb.key' | sha256sum -c && cat influxdb.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdb.gpg > /dev/null

Importiere das InfluxDB-Repository.

$ echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list

Aktualisiere die Repository-Liste des Systems.

$ sudo apt update

Du hast die Möglichkeit, InfluxDB 1.8.x oder 2.0.x zu installieren. Es ist jedoch besser, die neueste Version zu verwenden. Installiere InfluxDB.

$ sudo apt install influxdb2

Starte den InfluxDB-Dienst.

$ sudo systemctl start influxdb

Überprüfe den Status des Dienstes.

$ sudo systemctl status influxdb
? influxdb.service - InfluxDB is an open-source, distributed, time series database
     Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-09-13 00:00:27 UTC; 42s ago
       Docs: https://docs.influxdata.com/influxdb/
    Process: 12514 ExecStart=/usr/lib/influxdb/scripts/influxd-systemd-start.sh (code=exited, status=0/SUCCESS)
   Main PID: 12515 (influxd)
      Tasks: 7 (limit: 1030)
     Memory: 48.5M
        CPU: 547ms
     CGroup: /system.slice/influxdb.service
             ??12515 /usr/bin/influxd
........

Schritt 3 – InfluxDB-Datenbank und Benutzeranmeldeinformationen erstellen

Um die Daten von Telegraf zu speichern, musst du die Influx-Datenbank und den Benutzer einrichten.

InfluxDB wird mit einem Kommandozeilen-Tool namens influx ausgeliefert, mit dem du mit dem InfluxDB-Server interagieren kannst. Stell dir influx als das mysql Kommandozeilentool vor.

Führe den folgenden Befehl aus, um die erste Konfiguration für Influx vorzunehmen.

$ influx setup
> Welcome to InfluxDB 2.0!
? Please type your primary username navjot
? Please type your password ***************
? Please type your password again ***************
? Please type your primary organization name howtoforge
? Please type your primary bucket name tigstack
? Please type your retention period in hours, or 0 for infinite 360
? Setup with these parameters?
  Username:          navjot
  Organization:      howtoforge
  Bucket:            tigstack
  Retention Period:  360h0m0s
 Yes
User    Organization    Bucket
navjot  howtoforge      tigstack

Du musst deinen anfänglichen Benutzernamen, dein Passwort, den Namen deiner Organisation, den Namen des primären Buckets, in dem die Daten gespeichert werden, und die Aufbewahrungsfrist in Stunden für diese Daten festlegen. Deine Angaben werden in der Datei /home/username/.influxdbv2/configs gespeichert.

Du kannst diese Einrichtung auch vornehmen, indem du die URL http://<serverIP>:8086/ in deinem Browser aufrufst. Sobald du die Ersteinrichtung durchgeführt hast, kannst du dich mit den oben erstellten Anmeldedaten bei der URL anmelden.

InfluxDB Anmeldeseite

Du solltest das folgende Dashboard sehen.

InfluxDB Dashboard

Bei der Ersteinrichtung wird ein Standard-Token erstellt, der vollen Lese- und Schreibzugriff auf alle Organisationen in der Datenbank hat. Aus Sicherheitsgründen benötigst du ein neues Token, das sich nur mit der Organisation und dem Bucket verbindet, mit denen wir uns verbinden wollen.

Um ein neues Token zu erstellen, klickst du auf das folgende Symbol in der linken Seitenleiste und dann auf den Link API-Tokens, um fortzufahren.

InfluxDB API Tokens Link

Du wirst auf die Seite mit den API-Tokens weitergeleitet. Hier siehst du das Standard-Token, das wir bei der Erstkonfiguration erstellt haben.

InfluxDB Tokens Seite

Klicke auf die Schaltfläche Token generieren und wähle die Option Token lesen/schreiben, um ein neues Overlay-Popup zu öffnen. Gib dem Token einen Namen (telegraf) und wähle den Standard-Bucket, den wir in den Abschnitten Lesen und Schreiben erstellt haben.

InfluxDB Token erstellen

Klicke auf Speichern, um die Erstellung des Tokens abzuschließen. Klicke auf den Namen des neu erstellten Tokens, um ein Popup mit dem Wert des Tokens zu öffnen.

InfluxDB Telegraf Token Popup

Speichere ihn für den Moment, da wir ihn später noch brauchen 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 das gleiche Repository. Das bedeutet, dass du Telegraf direkt installieren kannst.

$ sudo apt install telegraf

Der Dienst von Telegraf wird während der Installation automatisch aktiviert und gestartet.

Telegraf ist ein Plugin-gesteuerter Agent und verfügt über 4 Arten von Plugins:

  1. Input-Plugins sammeln Metriken.
  2. Prozessor-Plugins transformieren, dekorieren und filtern Metriken.
  3. Aggregator-Plugins erstellen und aggregieren Metriken.
  4. Output-Plugins definieren die Ziele, an die die Metriken gesendet werden, einschließlich InfluxDB.

Telegraf speichert seine Konfiguration für alle diese Plugins in der Datei /etc/telegraf/telegraf.conf. Der erste Schritt besteht darin, Telegraf mit InfluxDB zu verbinden, indem du das Output-Plugin influxdb_v2 aktivierst. Öffne die Datei /etc/telegraf/telegraf.conf zum Bearbeiten.

$ sudo nano /etc/telegraf/telegraf.conf

Finde die Zeile [[outputs.influxdb_v2]] und kommentiere sie aus, indem du das # vor der Zeile entfernst. Bearbeite den Code darunter auf folgende Weise.

# # Configuration for sending metrics to InfluxDB 2.0
 [[outputs.influxdb_v2]]
#   ## The URLs of the InfluxDB cluster nodes.
#   ##
#   ## Multiple URLs can be specified for a single cluster, only ONE of the
#   ## urls will be written to each interval.
#   ##   ex: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
   urls = ["http://127.0.0.1:8086"]
#
#   ## Token for authentication.
   token = "$INFLUX_TOKEN"
#
#   ## Organization is the name of the organization you wish to write to.
   organization = "howtoforge"
#
#   ## Destination bucket to write into.
   bucket = "tigstack"

Füge den zuvor gespeicherten Wert des InfluxDB-Tokens anstelle der Variable $INFLUX_TOKEN in den obigen Code ein.

Suche nach der Zeile INPUT PLUGINS und du wirst sehen, dass die folgenden Eingabe-Plugins standardmäßig aktiviert sind.

# Read metrics about cpu usage
[[inputs.cpu]]
  ## Whether to report per-cpu stats or not
  percpu = true
  ## Whether to report total system cpu stats or not
  totalcpu = true
  ## If true, collect raw CPU time metrics
  collect_cpu_time = false
  ## If true, compute and report the sum of all non-idle CPU states
  report_active = false
  ## If true and the info is available then add core_id and physical_id tags
  core_tags = false


# Read metrics about disk usage by mount point
[[inputs.disk]]
  ## By default stats will be gathered for all mount points.
  ## Set mount_points will restrict the stats to only the specified mount points.
  # mount_points = ["/"]

  ## Ignore mount points by filesystem type.
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]

  ## Ignore mount points by mount options.
  ## The 'mount' command reports options of all mounts in parathesis.
  ## Bind mounts can be ignored with the special 'bind' option.
  # ignore_mount_opts = []


# Read metrics about disk IO by device
[[inputs.diskio]]
....
....

# Get kernel statistics from /proc/stat
[[inputs.kernel]]
  # no configuration


# Read metrics about memory usage
[[inputs.mem]]
  # no configuration
  
# Get the number of processes and group them by status
[[inputs.processes]]
  # no configuration


# Read metrics about swap memory usage
[[inputs.swap]]
  # no configuration


# Read metrics about system load & uptime
[[inputs.system]]
  # no configuration

Du kannst je nach Bedarf weitere Input-Plugins konfigurieren, z. B. Apache Server, Docker-Container, Elasticsearch, iptables firewall, Kubernetes, Memcached, MongoDB, MySQL, Nginx, PHP-fpm, Postfix, RabbitMQ, Redis, Varnish, Wireguard, PostgreSQL usw. Es gibt auch einen InfluxDB python client.

Wenn du fertig bist, speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.

Starte den Telegraf-Dienst neu, nachdem du die Änderungen vorgenommen hast.

$ sudo systemctl restart telegraf

Schritt 5 – Überprüfe, ob die Telegraf-Statistiken in InfluxDB gespeichert werden

Bevor du fortfährst, musst du überprüfen, ob die Telegraf-Statistiken korrekt erfasst und in die InfluxDB eingespeist werden. Öffne die InfluxDB-Benutzeroberfläche in deinem Browser, klicke auf das dritte Symbol in der linken Seitenleiste und wähle das Menü Buckets.

InfluxDB Buckets Seite

Klicke auf tigstack und du solltest die folgende Seite sehen.

InfluxDB Datenexplorer

Klicke auf den Bucket-Namen und dann auf einen der Werte im Filter _measurement und klicke immer wieder auf andere Werte, wenn sie erscheinen. Wenn du fertig bist, klicke auf die Schaltfläche Senden. Oben solltest du ein Diagramm sehen. Es kann sein, dass du einige Zeit warten musst, bis die Daten angezeigt werden.

InfluxDB Daten Graphen

Das sollte dir bestätigen, dass die Daten korrekt weitergegeben werden.

Schritt 6 – Grafana installieren

Wir verwenden das offizielle Grafana-Repository, um es zu installieren. Importiere den Grafana GPG-Schlüssel.

$ sudo wget -q -O /usr/share/keyrings/grafana.key https://packages.grafana.com/gpg.key

Füge das Repository zu deinem System hinzu.

$ echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

Aktualisiere die Repository-Liste des Systems.

$ sudo apt update

Installiere Grafana.

$ sudo apt install grafana

Starte und aktiviere den Grafana-Dienst.

$ sudo systemctl enable grafana-server --now

Überprüfe den Status des Dienstes.

$ sudo systemctl status grafana-server
? grafana-server.service - Grafana instance
     Loaded: loaded (/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-09-13 01:04:47 UTC; 2s ago
       Docs: http://docs.grafana.org
   Main PID: 13674 (grafana-server)
      Tasks: 7 (limit: 1030)
     Memory: 104.6M
        CPU: 1.050s
     CGroup: /system.slice/grafana-server.service
             ??13674 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/run/grafana/grafana-server.pid --packaging=deb cfg:default.paths.logs=/var/log/grafana 
.......

Schritt 7 – Grafana-Datenquelle einrichten

Starte die URL http://<serverIP>:3000 in deinem Browser und die folgende Grafana-Anmeldeseite sollte dich begrüßen.

Grafana Login Seite

Melde dich mit dem Standardbenutzernamen admin und dem Passwort admin an. Als Nächstes musst du ein neues Standardpasswort einrichten.

Grafana Neues Passwort

Du wirst mit der folgenden Grafana-Startseite begrüßt. Klicke auf die Schaltfläche Füge deine erste Datenquelle hinzu.

Grafana Dashboard

Klicke auf die Schaltfläche InfluxDB.

Datenquelle in Grafana hinzufügen

Auf der nächsten Seite wählst du Flux aus dem Dropdown-Menü als Abfragesprache aus. Du kannst auch 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.

Grafana Query Language Selector

Gib die folgenden Werte ein.

URL: http://localhost:8086

Zugang: Server

Grundlegende Auth-Details

Benutzer: navjot

Passwort: <yourinfluxdbpassword>

InfluxDB-Details

Organisation: howtoforge

Token: <influxdbtoken>

Standard-Bucket: tigstack

Grafana InfluxDB Details

Klicke auf die Schaltfläche Speichern und testen und du solltest eine Bestätigungsmeldung sehen, die bestätigt, dass die Einrichtung erfolgreich war.

Grafana Details speichern

Schritt 8 – Grafana Dashboards einrichten

Im nächsten Schritt richtest du Grafana Dashboards ein. Klicke auf das Zeichen mit den vier Quadraten und wähle Dashboards, um den Bildschirm Dashboard erstellen zu öffnen.

Grafana Dashboard erstellen Schaltfläche

Auf der nächsten Seite klickst du auf die Schaltfläche Neues Panel hinzufügen, um den folgenden Bildschirm zu öffnen.

Grafana Neues Dashboard Panel

Füge den folgenden Code in den Abfrage-Editor ein. Diese

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")

Verwende den Bucket-Namen, den wir oben verwendet haben. Und den Namen des Hosts, den du aus der Datei /etc/hostname abrufen kannst.

Der obige Code berechnet die CPU-Auslastung und erstellt ein Diagramm dazu. Gib dem Panel einen Titel.

Grafana Edit Panel

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

Grafana Query Inspector Ergebnis

Du kannst der Achse auch einen Namen geben, indem du das Beschriftungsfeld rechts unter dem Achsenabschnitt benutzt.

Grafana Axis Label Feld

Klicke auf die Schaltfläche Übernehmen, um das Panel zu speichern.

Klicke auf die Schaltfläche Dashboard speichern, wenn du fertig bist.

Grafana Save Dashboard

Gib dem Dashboard einen Namen und klicke zum Abschluss auf Speichern.

Grafana Save Dashboard Popup

Das Dashboard wird geöffnet und du kannst auf die Schaltfläche Panel hinzufügen klicken, um ein weiteres Panel zu erstellen.

Grafana Dashboard Neue Panel-Seite

Wiederhole den Vorgang und erstelle ein weiteres Panel für die RAM-Auslastung.

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")

Und verwende den folgenden Code für die Anzeige der Festplattennutzung.

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")

Du kannst eine unbegrenzte Anzahl von Panels erstellen.

Der obige Code basiert auf der Flux Scripting Sprache. Zum Glück musst du diese Sprache nicht lernen, um Abfragen zu schreiben. Du kannst die Abfrage aus der InfluxDB URL generieren. Auch wenn das Erlernen der Sprache bei der Optimierung der Abfragen von Vorteil sein kann.

Um die Abfrage zu erhalten, musst du zum InfluxDB Dashboard zurückkehren und die Seite Explore öffnen.

Klicke auf den Bucket-Namen und dann auf einen der Werte im Filter _measurement und klicke immer wieder auf andere Werte, wenn sie erscheinen. Wenn du fertig bist, klicke auf die Schaltfläche Skript-Editor und du solltest die folgende Seite sehen. Das Diagramm sollte ebenfalls aktualisiert werden.

Grafana Explore Abfrage Seite

InfluxDB Skript Editor Schaltfläche

Kopiere die angezeigte Abfrage und du kannst sie jetzt im Grafana-Dashboard verwenden, um deine Diagramme zu erstellen.

Schritt 9 – Alarme und Benachrichtigungen konfigurieren

Die Einrichtung von Monitoren dient in erster Linie dazu, rechtzeitig Warnungen zu erhalten, wenn der Wert einen bestimmten Schwellenwert überschreitet.

Der erste Schritt besteht darin, das Ziel festzulegen, an das du die Benachrichtigungen senden möchtest. Du kannst Benachrichtigungen per E-Mail, Slack, Kafka, Google Hangouts Chat, Microsoft Teams, Telegram, etc. erhalten.

Für unseren Lehrgang werden wir E-Mail-Benachrichtigungen aktivieren. Um E-Mail-Benachrichtigungen einzurichten, müssen wir zunächst den SMTP-Dienst konfigurieren. Öffne die Datei /etc/grafana/grafana.ini, um SMTP zu konfigurieren.

$ sudo nano /etc/grafana/grafana.ini

Finde darin die folgende Zeile [smtp]. Hebe die Kommentare in den folgenden Zeilen auf und gib die Werte für den benutzerdefinierten SMTP-Server ein.

[smtp]
enabled = true
host = email-smtp.us-west-2.amazonaws.com:587
user = YOURUSERNAME
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = YOURUSERPASSWORD
;cert_file =
;key_file =
;skip_verify = false
from_address = user@example.com
from_name = HowtoForge Grafana
# EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity = dashboard.example.com
# SMTP startTLS policy (defaults to 'OpportunisticStartTLS')
;startTLS_policy = NoStartTLS

Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.

Starte den Grafana-Server neu, um die Einstellungen zu übernehmen.

$ sudo systemctl restart grafana-server

Öffne die Grafana-Seite und klicke auf das Alert-Symbol und dann auf Kontaktpunkte.

Grafana Kontaktpunkte Popup

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

Grafana Kontaktstelle bearbeiten

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

Grafana Email Notification Contact Point

Wenn du eine zusätzliche Nachricht senden möchtest, klicke auf den Link Optionale E-Mail-Einstellungen und gib die Nachricht ein.

Grafana Optionale E-Mail-Einstellungen

Klicke auf Testen, um zu sehen, ob die E-Mail-Einstellungen funktionieren. Klicke auf Speichern, wenn du fertig bist.

Jetzt, wo wir die Benachrichtigungskanäle eingerichtet haben, müssen wir Benachrichtigungen einrichten, wenn wir diese E-Mails erhalten. Um die Benachrichtigungen einzurichten, musst du zurück zu den Dashboard-Panels gehen.

Klicke auf Dashboard >> Durchsuchen, um die Dashboard-Seite zu öffnen.

Grafana Dashboards durchsuchen

Klicke auf das Dashboard, das wir gerade erstellt haben, und du erhältst die Startseite mit den verschiedenen Bereichen. Um ein Panel zu bearbeiten, klicke auf den Namen des Panels und ein Dropdown-Menü öffnet sich. Klicke auf den Link Bearbeiten, um fortzufahren.

Grafana Dashboard Edit Panel

Klicke auf das Warnmeldungs-Panel und klicke auf die Schaltfläche Warnregel aus diesem Panel erstellen, um eine neue Warnmeldung einzurichten.

Grafana Schaltfläche "Alarmregel erstellen

Du kannst nun die Bedingungen konfigurieren, unter denen Grafana den Alarm sendet.

Grafana Alert-Typ bearbeiten

Standardmäßig ist der ausgewählte Alarmtyp der von Grafana verwaltete Alarm. Klicke auf das Dropdown-Menü, um den Zeitbereich auf die letzten 15 Minuten zu ändern, d.h. es wird von vor 15 Minuten bis jetzt geprüft.

Grafana Alerts Expression

Bedingungen

Grafana arbeitet mit einer Abfrage des folgenden Formats, um zu bestimmen, wann ein Alarm ausgelöst werden soll.

avg() OF query(A) IS BELOW 14
  • avg() steuert, wie der Wert für jede Reihe auf einen vergleichbaren Wert zum Schwellenwert reduziert werden soll. Du kannst auf den Funktionsnamen klicken, um eine andere Funktion auszuwählen, z.B. avg(), min(), max(), sum(), count(), etc.

Grafana Alert Funktionen

  • Abfrage(A) Der Buchstabe in der Klammer legt fest, welche Abfrage auf der Registerkarte Metriken ausgeführt werden soll.
  • IS BELOW 14 Legt die Art des Schwellenwerts und den Schwellenwert fest. Du kannst auf IS BELOW klicken, um einen anderen Schwellentyp auszuwählen.Grafana Schwellenwert Typ

Du kannst eine zweite Bedingung darunter einfügen, indem du auf die Schaltfläche + unter der ersten Bedingung klickst. Derzeit kannst du nur die Operatoren AND und OR zwischen mehreren Bedingungen verwenden.

Grafana Alert-Verhalten

Regel

  • Name – Gib einen beschreibenden Namen für den Alarm ein
  • Ordner – Erstelle einen Ordner oder wähle einen bereits existierenden Ordner aus, um deine Benachrichtigungsregel zu speichern.
  • Gruppe – Gib einen Namen für deine Benachrichtigungsgruppe ein. Warnmeldungen in einer Gruppe werden nach demselben Zeitintervall ausgewertet.
  • Auswerten alle – Lege fest, wie oft Grafana die Warnung auswerten soll. Dies wird auch als Auswertungsintervall bezeichnet. Du kannst hier jeden beliebigen Wert einstellen.

Keine Daten & Fehlerbehandlung

Du kannst konfigurieren, wie Grafana Abfragen behandeln soll, die keine Daten oder nur Nullwerte zurückgeben, indem du die folgenden Bedingungen verwendest:

  1. Keine Daten – Setze den Regelstatus auf NoData
  2. Alerting – Setze den Regelstatus auf Alerting
  3. Ok – Setze den Status der Warnregel auf Ok, d.h. du bekommst eine Warnung, auch wenn alles in Ordnung ist.

Du kannst Grafana mitteilen, wie Ausführungs- oder Timeout-Fehler behandelt werden sollen.

  1. Alerting – Setze den Status der Regel auf Alerting
  2. Ok – Setze den Status der Warnregel auf Ok, d.h. du bekommst eine Warnung, auch wenn alles in Ordnung ist.
  3. Fehler – Setze den Status der Warnregel auf Fehler, um anzuzeigen, dass es ein Problem gibt.

Wenn du fertig bist, klicke auf die Schaltfläche Vorschau der Warnmeldungen, um zu sehen, ob alles gut funktioniert. Klicke oben rechts auf die Schaltfläche Speichern und beenden, um das Hinzufügen der Warnmeldung abzuschließen. Du solltest jetzt Benachrichtigungen über deine E-Mail erhalten.

Fazit

Damit ist die Anleitung zur Installation und Konfiguration von TIG Stack auf einem Ubuntu 22.04 basierten Server abgeschlossen. Wenn du noch Fragen hast, schreibe sie in die Kommentare unten.

Das könnte dich auch interessieren …