So installierst du InfluxDB und Telegraf unter Debian Linux

InfluxDB ist eine in Go geschriebene Open-Source-Zeitreihendatenbank. Sie ist eine leistungsstarke Zeitreihenplattform, die speziell für die Erfassung, Speicherung, Verarbeitung und Visualisierung von Zeitreihendaten entwickelt wurde. InfluxDB ist die beste Lösung für Zeitreihendatenbanken. Sie bietet eine leistungsstarke Zeitreihendaten-Engine mit einer integrierten, leistungsstarken API für die Entwicklung von Echtzeitanwendungen. InfluxDB ist eine Plattform, die z. B. für die Betriebsüberwachung, für Leistungskennzahlen von Anwendungen und Servern, für IoT-Sensordaten und für Echtzeitanalysen genutzt wird.

In dieser Anleitung wirst du das Dashboard-Monitoring mit InfluxDB einrichten und Metriken für die Systemüberwachung über Telegraf senden. Für die Installation verwendest du einen Debian 11 Server. In dieser Anleitung erfährst du, wie du InfluxDB über TLS/SSL-Zertifikate sicherst, InfluxDB über die IbnfluxDB-CLI (Befehlszeile) einrichtest und die grundlegende Telegraf-Konfiguration für das Senden von Metriken an InfluxDB vornimmst.

Voraussetzungen

Für diesen Leitfaden brauchst du die folgenden Voraussetzungen:

  • Einen Debian 11 Server – Du kannst zwei oder drei verschiedene Server für die Installation verwenden. Im Folgenden findest du die grundlegende Architektur, wenn du mehrere Server verwendest:
    • Server1 wird als InfluxDB-Server verwendet.
    • Server2 als Zielmonitoring, auf dem Telegraf installiert wird.
  • Ein Nicht-Root-Benutzer mit sudo/root-Administrator-Rechten.

Installation von InfluxDB und InfluxDB-CLIs

InfluxDB ist eine Open-Source-Zeitreihendatenbank, die in verschiedenen Umgebungen eingesetzt werden kann. Dazu gehören virtuelle Maschinen mit Linux, Windows und macOS. Aber auch in containerisierten Umgebungen wie Docker und Kubernetes.

Die influxdb2-cli stellt eine Kommandozeile zur Verfügung, mit der du dieinfluxdb-Administration verwalten kannst, z. B. die Verwaltung von Buckets, Organisationen, Benutzern, Aufgaben usw.

In diesem ersten Schritt richtest du das influxdb-Repository ein und installierst anschließend die Pakete influxdb und influxdb-cli auf deinem System.

Um zu beginnen, führe den folgenden apt-Befehl aus, um einige Paketabhängigkeiten auf deinem Debian-Server zu installieren. Wenn du zur Installation aufgefordert wirst, gib y ein und drücke ENTER.

sudo apt install gnupg2 wget curl

Abhängigkeiten installieren

Als nächstes führst du den folgenden Befehl aus, um den GPG-Schlüssel für das influxdb-Repository herunterzuladen. Der GPG-Schlüssel wird unter„/etc/apt/trusted.gpg.d/influxdb.gpg“ gespeichert.

wget -q https://repos.influxdata.com/influxdb.key
echo '23a1c8836f0afc5ed24e0486339d7cc8f6790b83886c4c96995b88a061c5bb5d influxdb.key' | sha256sum -c && cat influxdb.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdb.gpg > /dev/null

Füge nun das influxdb-Repository mit dem folgenden Befehl zu deinem System hinzu. In diesem Beispiel installierst du influxdb aus dem Stable Branch 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

Danach aktualisierst du deinen Paketindex mit dem unten stehenden apt-Befehl.

sudo apt update

Repo einrichten Repo aktualisieren

Nachdem das Repository hinzugefügt und der Paketindex aktualisiert wurde, führst du den folgenden apt-Befehl aus, um die Pakete influxdb2 und influxdb2-cli zu installieren. Zum Zeitpunkt der Erstellung dieses Artikels ist die letzte stabile Version von influxdb v2.xx und influxdb-cli v2.xx.

sudo apt install influxdb2 influxdb2-cli

Wenn du nach der Konfiguration gefragt wirst, gib y ein und drücke ENTER, um fortzufahren.

influxdb installieren

Nachdem influxdb2 und influxdb2-cli installiert sind, starte den influxdb-Dienst mit dem Befehl systemctl uitility.

sudo systemctl start influxdb

Überprüfe abschließend den influxdb-Dienst mit dem Befehl systemctl utility.

sudo systemctl is-enabled influxdb
sudo systemctl status influxdb

Du solltest die Ausgabe erhalten, dass der influxdb-Dienst aktiviert ist und beim Hochfahren automatisch ausgeführt wird. Und der Status des influxdb-Dienstes ist running.

veriy influxdb starten

Wenn der influxdb-Dienst läuft, kannst du mit der grundlegenden Konfiguration von influxdb2-cli fortfahren.

InfluxDB-CLI konfigurieren

Die influxdb2-cli stellt ein Kommandozeilentool zur Verwaltung des influxdb-Servers bereit, das„influx“ heißt. Du wirst nun die influxdb2-cli verifizieren und die Bash-Vervollständigung für den Befehl„influx“ einrichten.

Um die influxdb2-cli zu überprüfen, führe den folgenden Befehl in deinem Terminal aus. Der erste Befehl prüft den vollständigen Binärpfad des Befehls„influx“ und der zweite Befehl prüft die Version von influxdb2-cli, die auf deinem System installiert ist.

which influx
influx version

Du erhältst eine Ausgabe wie im folgenden Screenshot – der Befehl„influx“ ist unter„/bin/influx“ verfügbar und die Version des installierten influxdb2-cli-Pakets ist v2.xx.

Zustrom prüfen

Als Nächstes richtest du die Bash-Vervollständigung für den Befehl „influx“ in der Konfigurationsdatei „~/.bashrc“ ein.

Führe den Befehl „influx“ aus, um das Bash-Vervollständigungsskript in „/etc/bash_completion.d/influx.sh“ zu erstellen. Mache dann das neu erzeugte Skript„/etc/bash_completion.d/influx.sh“ mit dem Befehl chmod ausführbar.

sudo influx completion bash > /etc/bash_completion.d/influx.sh
sudo chmod +x /etc/bash_completion.d/influx.sh

Als Nächstes öffnest du die Konfigurationsdatei„~/.bashrc“ mit dem folgenden Befehl des Editors nano.

sudo nano ~/.bashrc

Füge die folgende Konfiguration am Ende der Zeile ein. Damit lädst du die Bash-Skriptvervollständigung, die in mehreren Verzeichnissen verfügbar ist.

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

Speichere die Datei und beende den Editor, wenn du fertig bist.

Als Nächstes führst du den folgenden Befehl aus, um die„~/.bashrc„-Konfiguration zu laden und deine aktuelle Shell neu zu laden.

source ~/.bashrc

Zuletzt gibst du den Befehl„influx“ in dein Terminal ein und drückst TAB, um die verfügbaren Optionen für den Befehl„influx“ zu erhalten.

sudo influx TAB

Du erhältst dann eine Ausgabe wie die folgende.

bash Abschluss influx Befehl

Jetzt, wo der influxdb-Dienst läuft und die influxdb2-cli Kommandozeile konfiguriert ist, richtest du die Firewalld ein und beginnst mit der Konfiguration der influxdb über die Kommandozeile influxdb2-cli.

UFW einrichten

Der influxdb-Dienst läuft standardmäßig auf Port 8086. Dieser Port wird auch als Endpunkt verwendet, an dem influxdb Metriken von telegraf empfängt.

In diesem Schritt richtest du die ufw-Firewall ein und öffnest den influxdb-Port„8086“ auf der ufw-Firewall.

Das ufw-Paket ist in der Standardinstallation von Debian nicht installiert. Installiere ufw mit dem unten stehenden apt-Befehl.

sudo apt install ufw -y

ufw installieren

Nachdem das ufw-Paket installiert ist, führe den folgenden ufw-Befehl aus, um den OpenSSH-Dienst hinzuzufügen und den ufw-Firewall-Dienst zu aktivieren.

sudo ufw allow OpenSSH
sudo ufw enable

Wenn du zur Bestätigung aufgefordert wirst, gib y ein und drücke ENTER. Der ufw-Dienst sollte nun gestartet und aktiviert sein und wird beim Booten automatisch ausgeführt.

ufw aktivieren

Als Nächstes führst du den folgenden Befehl aus, um den Port„8086“ zur ufw-Firewall hinzuzufügen. Überprüfe dann den aktuellen Status der ufw-Firewall.

sudo ufw allow 8086/tcp
sudo ufw status

Du erhältst eine Ausgabe wie im folgenden Screenshot – Der Status der ufw-Firewall ist aktiv, der Dienst OpenSSH und der Port„8086“ sind aktiviert.

ufw verifizieren

Einrichten von InfluxDB über InfluxDB-CLI

Um die influxdb zu nutzen, musst du sie über die webbasierte Administration oder über die influxdb2-cli Kommandozeile konfigurieren. Die Grundkonfiguration für influxdb umfasst Folgendes:

  • Influxdb-Admin-Benutzer
  • Influxdb-Admin-Passwort
  • Standard-Organisationsname
  • Standard Bucket/Datenbank

In diesem Schritt richtest du die influxdb mit dem Befehl influx ein, der im Paket influxdb2-cli enthalten ist. Führe den folgenden Befehl aus, um die Konfiguration von influxdb zu starten.

sudo influx setup

Nun wirst du aufgefordert, einige Einstellungen für influxdb vorzunehmen. Gib den Benutzernamen und das Passwort für deine influxdb-Installation ein. Gib den Standard-Organisationsnamen und den Standard-Bucket/die Standard-Datenbank ein.

Das Beispiel auf dem Screenshot unten zeigt, dass der Benutzer für die influxdb-Installation„jokic“ ist, der Organisationsname„HW.IO“ und der Standard-Bucket„mybucket„.

influxdb einrichten

Nachdem die influxdb konfiguriert ist, führe den folgenden influx-Befehl aus, um die Konfiguration zu überprüfen.

sudo influx user list
sudo influx auth list

Du erhältst eine ähnliche Ausgabe wie im folgenden Screenshot. Der Befehl„influx setup“ konfiguriert auch automatisch das Token für den neuen Admin-Benutzer mit einigen Standard-Admin-Berechtigungen.

Benutzerautorisierung und Listen überprüfen

Nachdem der neue Admin-Benutzer erstellt und das Token generiert wurde, kannst du die Konfigurationen überprüfen, indem du dich über die influxdb-Shell und das Webadministrations-Dashboard anmeldest.

Führe den folgenden Befehl aus, um eine neue Umgebungsvariable „INFLUX_TOKEN“ zu erstellen. Achte darauf, dass du das Token durch dein generiertes Token ersetzt.

export INFLUX_TOKEN=r_We-DLv_GY64klANaag1jVQ1iQ3oT3By7PLG1m6-TCO_kImk4q0IyKXLDIFs3jjCGG_P8Q0Y_nVwiNw9Vk5tQ==

Rufe nun die influxdb-Shell mit dem unten stehenden influx-Befehl auf.

sudo influx v1 shell $INFLUX_TOKEN

Nachdem du dich eingeloggt hast, erhältst du die Meldung „Connected to InfluxDB OSS v2.5.1“.

Anmeldung bei influxdb shell

Führe die folgende Abfrage aus, um die Liste der Buckets/Datenbanken in deiner influxdb-Installation zu überprüfen. Der folgende Terminalbildschirm zeigt dir, dass der Bucket„mybucket“ auf der Influxdb verfügbar ist.

show DATABASES

Datenbanken auflisten

Gib nun„q“ ein, um den interaktiven Bildschirm zu verlassen. Gib dann„quit“ ein, um die influxdb-Shell zu verlassen.

Als Nächstes öffnest du deinen Webbrowser und rufst die IP-Adresse deines Servers auf, gefolgt vom Standardport 8086 (d.h. : http://192.168.5.8086/). Du siehst die Anmeldeseite von influxdb.

Gib deinen Admin-Benutzer und dein Passwort ein und klicke auf „ANMELDEN“.

influxdb login page

Du erhältst nun das influxdb-Administrations-Dashboard.

influxdb Dashboard

Um die Liste der Buckets/Datenbanken auf der influxdb zu überprüfen, klickst du auf Daten laden > Buckets und du siehst, dass der Bucket„mybucket“ auf der influxdb verfügbar ist.

Eimer überprüfen

An dieser Stelle hast du die influxdb mit der Grundinstallation und -konfiguration installiert und konfiguriert. Als Nächstes sicherst du die influxdb über SSL/TLS-Zertifikate und aktualisierst das Standardprofil für die ibnfluxdb2-cli.

Sichern von InfluxDB über SSL/TLS-Zertifikate

Die influxdb-Installation kann auf viele Arten und mit unterschiedlichen Szenarien gesichert werden. Du kannst Autorisierungen und Berechtigungen für jeden Benutzer einrichten und auch den Transport über SSL/TLS-Zertifikate sichern.

In diesem Schritt sicherst du die influxdb mit SSL/TLS-Zertifikaten. Du solltest also sicherstellen, dass du SSL/TLS-Zertifikate generiert hast, bevor du die influxdb konfigurierst. Dann aktualisierst du das Standardprofil auf der influxdb2-cli.

Bevor du mit der Konfiguration beginnst, führe den folgenden Befehl aus, um ein neues Verzeichnis „/etc/influxdb/ssl“ zum Speichern von SSL/TLS-Zertifikaten zu erstellen.

mkdir -p /etc/influxdb/ssl

Kopiere den öffentlichen und den privaten Schlüssel deines SSL/TLS-Zertifikats in das neue Verzeichnis„/etc/influxdb/ssl„. Dann änderst du den Eigentümer des SSl/TLS-Verzeichnisses auf den Benutzer„influxdb„.

cp *.pem /etc/influxdb/ssl/
sudo chown -R influxdb: /etc/influxdb/ssl

Als nächstes öffnest du die influxdb-Konfigurationsdatei „/opt/influxdb/config.toml“ mit dem unten stehenden nano-Editor-Befehl.

sudo nano /etc/influxdb/config.toml

Füge die folgenden Zeilen hinzu, die den vollständigen Pfad des öffentlichen und privaten SSL/TLS-Schlüssels definieren.

tls-cert = "/etc/influxdb/ssl/fullchain.pem"
tls-key = "/etc/influxdb/ssl/privkey.pem"

Speichere die Datei und beende den Editor, wenn du fertig bist.

Führe nun den folgenden„systemctl„-Befehl aus, um den influxdb-Dienst neu zu starten und die neuen Änderungen zu übernehmen.

sudo systemctl restart influxdb

Wenn die influxdb über eine sichere Verbindung mit SSL/TLS-Zertifikaten läuft, kannst du nicht über den Befehl influx mit der influxdb kommunizieren.

Führe den folgenden influx-Befehl aus, um die Liste der Profile auf der influxdb2-cli zu überprüfen, und führe die Abfrage aus, um die Liste der Benutzer auf der influxdb zu überprüfen.

sudo influx config ls
sudo influx user list

Du solltest eine Fehlermeldung sehen wie„failed to list users: 400 Bad Request..‚.

ssl/tls aktivieren influxdb

Um das Authentifizierungsproblem zu lösen, musst du das„Standard„-Profil aktualisieren und den Standard-Host/URL der influxdb auf eine sichere HTTPS-Verbindung ändern.

Führe den folgenden Befehl aus, um das„Standard„-Profil auf den sicheren influxdb-Host„https://influxdb.hwdomain.io:8086“ zu aktualisieren.

sudo influx config set --active --config-name=default --host-url=https://influxdb.hwdomain.io:8086 --token=$INFLUX_TOKEN --org=HW.IO

Überprüfe nun das neueStandardprofil mit dem unten stehenden influx-Befehl.

sudo influx user list
sudo influx auth list

Du solltest jetzt wieder mit der influxdb über den influx-Befehl kommunizieren können. Und die Verbindung zwischen dem influx-Befehl und der influxdb ist mit SSL/TLS-Zertifikaten gesichert.

Profil einrichten influx cli

Du hast nun die Grundkonfiguration des influxdb-Servers abgeschlossen und bist bereit, Telegraf einzurichten und Systemmetriken an den influxdb-Server zu senden.

Installieren und Konfigurieren von Telegraf

Telegraf ist Teil der von influxdata entwickelten Zeitreihenplattform. Es ist ein Open-Source-Server-basierter Agent zum Sammeln und Senden von Metriken und Ereignissen aus verschiedenen Umgebungen wie IoT-Sensoren, Datenbanksystemen, Systemtelemetrie und DevOps-Tools und -Frameworks. Telegraf wird als einzelne Binärdatei kompiliert und in Go geschrieben, sodass für die Installation keine externen Abhängigkeiten erforderlich sind.

Telegraf ist standardmäßig im influxdb-Repository verfügbar. Wenn du also mehrere Debian-Server verwendest, musst du das influxdb-Repository auf allen deinen Servern hinzufügen.

In diesem Schritt installierst du Telegraf auf einem Debian 11-Server. Anschließend konfigurierst du Telegraf so, dass es Metriken an den influxdb-Server sendet.

Führe den folgenden apt-Befehl aus, um telegraf auf einem Debian-Server zu installieren. Achte darauf, dass das influxdb-Repository hinzugefügt wird.

sudo apt install telegraf

Die Telegraf-Installation sollte jetzt ausgeführt werden.

telegraphieren

Nachdem telegraf installiert ist, führe den folgenden systemctl-Befehl aus, um den telegraf-Dienst zu starten.

sudo systemctl start telegraf

Überprüfe nun den telegraf-Dienst mit dem systemctl-Befehl und vergewissere dich, dass der Dienst aktiviert ist und läuft.

sudo systemctl is-enabled telegraf
sudo systemctl status telegraf

Auf deinem Terminalbildschirm erhältst du eine Ausgabe wie im folgenden Screenshot – Der telegraf-Dienst läuft derzeit und ist aktiviert, was bedeutet, dass der telegraf-Dienst beim Hochfahren automatisch gestartet wird.

start enable telegraf

Als Nächstes öffnest du die telegraf-Konfigurationsdatei „/etc/telegraf/telegraf.conf“ mit dem unten stehenden nano-Editor-Befehl.

sudo nano /etc/telegraf/telegraf.conf

Entferne das Kommentarzeichen im Abschnitt ‚[[outputs.influxdb_v2]]‚ und ändere die Detailkonfiguration mit den folgenden Einstellungen. Achte darauf, dass du die influxdb-URLs mit einer sicheren HTTPS-Verbindung, das Token, den Organisationsnamen und den Standard-Bucket/die Standard-Datenbank änderst.

 [[outputs.influxdb_v2]]
#   ## The URLs of the influxdb cluster nodes.
.........
#   ###   ##   ex: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
   urls = ["https://influxdb.hwdomain.io:8086"]
#
#   ## Token for authentication.
   token = "FlIq521ZVxEA40Iz7rVVKK25sDmuEWUHm_Mbly-4mYxt-rWrYOOytVnmE5yL5bpNB_gNHBWlYXKDED9PEbk-0g=="
#
#   ## Organization is the name of the organization you wish to write to.
   organization = "HW.IO"
#
#   ## Destination bucket to write into.
   bucket = "mybucket"

Speichere die Datei und beende den Editor, wenn du fertig bist.

Führe nun den folgenden systemctl-Befehl aus, um den telegraf-Dienst neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart telegraf

Nachdem Telegraf neu gestartet und die Änderungen übernommen wurden, musst du die Telegraf-Installation überprüfen, was du über das influxdb-Administrations-Dashboard oder die influxdb-Shell tun kannst.

Gehe zurück zum influxdb-Administrations-Dashboard, klicke auf das Menü Data Explorer und wähle den Bucket„mybucket“ aus. Du solltest sehen, dass eine Liste der Telegraf-Metriken in der influxdb verfügbar ist.

telegraphieren

Um dies von der influxdb-Shell aus zu überprüfen, führe den folgenden Befehl auf dem influxdb-Terminalserver aus.

sudo influx v1 shell

Nachdem du dich in der influxdb-Shell angemeldet hast, führe die folgenden Abfragen aus, um die Telegraf-Metriken zu überprüfen. Mit der ersten Abfrage wechselst du zum Bucket„mybucket“ und mit der zweiten Abfrage zeigst du die verfügbaren Spalten/Messungen in diesem Bucket an.

use mybucket
SHOW MEASUREMENTS

Unten siehst du eine ähnliche Ausgabe, die du auf deinem Terminalserver erhältst: Die Telegraf-Metriken für CPU, Festplatte, Diskio, Kernel, Mem, Prozesse, Swap und das System sind auf dem influxdb-Server verfügbar.

telegraphieren

Du hast nun überprüft, dass die Metriken vom telgeraf-Server auf dem influxdb-Server verfügbar sind. Das bedeutet, dass die Installation und Konfiguration von telegraf abgeschlossen und erfolgreich ist.

Telegraf über Terminal prüfen

Im letzten Schritt erfährst du, wie du das Dashboard-Monitoring auf dem influxdb-Server einrichtest und ein neues Überwachungssystem mit telegraf-Metriken einrichtest, die auf dem influxdb-Server verfügbar sind.

Dashboard-Monitoring erstellen

In diesem letzten Schritt richtest du ein neues Dashboard zur Überwachung der Systemtelemetrie über den influxdb-Server und telegraf ein. Du erstellst influxdb Dashboards und richtest Zellen für die Systemüberwachung ein und visualisierst die von telegraf gesammelten Metriken.

Klicke auf das Menü Dashboard und dann auf„Dashboard erstellen„.

Dashboard erstellen

Gib den Namen des Dashboards oben auf der Seite ein. In diesem Beispiel wird das Dashboard„Test Dashboard“ genannt.

Klicke nun auf „ZELLE HINZUFÜGEN„, um eine neue Grafik für die Systemüberwachung hinzuzufügen.

Zelle hinzufügen

Unten siehst du das Diagramm für die Speicherüberwachung.

Speicher

Überwachung der Systemauslastung.

Systemlasten

Uptime des Zielservers.

Betriebszeit

Verfügbare CPUs auf dem Zielsystem mit der Zahl X.

CPUs Anzahl

Und schließlich der aktuelle Benutzer, der sich auf dem Zielcomputer angemeldet hat.

Benutzer aktiv

Nachdem die Zellen erstellt wurden, siehst du unten das Ergebnis des Beispiels für die Erstellung eines Dashboards auf influxdb zur Systemüberwachung. Alle diese Metriken werden von Telegraf gesammelt und an die influxdb-Server gesendet.

Dashboard Monityoring

Fazit

In diesem Tutorial hast du die Zeitreihendatenbank influxdb und den influxdb2-cli auf einem Debian 11-Server installiert. Außerdem hast du die influxdb-Installation mit SSL/TLS-Zertifikaten gesichert und den influxdb-Server über die influxdb2-cli-Befehlszeile „influx“ konfiguriert.

Außerdem hast du telegraf installiert und konfiguriert, um Metriken zu sammeln und über eine sichere SSL/TLS-Verbindung an den influxdb-Server zu senden. Und schließlich hast du ein Dashboard für die Systemüberwachung über den influxdb-Server und telegraf erstellt.

Jetzt kannst du deine Systeme und Anwendungen visualisieren und das Dashboard für die Überwachung einrichten. Du kannst auch influxdb-Aufgaben einrichten, ein Warnsystem einrichten und vieles mehr.

Das könnte dich auch interessieren …