4.6
(10)

InfluxDB – Alte Daten automatisch löschen

Erstellt / aktualisiert

wichtige Informationen...

Affiliate - Offenlegung

Auf meiner Seite verwende ich sogenannte Affiliate-Links, diese sind mit einem gekennzeichnet, damit du diese auch direkt erkennen kannst.
Sobald du über so einen Link das Produkt kaufen würdest, erhalte ich möglicherweise eine Provision vom jeweiligen Anbieter. Außerdem entstehen für Dich natürlich keine zusätzlichen Kosten!
Mich unterstützt du damit aber enorm und trägst dazu bei, dass es auch in Zukunft weitere Guides und Vorstellungen von mir hier geben wird.

Ich empfehle nur Tools / PlugIns / Anbieter / Produkte, hinter denen ich auch wirklich stehe, bzw. bei denen ich auch einen Mehrwert sehe.

DarkWolfCave.de ist Teilnehmer des Amazon-Partnerprogramms, das zur Bereitstellung eines Mediums für Webseiten konzipiert wurde, mittels dessen durch die Platzierung von Partner-Links zu Amazon.de Entgelte verdient werden können.


ACHTUNG! Bitte lesen!

Du benutzt das hier Gezeigte natürlich, wie immer, auf eigenes Risiko!
Ich habe alles selbst durchgeführt und mir mein System nicht zerschossen oder sonst irgendwelche negativen Auffälligkeiten bemerkt.

Aber dennoch… Backups sind immer gut….
Für WordPress-Backups am besten mit UpdraftPlus

Ich übernehme keine Haftung für Schäden jeglicher Art am System, der Hardware oder der Katze…. :-P


DarkWolfCave.de

InfluxDB – Alte Daten automatisch löschen – Retention anpassen

Deine InfluxDB wird immer größer?
Du fragst dich, wie man alte Daten automatisch löschen kann?
Und was zum Geier ist eine Retention?
Diese Fragen beantworte ich dir in diesem Artikel.

DarkWolfCave.de

InfluxDB – YouTube Video

Kurzes Tutorial wie du bei deiner InfluxDB alte Daten automatisch löschen kannst

Sie sehen gerade einen Platzhalterinhalt von Youtube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

InfluxDB – Alte Daten automatisch löschen – Vorbereitungen

Ich gehe davon aus, dass du dein InfluxDB in einem Docker Container laufen lässt. Sollte dies nicht der Fall sein, kannst du dennoch weiterlesen. Du musst dann lediglich die Docker-Befehle weglassen und direkt die influxDB Kommandos nutzen.

Weiterhin benötigst du eine SSH-Verbindung in deine InfluxDB. Entweder über Portainer – sofern du von dort die Console starten kannst, oder direkt über deinen Host mit zum Beispiel MobaXterm oder Putty.

Für die InfluxDB 2.x benötigst du auch deinen Admin-Token aus der InfluxDB Konfiguration. Du kannst diesen NICHT mehr in der Web-GUI sehen. Höchstens einen weiteren Erstellen. Solltest du ihn also vergessen haben, gibt es zwei Möglichkeiten:

  • einen ganz Neuen über die InfluxDB Web-GUI erstellen
  • aus einem Skript auslesen, sofern du so etwas bereits nutzt

Du wirst hier einen groben Überblick finden.
Allerdings biete ich dir auch noch etwas mehr Support an:

  • Du benötigst persönlichen Support
  • Du möchtest von Beginn an Unterstützung bei deinem Projekt
  • Du möchtest ein hier vorgestelltes Plugin durch mich installieren und einrichten lassen
  • Du würdest gerne ein von mir erstelltes Script etwas mehr an deine Bedürfnisse anpassen

Für diese Punkte und noch einiges mehr habe ich einen limitierten
VIP-Patreon Tarif
eingerichtet. Falls er dir dort zurzeit nicht angeboten wird,
kontaktiere mich bitte über Discord und wir finden eine Lösung!

Token für InfluxDB vergessen – Auslesen aus Telegraf

Sofern du bereits meine anderen Tutorials verfolgt hast, wirst du sicherlich auch Telegraf nutzen, um die überwachten Daten an deine InfluxDB zu senden.

In diesem Fall wirst du deinen Token dort hinterlegt haben (oder in eine .env Datei?!).
Ich gehe von einer direkten Konfiguration in der telegraf.conf Datei aus.
Mit der Hilfe von folgendem Code kannst du dir deinen Token von dort auslesen. Dazu musst du dich mit deinem Host (wo Telegraf läuft) per SSH verbinden und Folgendes eingeben:

grep token /etc/telegraf/telegraf.conf

Jetzt erhältst du eine Rückmeldung, wie zum Beispiel:

token = "hJUGFkkokKJDHU_43JJDHJOJE982m-PxHZ29dkotrt=="

Diesen jetzt notieren, speichern, PostIt erstellen, unter die Tastatur kleben, an die Pinnwand heften, in den Arm tätowieren (mhh… wäre ne Idee….) 😛

Na auf jeden Fall irgendwie speichern, da wir diesen gleich benötigen werden.
Ok, ein Tattoo wäre demnach doch nicht so perfekt…copy & paste funktioniert dabei so schlecht…

Mein Raspberry System

Da ich schon öfters gefragt wurde, was ich für meine Labor oder Produktions Umgebung so benutze, hier ein kurzer Überblick. Die SSD sowie das Gehäuse und das Adapter-Kabel wurden bereits mit mehreren Raspberry´s erfolgreich getestet, so dass ich diese Kombination bedenkenlos empfehlen kann:

Werbung

Affiliate – Links

DarkWolfCave.de ist Teilnehmer des Amazon-Partnerprogramm, das zur Bereitstellung eines Mediums für Webseiten konzipiert wurde, mittels dessen durch die Platzierung von Partner-Links zu Amazon.de Entgelte verdient werden können.

Alte Daten automatisch löschen – Was ist Retention

Stell dir vor, dass die InfluxDB wie ein digitales Tagebuch ist, in dem du verschiedene Messungen und Daten speichern kannst, zum Beispiel Temperatur, Feuchtigkeit und andere Messwerte.

Die “Retention Policy” (oder “Retention”, auf Deutsch Aufbewahrungsrichtlinie) ist im Prinzip eine Regel. Mit dieser wird bestimmt, wie lange die Einträge in deiner influxDB aufbewahrt werden sollen, bevor sie dann gelöscht werden.

Angenommen, du möchtest deine Messungen für 30 Tage behalten, dann legst du eine Retention Policy von 30 Tagen fest. Nach Ablauf dieser 30 Tage werden die ältesten Einträge in deiner Datenbank automatisch gelöscht, um Platz für die neuesten Messungen zu schaffen.

Retention Policies sind nützlich, um sicherzustellen, dass deine InfluxDB nicht mit unnötigen Daten überladen wird und du immer genügend Platz für aktuelle Informationen hast. Du kannst verschiedene Retention Policies für unterschiedliche Arten von Messungen festlegen, je nachdem, wie lange du diese Daten aufbewahren möchtest.

Seit InfluxDB 2.x gibt es hier auch Änderungen. Es gibt keine eigentlichen Policies mehr, es wird eher alles über die Buckets eingerichtet. Dennoch ist eine Mapping-Table vorhanden, in der Richtlinien wie in V1.8 hinterlegt sind. Default werden deine neu erstellten Datenbanken direkt eine “infinite” (auf deutsch: unendlich) Policy erhalten (genau genommen heißt die Policy dahinter autogen). Also deine Daten werden ohne Limit dauerhaft gespeichert.
Du kannst dir sicher vorstellen, dass je nach “Sammelwut” deine SD-Karte dann schnell an ihr Limit stoßen wird.

Retention Time bei InfluxDB 2.x schnell umstellen

Solltest du eine InfluxDB Version 2.x betreiben, kannst du die Retention Zeit – also die Zeit, nachdem deine alten Daten gelöscht werden – sehr einfach über die Web-GUI ändern.

Logge dich dazu entsprechend ein und wechsle zu “Load Data – Buckets”:

Influxdb V2.x - Buckets

Rechts siehst du jetzt alle eingerichteten Buckets und deren Retention Zeiten.
Über “Settings” kannst du diese jetzt direkt ändern:

Alte Daten automatisch löschen - Retention Time
InfluxDB 2.x Retention Time
buckets4

Einfach den entsprechenden Wert auswählen und save changes klicken, um deine alten Daten automatisch zu löschen.
In dem gezeigten Beispiel werden die Daten nur noch 30 Tage gespeichert.

Retention Time InfluxDB 2.x über die CLI umstellen

Ja es gibt auch die etwas umständlichere Methode. Aber immer gut zu wissen, wie man etwas über die CLI abfragen / ändern kann.
Nebenbei konnte ich bei mir über die WebGUI, nachdem ich eine andere Zeit eingestellt hatte, dann auch nicht mehr auf “never” zurück umstellen. Dies gelang mir nur auf folgendem Weg.

Fangen wir an uns mit dem Host zu verbinden, auf dem der InfluxDB Container läuft.
Sobald diese Verbindung steht, schauen wir uns erstmal unsere laufenden Docker-Container an:

docker ps --format "{{.ID}} : {{.Names}} : {{.Image}} : {{.State}}"

Als Ausgabe erhältst du deine Container. Suche nach deiner InfluxDB und nimm die ID am Anfang für folgenden Befehl. Hier lassen wir uns die aktuellen Buckets und Retention Policy dazu anzeigen.
Solltest du deinen ORG Namen nicht mehr wissen, kicke auf den zweiten TAB in dem Code-Highlighting Block: Du musst natürlich immer deine ContainerID und TOKEN nutzen.

docker exec -it DEINE-CONTAINER-ID influx bucket list -o DEINE-ORG -t DEIN-INFLUXDB-TOKEN
docker exec -it DEINE-CONTAINER-ID influx org list -t DEIN-INFLUXDB-TOKEN

Ein Beispiel wie eine mögliche Ausgabe aussehen könnte. Hier sieht man die ID, den Namen, die Retention-Zeit, die Shard group duration, OrganizationID und das Schema.
Für uns aktuell interessant ist lediglich der Name und die Retention-Zeit:

Docker Container

Kopiere dir die ID des Buckets, bei dem du die Retention Zeit ändern möchtest. In meinem Fall wäre es die a85194f7a89abe88.
Mit dem nächsten Befehl kannst du jetzt für diese ID entsprechend die Zeit anpassen:
–id DEINE-ID und –retention die Zeit ( z.b 14d / 30d / 0s für unendlich )

docker exec -it DEINE-CONTAINER-ID influx bucket update -t DEIN-INFLUXDB-TOKEN \
--id a85194f7a89abe88 --retention 14d 

Du erhältst nach Ausführen des Befehls direkt eine Rückmeldung mit der neuen Retention Zeit.
Das bedeutet, dass deine alten Daten automatisch außerhalb dieses Zeitraumes gelöscht werden.
In diesem Beispiel sind es 336h, was 14 Tagen entspricht:

Docker - Retention Time

Retention Policy InfluxDB 1.8 über die CLI ändern

Bei der älteren Version 1.8 verhält es sich ein wenig anders. Hier gibt es keine Buckets und wir müssen etwas anders vorgehen.
Wir starten auch hier mit einem Befehl, der uns die ID der laufenden Docker Container zurückgibt.
Suche und kopiere dir die ID von deinem influxdb(v1.8) Container:

docker ps --format "{{.ID}} : {{.Names}} : {{.Image}} : {{.State}}"

Jetzt starten wir die influxdb shell in dem Docker Container:

docker exec -it DEINE-CONTAINER-ID influx
Influxdb 1.8 - Alte Daten automatisch löschen

Prüfen wir welche Datenbanken es gibt und verbinden uns dann mit derjenigen, bei der wir die Retention Policy ändern wollen:

show databases
use NAME_DER_DATENBANK

Bevor wir jetzt wild drauflos ändern, schauen wir uns die aktuell hinterlegte Policy an:

show retention policies

In diesem Beispiel sehen wir, dass die Policy “autogen” mit einer Zeit von “0s” (also unendlich) genutzt wird und für die Datenbank als default gilt.

Erstellen wir uns einfach eine neue Policy bei der die Daten maximal 30 Tage gespeichert werden sollen. Danach prüfen wir nochmal unsere retention policies:

CREATE RETENTION POLICY "30_days" ON "NAME_DEINER_DATENBANK" DURATION 30d REPLICATION 1
show retention policies

In meinem Beispiel siehst du jetzt zwei Retention Policies. Aber nur die mit default true wird auch für die aktuelle Datenbank verwendet.
Damit unsere neu erstellte Policy jetzt auch angewendet wird, setzen wir diese als default und schauen danach erneut auf die retention policies:

ALTER RETENTION POLICY "30_days" ON "NAME_DEINER_DATENBANK" DEFAULT
show retention policies

Wie du siehst, steht bei default jetzt der Wert true hinter unserer neu angelegten Policy.
Das war es auch schon. Du kannst weitere Retention Policies mit verschiedenen Zeiten anlegen und für unterschiedliche Datenbanken verwenden. So kannst du selbst entscheiden, wann deine alten Daten automatisch gelöscht werden sollen.

Mit dem ALTER RETENTION POLICY Befehl kannst du dann zwischen den einzelnen Policies schnell umschalten, indem du die gewünschte auf “default” setzt.

Avatar-Foto

Ich bin ein 1977 geborener Technik-Nerd. Mein erster Gefährte in der digitalen Welt war ein C64, der den Grundstein für meine Leidenschaft für Technologie legte. So wurde mein Hobby zum Beruf, und ich begann eine Ausbildung zum IT-Systemelektroniker. Selbst in meiner knappen Freizeit widme ich mich weiterhin meiner Leidenschaft fürs Gaming, verschiedene Programmiersprachen und andere IT-bezogene Themen. Ansonsten mag ich Hunde und bin fasziniert von Wölfen!

Gefällt dir der Beitrag?
Hinterlasse gerne ein paar Sterne!

Wie hilfreich war dieser Beitrag für Dich?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 4.6 / 5. Anzahl Bewertungen: 10

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass der Beitrag für dich nicht hilfreich war!

Lasse uns diesen Beitrag verbessern!

Wie können wir diesen Beitrag verbessern?

Abonnieren
Benachrichtige mich bei
guest
0 Kommentare
Inline Feedbacks
Alle Kommentare anzeigen
Inhalt