Ausgangssituation: influxdb wurde beendet bzw. kann nicht mehr gestartet werden.
Folgende Fehlermeldung erhaltet ihr wenn ihr genau dann versucht das Plugin erneut zu installieren bzw. eine neue Version aufzuspielen:
Die log-files unter dem Plugin sind alle grün:
Request startinfluxdb [COLOR=black][B]INFO:[/B] LoxBerry Version 2.2.1.2 ( is_raspberry.cfg )[/COLOR] [COLOR=black][B]INFO:[/B] Stats4Lox Version 0.9.7[/COLOR] [COLOR=black][B]INFO:[/B] Loglevel: 7[/COLOR] [COLOR=green][B]OK:[/B][/COLOR] Parameters ok - responding with HTTP 200
Request servicestatus [COLOR=black][B]INFO:[/B] LoxBerry Version 2.2.1.2 ( is_raspberry.cfg )[/COLOR] [COLOR=black][B]INFO:[/B] Stats4Lox Version 0.9.7[/COLOR] [COLOR=black][B]INFO:[/B] Loglevel: 7[/COLOR] [COLOR=green][B]OK:[/B][/COLOR] Parameters ok - responding with HTTP 200
Ursache: Der USB-Stick auf dem sich die Influx-Daten befinden ist nicht mehr gemounted.
Mein USB-Stick war mit ext4 formatiert und konnte nicht mal mehr als read-only gemounted werden.
mount /dev/sda1 /media/usb mount: /dev/sda1 is write-protected, mounting read-only mont: cannot mount /dev/sda1 read-only
Ein weiteres Indiz ist wenn ihr in der Konsole diesen Befehl ausführt
su - sudo -u influxdb -g influxdb /usr/bin/influxd -config /etc/influxdb/influxdb.conf
und eine ähnliche Rückmeldung erhaltet:
loxberry@loxberry:~# su - root@loxberry:~# sudo -u influxdb -g influxdb /usr/bin/influxd -config /etc/influxdb/influxdb.conf 8888888 .d888 888 8888888b. 888888b. 888 d88P" 888 888 "Y88b 888 "88b 888 888 888 888 888 888 .88P 888 88888b. 888888 888 888 888 888 888 888 888 8888888K. 888 888 "88b 888 888 888 888 Y8bd8P' 888 888 888 "Y88b 888 888 888 888 888 888 888 X88K 888 888 888 888 888 888 888 888 888 Y88b 888 .d8""8b. 888 .d88P 888 d88P 8888888 888 888 888 888 "Y88888 888 888 8888888P" 8888888P" 2022-10-30T11:18:33.403219Z info InfluxDB starting {"log_id": "0dr9g4jl000", "version": "1.8.10", "branch": "1.8", "commit": "688e697c51fd"} 2022-10-30T11:18:33.403320Z info Go runtime {"log_id": "0dr9g4jl000", "version": "go1.13.8", "maxprocs": 4} 2022-10-30T11:18:33.506631Z info Using data dir {"log_id": "0dr9g4jl000", "service": "store", "path": "/opt/loxberry/system/storage/usb/Stick8GB/influxdb/data"} 2022-10-30T11:18:33.506801Z info Compaction settings {"log_id": "0dr9g4jl000", "service": "store", "max_concurrent_compactions": 1, "throughput_bytes_per_second": 50331648, "throughput_bytes_per_second_burst": 50331648} 2022-10-30T11:18:33.506890Z info Open store (start) {"log_id": "0dr9g4jl000", "service": "store", "trace_id": "0dr9g58W000", "op_name": "tsdb_open", "op_event": "start"} 2022-10-30T11:18:33.507665Z error Unable to open series file {"log_id": "0dr9g4jl000", "path": "/opt/loxberry/system/storage/usb/Stick8GB/influxdb/data/_internal/_series", "partition": 0, "error": "open /opt/loxberry/system/storage/usb/Stick8GB/influxdb/data/_internal/_series/00/0000: permission denied"} 2022-10-30T11:18:33.507774Z info Open store (end) {"log_id": "0dr9g4jl000", "service": "store", "trace_id": "0dr9g58W000", "op_name": "tsdb_open", "op_event": "end", "op_elapsed": "0.890ms"} run: open server: open tsdb store: open /opt/loxberry/system/storage/usb/Stick8GB/influxdb/data/_internal/_series/00/0000: permission denied root@loxberry:~#
Datenrettung:
Meldet euch über die Konsole (z.B. mit Putty) an eurem LoxBerry an. Wenn ihr auch einen anderen Linux-Rechner oder Raspberry zur Verfügung habt, könnt ihr die folgenden Schritte auch von dort ausführen.
Allse folgenden Schritte müssen als Superuser "root" ausgeführt werden. Ihr könnt zu root werden, indem ihr su -
gefolgt von dem Root-Passwort eingebt.
Festestellen wie der Stick eingebunden ist:
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 1 1.9G 0 disk └─sda1 8:1 1 1.9G 0 part /media/usb/Stick8GB mmcblk0 179:0 0 14.9G 0 disk ├─mmcblk0p1 179:1 0 41.5M 0 part /boot └─mmcblk0p2 179:2 0 14.8G 0 part / zram0 254:0 0 415M 0 disk /opt/loxberry/log/ramlog
Laufwerk mounten auf dem die Daten gesichert werden sollen:
mount -t cifs -o vers=2.0,username=[user],password=[pwd] //[Server]/[Verzeichnis] /media/Sicherung
Fall noch nicht vorhanden sind diese Pakete noch zu installieren
apt install gddrescue apt install cifs-utils
Image des fehlerhaften USB-Stick erstellen (sicher ist sicher)
ddrescue --sparse /dev/sda1 /media/Sicherung/sda1.img mapfile
Zugriff auf den USB-Stick herstellen:
mount -o ro,noload /dev/sda1 /media/usb
Versuchen die einzelnen Dateien in das Sicherungs-Laufwerk zu überspielen:
rsync -av /media/usb /media/Sicherung/rettung
Alten USB-Stick abmelden:
umount /dev/sda1
Jetzt könnt ihr den alten USB-Stick vernichten.
Daten neu aufspielen
Neuen USB-Stick einstecken, festestellen wie der Stick eingebunden ist:
lsblk
USB-Stick formatieren:
mkfs.ext4 /dev/sda1
Wenn ihr wollt könnt ihr noch ein Label für euren USB-Stick vergeben:
e2label /dev/sda1 "Stick2GB"
USB-Stick mounten:
mkdir -p /media/usb/tempmount mount -t ext4 /dev/sda1 /media/usb/tempmount
Jetzt könnt ihr die Dateien vom Sicherungslaufwerk wieder auf den USB-Stick kopieren:
cp -ar /media/Sicherung/rettung/usb/influxdb/ /media/usb/tempmount
Dateirechte anpassen:
chown -R influxdb:influxdb /media/usb/tempmount/influxdb/
Oder wenn ihr auf dem LB unterwegs seid:
chown -R influxdb:influxdb /opt/loxberry/system/storage/usb/Stick2GB/influxdb/
USB-Stick abmelden:
umount /dev/sda1
USB-Stick abziehen und am LoxBerry anstecken. Im USB Widget schauen, ob er erkannt wurde und unter welchem Pfad er eingebunden wurde.
Im Plugin unter “Inputs / Outputs” bei “Influx Database Configuration” die Einstellung anpassen (korrekten neuen Pfad eingeben). Nach “Save and Apply” sollte sich der Dienst wieder starten lassen.
Nachdem alle Schritte durchgeführt wurden solltet eure Ausgabe nun so aussehen
loxberry@loxberry:~# su - root@loxberry:~# sudo -u influxdb -g influxdb /usr/bin/influxd -config /etc/influxdb/influxdb.conf 8888888 .d888 888 8888888b. 888888b. 888 d88P" 888 888 "Y88b 888 "88b 888 888 888 888 888 888 .88P 888 88888b. 888888 888 888 888 888 888 888 888 8888888K. 888 888 "88b 888 888 888 888 Y8bd8P' 888 888 888 "Y88b 888 888 888 888 888 888 888 X88K 888 888 888 888 888 888 888 888 888 Y88b 888 .d8""8b. 888 .d88P 888 d88P 8888888 888 888 888 888 "Y88888 888 888 8888888P" 8888888P" 2022-10-30T17:53:25.710729Z info InfluxDB starting {"log_id": "0drWH8oW000", "version": "1.8.10", "branch": "1.8", "commit": "688e697c51fd"} 2022-10-30T17:53:25.711161Z info Go runtime {"log_id": "0drWH8oW000", "version": "go1.13.8", "maxprocs": 4} run: open server: listen: listen tcp 127.0.0.1:8088: bind: address already in use root@loxberry:~#
Ich wünsche euch viel Erfolg!