Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
 

Auf einer Raspberry laufen bei mir diverse Serverdienste für mein Heimnetzwerk. U.A. läuft eine influxdb die per telegraf Daten von eine MQTT Server einliest auf dem Sensoren ihre Daten abliefern. Die Daten werden dann mit Grafana visualisiert.

Bislang war die influxql soweit ausreichend aber die Ansprüche sind gestiegen und somit muss auf influxdb V2 upgraded werden damit flux genutzt werden kann. Im Folgenden beschreibe ich wie ich meinen Server von influxdb auf influxdb v2 upgraded habe ohne Daten zu verlieren.

Zuerst habe ich ein neues RaspianOS aufgesetzt und influxdb2, telegraf und Grafana installiert um mich mit der neuen Version etwas vertraut zu machen. influxdb v2 hat ein Webfrontend um sich die Daten anzusehen. Die flux Queries kann man dann sehr schön ins Grafana kopieren wenn man im Grafana als Datasource inflxudb mit flux gewählt hat statt influxql.

Dann habe ich den Server mit raspiBackup gesichert und auf einem anderen SD Karte restored. Danach auf einer weiteren Raspberry gestartet - aber ohne Netzwerkzugriff denn ansonsten gibt es Kuddelmuddel da der Server als Clone mit derselben IP startet wie auch diverse Services startet die mit den aktiv laufenden Services kollidieren und Probleme im Heimnetzwerk verursachen. Konkret musste ich folgende Dienste für den Upgrade ausschalten die natürlich später nach dem Upgrade wieder eingeschaltet werden müssen.

- nodered

- ism7mqtt

- cron

Der Befehl dazu: sudo systemctl disable <name>.service>

Weiterhin musste die statische IP auf DHCP umgestellt wie auch der Hostname geändert werden. Danach konnte das System wieder ans Netz angeschlossn werden um mit dem Upgrade zu beginnen.

Der Hostname wurrd mit sudo raspi-config geändert und die IP Konfiguration mit sudo nmtui

 

Nach dem Starten des geclonten Servers befinden sich dort die influx Daten im v1 Format. Eigentlich soll influxd upgrade auch die v1 DB auf v2 upgraden. Dabei wird unter /root ein .influxdbv2 Verzeichnis erstellt was wohl die migrierte DB enthält. Ich habe es aber nicht geschafft denn jedesmal wenn ich dann localhost:8086 - also das WebUI von influx aufgerufen hatte musste ich alles neu konfigurieren und die Werte die ich beim upgrade eingegeben habe waren nicht gesetzt.

Ich bin dann einen anderen Weg gegangen zumal ich nach erfolgreichem Upgrade noch mal alle v1 Influxdaten kopieren will. Ich habe ganz normal infludxdbv2 installiert und dann über das WebUI konfiguriert. Auf dem Originalserver habe ich die Datenbank exportiert mit

sudo influx_inspect export -datadir /root/influxdb/data/ -waldir /root/influxdb/wal/ -database telegraf -retention autogen -out /disks/silver/influx_inspect -lponly

 Je nach DB Größe dauert das schon länger. Danach habe ich die exportierten Daten auf das geclonte System geschoben und mit 

sudo influx write --bucket telegraf --file influx_inspect -o <org> -t <token>

importiert. Danach in Grafana die alte Source gelöscht und die neue mit influx statt influxql angelegt. Danach geht es daran die alten influxql Dashboards in influx zu erstellen. Mit Hilfe des influx Data Explorer kann man einfach Dashboards relativ schnell in flux erstellen ( man kann sich die vom Query Builder erstellten flux Statements ansehen und 1:1 ins Grafana kopieren. Kompliziertere Dashboards erfordern dann dass man sich in flux einarbeitet.

In dieser Zeit läuft natürlich das Datensammeln auf dem Quellserver weiter. Deshalb konfigurierte ich telegraf um um auf die Daten des mosquitto des v1 Servers zuzugreifen und somit die weiteren Daten in die influxdbv2 zu schreiben. Die Datenlücke kann man schnell auffüllen indem man nachsieht ab wann Daten fehlen und diese dann exportiert mit

sudo influx_inspect export -datadir /root/influxdb/data/ -waldir /root/influxdb/wal/ -database telegraf -retention autogen -out /disks/silver/influx_inspect_2 -lponly -start 2024-11-18T18:30:00+01

und auf der anderen Seite importiert. Somit gehen keine Daten verloren.

 

Nach erfolgreicher Erstellung der Dashboards in flux geht es ans Aktivieren des geclonten Systems mit influxdb v2.

 

0) Vollständigen export und import der Influxdaten um noch einmal alle Daten zu kopieren (dauert i.d.R. lange)

1) Importieren der letzten influx Daten vom V1 System umd den Datenausfall möglichst klein zu halten (geht i.d.R schnell)

2) DHCP Definition lassen da in der Fritzbox konfiguriert ist dass immer dieselbe IP and das System geliefert wird

3) ism7mqtt, grafana und mosquitto Services enablen (nicht starten) damit möglichst wenig Sensordaten bei der Umstellung verloren gehen

4) Hostnamen ändern (kein reboot)

5) Telegraf Target IP auf v1 System auf localhost ändern

6) Bildschirm und Tastatur an v1 System anschliessen zwecks Check und Fixen nach dem Aktivieren des v2 Systems

7) Backup des v1 System erstellen

8) v2 System stoppen, SD Karte entnehmen

9) v1 System stoppen

10) SD Karte des V2 System einstecken und booten

11) cron und nodered Services aktivieren

12) Services checken und eventuell Probleme fixen

13) Wieder statische IP definieren

 

References

Upgrade from influxdb 1.x to 2.7

Migrate timeseries data from influxdb 1.x to 2.x

Kommentar schreiben

*** Hinweis ***

Kommentare sind erwünscht. Aber um lästige Spamposts abweisen zu können gibt es ein paar Dinge die zu beachten sind:
  1. Kommentare mit dem Text http werden sofort zurückgewiesen mit der Meldung Sie sind nicht berechtigt den Tag zu verwenden. zz
  2. Kommentare werden manuell überprüft und es dauert deshalb in der Regel einen Tag bis sie veröffentlicht werden.