pixel
Select Page

So repliziert man Daten mit InfluxDB

by | May 5, 2022 | InfluxDB

Mit InfluxDB 2.0 hat influxdata einen großen Schritt gewagt und viele Neuerungen eingeführt. Hierzu gehören unter anderem die Integration von Webinterface und Task-Engine und DBMS, aber auch die neue Abfragesprache Flux. Ein paar Funktionen, die in es in InfluxDB 1.x gab, wurden zunächst jedoch noch nicht Umgesetzt. Hierzu gehörte bis jetzt das Thema Replikation.
Von Replikation spricht man, wenn Daten von einem Server automatisiert auf einen oder mehrere weitere Server kopiert werden um beispielsweise die Datensicherheit zu erhöhen oder den Zugriff zu beschleunigen.

Seit influxDB 2.2 ist Replikation als technical preview in der Open Source Version enthalten und kann schnell und einfach über das influx command line interface eingerichtet werden. Bei diesem Verfahren werden die Daten TLS gesichert an die API eines oder mehrerer InfluxDB Server gesendet. Wird die Verbindung zwischen Quell- und Zielserver unterbrochen, werden die Daten zu einem späteren Zeitpunkt übertragen.

Einrichtung

Vorab werden hierfür ein Quell-Bucket und ein Authentifizierungstoken auf Server1, und ein Ziel-Bucket plus Authentifizierungstoken auf Server2 benötigt. Bei der Gelegenheit sollte man sich auch schon einmal die Organisations-IDs und Bucket-IDs notieren

# Server 1
user@server1$ influx org ls
user@server1$ influx bucket create -n example-local-bucket
user@server1$ influx auth create ...
# Server 2
user@server2$ influx org ls
user@server2$ influx bucket create -n example-remote-bucket
user@server2$ influx auth create ...

Nach dieser Vorarbeit muss zunächst Remote-Verbindung zu Server 2 angeben werden. Diese wird dann mit im folgenden Schritt genutzt um die Replikation zu aktivieren. In einer nicht gesicherten Testumgebung können zudem die Schalter -allow-insecure-tls und –skip-verify hilfreich sein.

user@server1$ influx remote create \
--name myremote \
--org-id <org ID> \
--token <token> \
--remote-url <remote URL> \
--remote-api-token <remote token> \
--remote-org-id <remote org ID> \

user@server1$ influx replication create \
--name myreplication
--local-bucket example-local-bucket
--remote-bucket example-remote-bucket
--remote-id 0ooxX0xxXo0x

Das ganze ist auch noch weitergehend konfigurierbar, es kann z.B. die Länge des Replay-Logs oder das maximale Alter von zu replizierenden Daten geändert werden.

Weitergehende Informationen finden sich in der Influxdb-Doku:

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.
More posts on the topicInfluxDB

InfluxDB Time Series Database

In diesem Beitrag geht es um Zeitreihen-Daten (time series data) und InfluxDB (time series databases).   Time Series Data Was sind eigentlich die time series data? Es gibt Programme oder Tools, die eine große Menge an Rohdaten sammeln. Diese Daten haben ein...

Grafana queries InfluxDB

Christoph hat euch ja bereits in einem früheren Blogpost vor ca. einem Jahr näher gebracht wie man Icinga 2 und InfluxDB 2 miteinander "zum Reden" bringt. Seit Icinga 2.13 steht nun auch der Influxdb2Writer zur Verfügung, welchen Afeef in seinem Blogpost benützt. Ich...

It’s just an Influx Task – Scrapers

Ein Scraper in Influx ist eine einfache Möglichkeit Performancedaten von einer Prometheus Datenquelle abzurufen. Das Prometheus Datenformat besteht aus verschiedenen Typen von Metriken, die in Plain-Text über http von einem Agenten oder einer Software angeboten...

Icinga 2 mit InfluxDB 2

Die Überwachung von Infrastruktur und Software ist eine grundlegende Sache in der IT. Beim Monitoring spielt aber nicht nur der Status und die Benachrichtigung der zu überwachenden Objekte eine wesentliche Rolle, sondern auch die Aufbewahrung und die nachträgliche...