Von 1.1.x auf 1.2.x umsteigen
Du nutzt den LxLogger in Version 1.1.x und möchtest auf 1.2.x umsteigen? Diese Anleitung führt dich Schritt für Schritt durch den Umstieg. Deine Datenbank mit allen bisherigen Werten nutzt du dabei weiter.
Es gibt zwei Wege, je nachdem, wie du den LxLogger bisher betreibst:
- Weg A: Docker-All-in-one-Image
6fdigital/docker-lxlogger(z. B. auf einer Synology) - Weg B: deb- oder rpm-Paket unter Linux
Was sich ändert
Abschnitt betitelt „Was sich ändert“- Ein Container wird zu drei. Das alte Image enthielt LxLogger, InfluxDB und
Grafana in einem Container. Das neue Image
ghcr.io/6fdigital/lxloggerenthält nur den LxLogger. InfluxDB und Grafana laufen als eigene Container. - Die Datenbank bleibt. Der LxLogger schreibt weiter in dieselbe Datenbank
lxlogger_<Seriennummer>, unter denselben Measurements, in das Feldvalue. - Andere Tags. Statt
monthundyearschreibt der LxLogger jetztroomundcategory. Grafana-Abfragen mitmonthoderyearmusst du anpassen (siehe Datenbank und Grafana). - Neue Konfiguration. Der bisherige
[db]-Block funktioniert weiter. Der LxLogger übersetzt ihn beim Start und gibt dazu einen Hinweis im Log aus. - Lizenz. Der LxLogger braucht jetzt einen Lizenzschlüssel.
Vorbereitung
Abschnitt betitelt „Vorbereitung“Diese Schritte gelten für beide Wege.
Lizenzschlüssel
Abschnitt betitelt „Lizenzschlüssel“Als Bestandskunde bekommst du einen kostenlosen, lebenslang gültigen
Lizenzschlüssel für die Edition, die du gekauft hast. Du findest ihn in deinem
Konto auf lxlogger.de. Er ist eine einzelne Zeile und
beginnt mit LXL1-.
Nach dem Umstieg prüfst du den Schlüssel mit:
lxlogger license verifyMehr dazu unter Lizenzierung.
Sicherung
Abschnitt betitelt „Sicherung“Sichere vor dem Umstieg deine Daten.
- Docker-All-in-one: Kopiere die drei Host-Ordner für
lxlogger,influxdbundgrafana. Auf einer Synology geht das mit Hyper Backup oder per Kopie in der File Station. Stoppe den Container vorher, damit die InfluxDB-Dateien vollständig sind (docker stop lxlogger). - deb/rpm: Sichere die Konfiguration
/usr/lib/lxlogger/.lxlogger.tomlund das Datenverzeichnis deiner InfluxDB (meist/var/lib/influxdb).
Architektur
Abschnitt betitelt „Architektur“Das neue Docker-Image gibt es für amd64 und arm64. Das alte Image lief auch auf 32-Bit-Systemen (armhf, armel). Für diese Geräte gibt es keinen direkten Umstieg per Docker.
- Läuft auf dem Gerät ein 32-Bit-Linux wie Raspberry Pi OS (armhf), nutze das deb-Paket (Weg B).
- Ältere 32-Bit-NAS werden nicht mehr unterstützt.
Deine Architektur zeigt dir uname -m: x86_64 und aarch64 werden vom
Docker-Image unterstützt.
Weg A: Docker-All-in-one → neues Image
Abschnitt betitelt „Weg A: Docker-All-in-one → neues Image“Die Messdaten liegen bereits in Ordnern auf deinem Host. Du musst also nichts aus dem Container kopieren. Die neuen Container nutzen dieselben Ordner.
Die Beispiele gehen von dieser Ordnerstruktur aus, wie sie die Anleitung des alten Images vorschlägt:
~/docker/lxlogger/├── lxlogger/ # Binary und .lxlogger.toml (alter LxLogger)├── influxdb/ # meta/, data/, wal/ (deine Messdaten)└── grafana/ # grafana.db, PluginsAuf einer Synology liegen die Ordner meist unter /volume1/docker/lxlogger/.
-
Alten Container stoppen. Stoppe den Container, lösche ihn aber nicht. Du brauchst ihn für einen möglichen Rollback.
Terminal-Fenster docker stop lxlogger -
Konfiguration kopieren. Kopiere den LxLogger-Ordner und ändere nur die Kopie. Das Original bleibt für den Rollback unverändert.
Terminal-Fenster cd ~/docker/lxloggersudo cp -a lxlogger lxlogger-1.2 -
Datenbank-Host anpassen. Öffne
lxlogger-1.2/.lxlogger.toml. Im alten Image liefen LxLogger und InfluxDB im selben Container, deshalb steht dorthost = "localhost". Im neuen Container zeigtlocalhostauf den LxLogger selbst. Trage stattdessen den Namen des InfluxDB-Containers ein:[db]host = "influxdb"port = 8086Alternativ stellst du gleich auf das neue Format um (siehe Konfiguration).
-
Backup-Ziel anpassen (nur Enterprise, wenn du
lxlogger backupnutzt). Die Vorlage enthält[backup] dest = "/tmp". Im neuen Container ist/tmpnicht dauerhaft. Lege einen eigenen Ordner an und trage ihn ein:Terminal-Fenster mkdir backup[backup]dest = "/backup" -
Lizenzschlüssel ablegen. Speichere deinen Lizenzschlüssel als Datei:
Terminal-Fenster mkdir secretsprintf '%s\n' 'LXL1-DEIN-SCHLUESSEL' > secrets/lxl_license -
Rechte für Grafana setzen. Das offizielle Grafana-Image läuft als Benutzer mit der ID
472. Die Dateien im alten Grafana-Ordner gehören aberroot. Ohne Anpassung bricht Grafana beim Start mit einem Fehler ab. Übergib den Ordner an Grafana:Terminal-Fenster sudo chown -R 472:0 grafanaAlternativ startest du Grafana als root: mit
user: "0"in Docker Compose bzw.--user 0beidocker run. Bei InfluxDB entfällt dieser Schritt, das Image läuft als root. -
Container einrichten. Das neue Setup besteht aus drei Containern:
ghcr.io/6fdigital/lxlogger– unser neues LxLogger-Imageinfluxdb:1.8.10– das offizielle InfluxDB-Image, mit deinem bisherigen Ordnerinfluxdbgrafana/grafana:9.3.2– das offizielle Grafana-Image, mit deinem bisherigen Ordnergrafana
Die drei Container laufen in einem gemeinsamen Netzwerk. Darüber erreicht der LxLogger die Datenbank unter dem Namen
influxdb. Am einfachsten richtest du alles mit Docker Compose ein. Alternativ geht es mit einzelnendocker run-Befehlen.Lege im Ordner
~/docker/lxloggerdie Dateicompose.yamlan:services:influxdb:image: influxdb:1.8.10restart: unless-stoppedvolumes:- ./influxdb:/var/lib/influxdbgrafana:image: grafana/grafana:9.3.2restart: unless-stopped# user: "0" # statt chown -R 472:0 ./grafanavolumes:- ./grafana:/var/lib/grafanaports:- "3003:3000"depends_on:- influxdblxlogger:image: ghcr.io/6fdigital/lxlogger:latestrestart: unless-stoppedcommand: ["up"]environment:LXL_LICENSE_FILE: /run/secrets/lxl_licenseLXL_MINISERVER_TIMEZONE: Europe/Berlinsecrets:- lxl_licensevolumes:- ./lxlogger-1.2/.lxlogger.toml:/etc/lxlogger/lxlogger.toml:ro- ./backup:/backup # nur mit [backup] dest = "/backup"- lxlogger-data:/var/lib/lxloggerdepends_on:- influxdbsecrets:lxl_license:file: ./secrets/lxl_licensevolumes:lxlogger-data:Lege ein gemeinsames Netzwerk an und starte InfluxDB und Grafana. Führe die Befehle im Ordner
~/docker/lxloggeraus:Terminal-Fenster cd ~/docker/lxloggerdocker network create lxlogger-netdocker run -d --name influxdb --network lxlogger-net \--restart unless-stopped \-v "$PWD/influxdb":/var/lib/influxdb \influxdb:1.8.10docker run -d --name grafana --network lxlogger-net \--restart unless-stopped \-p 3003:3000 \-v "$PWD/grafana":/var/lib/grafana \grafana/grafana:9.3.2Den LxLogger-Container startest du erst in Schritt 9, nach der Prüfung. Er bekommt den Namen
lxlogger-1.2, weil der alte Containerlxloggerfür den Rollback erhalten bleibt.Ein paar Hinweise dazu:
- Versionen fest. InfluxDB
1.8.10und Grafana9.3.2sind genau die Versionen aus dem alten Image. Ein neueres Grafana aktualisiert diegrafana.dbund lässt sich danach nicht mehr zurückstellen. Mache ein Grafana-Update deshalb später als eigenen Schritt, nach einer Sicherung. Für den LxLogger nutzt dulatest, so bekommst du über die Updates immer die aktuelle Version. - Port 3003. Grafana bleibt unter dem bisherigen Port erreichbar. So funktionieren deine Lesezeichen weiter.
- Zeitzone.
LXL_MINISERVER_TIMEZONEist die Zeitzone deines Miniservers. Sie ist für den Datenimport wichtig. - Datenpuffer. Im Volume
lxlogger-dataliegt der lokale Puffer. Er hält Werte fest, solange die Datenbank nicht erreichbar ist. - Port 8086. InfluxDB ist nur innerhalb des Netzwerks erreichbar. Brauchst
du von außen Zugriff, z. B. für
influxauf dem Host, gib den Port zusätzlich frei (-p 8086:8086bzw.portsin Compose).
-
Konfiguration prüfen.
Terminal-Fenster docker compose run --rm lxlogger checkTerminal-Fenster docker run --rm --network lxlogger-net \-v "$PWD/lxlogger-1.2/.lxlogger.toml":/etc/lxlogger/lxlogger.toml:ro \ghcr.io/6fdigital/lxlogger:latest checkDie Ausgabe endet mit:
✓ configuration valid (192.168.1.77:80)✓ Miniserver reachable (192.168.1.77:80)Davor stehen einige Warnungen. Sie sind erwartet: Der
[db]-Block ist veraltet, und Passwörter stehen im Klartext in der Konfiguration. Beides kannst du später ändern (siehe Konfiguration). -
Starten.
Terminal-Fenster docker compose up -ddocker compose logs -f lxloggerTerminal-Fenster docker run -d --name lxlogger-1.2 --network lxlogger-net \--restart unless-stopped \-e LXL_LICENSE_FILE=/run/secrets/lxl_license \-e LXL_MINISERVER_TIMEZONE=Europe/Berlin \-v "$PWD/secrets/lxl_license":/run/secrets/lxl_license:ro \-v "$PWD/lxlogger-1.2/.lxlogger.toml":/etc/lxlogger/lxlogger.toml:ro \-v "$PWD/backup":/backup \-v lxlogger-data:/var/lib/lxlogger \ghcr.io/6fdigital/lxlogger:latest updocker logs -f lxlogger-1.2Die Zeile mit
/backupbrauchst du nur mit[backup] dest = "/backup".Im Log siehst du eine Zeile
Licensed to <Kunde> (<Edition>)und kurz danach die ersten geschriebenen Werte. -
Grafana-Datenquelle umstellen. Öffne Grafana wie gewohnt unter
http://<ip>:3003und melde dich mit deinen bisherigen Zugangsdaten an (im alten Image standardmäßigroot/root). Gehe zu Configuration → Data sources und öffne deine InfluxDB-Datenquelle. Sie zeigt noch aufhttp://localhost:8086. Ändere sie so:Feld Wert HTTP → URL http://influxdb:8086HTTP → Access Server (default)InfluxDB Details → Database lxlogger_<Seriennummer>(wie bisher)Unter Access stand bisher
Browser. Diese Einstellung unterstützt Grafana nicht mehr. Klicke auf Save & test. Öffne danach ein Dashboard und prüfe, ob neue Werte ankommen.
Synology Container Manager
Abschnitt betitelt „Synology Container Manager“Auf einer Synology richtest du die Container im Container Manager als Projekt ein:
- Führe die Schritte 1–6 oben per SSH aus. Die Ordner liegen unter
/volume1/docker/lxlogger/. - Öffne den Container Manager und wechsle zu Projekt → Erstellen.
- Wähle als Pfad
/volume1/docker/lxloggerund als Quelle compose.yaml erstellen. Füge den Inhalt aus Schritt 7 ein. - Schließe den Assistenten ab. Der Container Manager startet die drei Container.
- Weiter mit Schritt 10 (Grafana-Datenquelle).
Den Befehl check aus Schritt 8 führst du per SSH im Ordner
/volume1/docker/lxlogger aus: sudo docker compose run --rm lxlogger check.
Weg B: deb/rpm → neues Paket
Abschnitt betitelt „Weg B: deb/rpm → neues Paket“Das neue Paket ersetzt die bisherige Installation. InfluxDB und Grafana laufen wie bisher als eigene Dienste weiter.
-
Konfiguration sichern.
Terminal-Fenster sudo cp /usr/lib/lxlogger/.lxlogger.toml ~/lxlogger-1.1.toml -
Paket-Repository einrichten und installieren. Folge Schritt 1 unter Installation → Linux. Das neue Paket ersetzt das alte.
Beim Update kopiert das Paket deine bisherige Konfiguration nach
/etc/lxlogger/lxlogger.toml. Eine dort schon vorhandene Datei wird nicht überschrieben. -
Lizenzschlüssel ablegen. Wie unter Installation → Linux beschrieben, nach
/etc/lxlogger/license. -
Prüfen und starten.
Terminal-Fenster sudo -u lxlogger lxlogger check --config /etc/lxlogger/lxlogger.tomlsudo systemctl restart lxloggersystemctl status lxloggerjournalctl -u lxlogger -f
Steht deine InfluxDB auf demselben Gerät, passt host = "localhost" weiterhin. Die
Grafana-Datenquelle musst du nicht ändern.
Konfiguration
Abschnitt betitelt „Konfiguration“Der LxLogger liest deine bisherige .lxlogger.toml weiter. Der [db]-Block
funktioniert ab 1.2.1 und wird beim Start in das neue Format übersetzt. Im Log
erscheint dazu eine Warnung mit einem fertigen Block zum Einfügen. Stelle bei
Gelegenheit auf das neue Format um:
[db]host = "influxdb"port = 8086username = "root"password = "root"[[sinks]]kind = "influxdb_v1"url = "http://influxdb:8086"# username und password nur, wenn in InfluxDB eine Authentifizierung# eingerichtet ist. Im alten Image war das nicht der Fall.Die übrigen Abschnitte übernimmst du unverändert:
[grafana] msmntNameTmpl: Ändere das Template nicht. Sonst schreibt der LxLogger unter neuen Measurement-Namen, und deine Panels zeigen keine neuen Werte mehr.[miniserver]: Host, Benutzer und Passwort bleiben gleich. Das Passwort übergibst du besser als Datei, z. B. perLXL_MINISERVER_PASSWORD_FILE(siehe Konfigurationsdatei → Geheimnisse).
Alle Optionen findest du unter Konfigurationsdatei.
Datenbank und Grafana
Abschnitt betitelt „Datenbank und Grafana“Deine Datenbank lxlogger_<Seriennummer> nutzt du weiter. Measurements und das
Feld value bleiben gleich. Deine Dashboards zeigen also alte und neue Werte in
einem Panel. Nur die Tags ändern sich.
Text-Werte, etwa ein Betriebsmodus als Text, schreibt der LxLogger in das eigene Feld
text, value enthält immer eine Zahl. Panels für Text-Werte legst du deshalb auf
dem Feld text an. Mehr dazu
unter Text-Werte.
Tags month und year entfallen
Abschnitt betitelt „Tags month und year entfallen“Bisher hat der LxLogger jeden Wert mit den Tags uuid, month und year
gespeichert. Jetzt schreibt er uuid, room und category. Abfragen, die nach
month oder year filtern, finden ab dem Umstieg keine neuen Werte mehr.
Nutze stattdessen den Zeitfilter von Grafana. Ein Beispiel:
-- bisherSELECT mean("value") FROM "Temperatur" WHERE "year" = '2025' AND $timeFilter GROUP BY time($__interval) fill(null)
-- neuSELECT mean("value") FROM "Temperatur" WHERE $timeFilter GROUP BY time($__interval) fill(null)Das Jahr wählst du jetzt über den Zeitraum oben rechts im Dashboard, z. B. This year oder einen eigenen Zeitraum vom 01.01. bis 31.12.
Hast du Dashboard-Variablen mit SHOW TAG VALUES WITH KEY = "year" angelegt,
entferne sie und nutze ebenfalls den Zeitraum. Die neuen Tags room und
category gibt es nur für Werte ab dem Umstieg.
Importiere keine Monate erneut, die schon in der Datenbank sind. Das gilt für Monate, die du mit 1.1.x importiert hast, und für Monate, die 1.1.x live aufgezeichnet hat. Wegen der neuen Tags speichert die Datenbank die Werte sonst doppelt.
Durch den Umstieg fehlen nur die Werte aus der Zeit, in der kein LxLogger lief. Diese Lücke kannst du schließen, indem du nur den betroffenen Zeitraum importierst. Mehr dazu unter Datenimport.
Rollback
Abschnitt betitelt „Rollback“Läuft etwas nicht wie erwartet, kehrst du zur alten Installation zurück.
Stoppe die neuen Container und starte den alten:
cd ~/docker/lxlogger
# mit Docker Composedocker compose down
# oder mit docker rundocker stop lxlogger-1.2 grafana influxdb
docker start lxloggerDer alte Container nutzt den unveränderten Ordner lxlogger. Die geänderten
Rechte im Ordner grafana stören ihn nicht.
Stelle danach in Grafana die Datenquelle zurück: HTTP → URL
http://localhost:8086. Mit http://influxdb:8086 zeigen die Panels im alten
Container keine Daten.
Installiere das alte Paket wieder und lege deine gesicherte Konfiguration zurück:
sudo apt install --allow-downgrades ./lxlogger_<edition>_linux_<arch>.debsudo cp ~/lxlogger-1.1.toml /usr/lib/lxlogger/.lxlogger.tomlsudo systemctl restart lxlogger