NEWS
Test Adapter ioBroker.backitup v3.0.x
-
Hallo,
ich kann derzeit mit der 2.8.7 keine Backups meiner InfluxDB 2.7 Instanz (beide laufen in Docker Containern) erstellen. Die entsprechende Checkbox im BackItUp ist ausgegraut. Dies hat früher funktioniert.
So ganz falsch kann meine Influx / IOBroker Konfiguration nicht aufgesetzt sein, denn von Hand kann ich aus dem Influx Container heraus ein remote Backup machen:
influx backup --org xyz --host http://192.168.0.4:8086 --token abc "/opt/iobroker/backups/testflux/"
funktioniert und läuft ohne Fehler durch. Das wäre meinem Verständnis nach das, was BackItUp auch aufrufen würde.Auch die entsprechenden Environments für den IOBroker Container habe ich gesetzt:
- IOB_BACKITUP_EXTDB = true
- PACKAGES = influxdb2-cliDas Problem ist wie folgt aufgetaucht:
Ich habe heute morgen bemerkt, dass ich nach der Umstellung von InfluxDB 1.8 auf 2.7 vor ein paar Monaten im Influx Adapter von IOBroker noch die Version 1.x eingetragen hatte. Das hat monatelang keine offensichtlichen Probleme bereitet, aber seit ein paar Tagen gab es beim Schreiben einiger Werte in die Datenbank Fehlermeldungen. Den Eintrag im Influx Adapter habe ich heute morgen korrigiert, damit sind auch die Fehlermeldungen verschwunden.
Leider ist damit aber auch der Influx Reiter im BackItUp Adapter verschwunden (der war gestern noch da. Die Influx Backups gingen ja auch früher).Da die Backups von Hand funktionieren, hat jemand eine Idee, wie den entsprechenden Reiter im BackItUp wieder sichtbar machen kann?
-
@hansjochen sagte in Test Adapter ioBroker.backitup v2.8.x:
Auch die entsprechenden Environments für den IOBroker Container habe ich gesetzt:
- IOB_BACKITUP_EXTDB = true
- PACKAGES = influxdb2-cli
Zeig mal bitte das Docker Log, was beim Start des ioBroker geschrieben wird. Da kann man gut sehen, welche Umgebungsvariablen effektiv im Container ankommen.
Ich habe heute morgen bemerkt, dass ich nach der Umstellung von InfluxDB 1.8 auf 2.7 vor ein paar Monaten im Influx Adapter von IOBroker noch die Version 1.x eingetragen hatte. Das hat monatelang keine offensichtlichen Probleme bereitet, aber seit ein paar Tagen gab es beim Schreiben einiger Werte in die Datenbank Fehlermeldungen.
Ich kann mir beim besten Willen nicht vorstellen, wie das funktioniert haben soll. Wenn der Adapter auf 1.x eingestellt ist, kannst du keine Organisation und Token eingeben. Ohne diese Infos kann der Adapter aber unmöglich eine Verbindung zu einer 2.x DB aufgebaut haben.
Was für Fehlermeldungen erschienen da?Und zeig mal bitte noch die Adapter-Einstellungen.
-
Hallo @marc-berg ,
danke für Deine Unterstützung.
Aktuell läuft Influx sauber in IOBroker. Hier der Auszug aus dem Start Log:
2023-11-05 11:01:46.458 - [32minfo[39m: host.iobroker instance system.adapter.influxdb.0 started with pid 18879 2023-11-05 11:01:47.807 - [32minfo[39m: influxdb.0 (18879) starting. Version 3.2.0 in /opt/iobroker/node_modules/iobroker.influxdb, node: v16.20.2, js-controller: 5.0.12 2023-11-05 11:01:47.831 - [32minfo[39m: influxdb.0 (18879) No stored data from last exit found 2023-11-05 11:01:47.833 - [32minfo[39m: influxdb.0 (18879) Connecting http://192.168.0.4:8086/ ... 2023-11-05 11:01:47.833 - [32minfo[39m: influxdb.0 (18879) Influx DB Version used: 2.x 2023-11-05 11:01:47.875 - [32minfo[39m: influxdb.0 (18879) Applying retention policy for iobroker to 31536000 seconds. Shard Group Duration (calculated): 604800 seconds 2023-11-05 11:01:47.921 - [32minfo[39m: influxdb.0 (18879) Connected!
Ich visualisiere ja auch eine ganze Menge Werte über Grafana und das sieht alles sauber aus. Meine Adapter Konfiguration ist diese
Zur Historie: Nach dem Update meines Containers hatte ich vermutlich vergessen, den Eintrag in der Adapter Konfiguration zu ändern. Mich hat ja auch gewundert, dass das trotzdem problemlos lief. Organisation und Token hatte ich im IOBroker InfluxDB Adapter auch erst nach der Umstellung heute morgen eingegeben. Davor konnte ich aber offenbar über die alten 1.8 Verbindungsdaten immer noch Werte in die Datenbank schreiben. Meine Charts in Grafana funktionieren nahtlos seit Jahren über die Umstellung von heute morgen hinweg.
Im Docker Log sehe ich keine Umgebungsvariablen. Hier der Auszug, den ich über
sudo docker logs iobroker 2&>1 meinDocker.log
erstellt habe vom Start gestern morgen.
(Die Umgebungsvariablen hatte ich schon vor Monaten gesetzt. BackItUp hatte früher damit auch funktioniert. Jetzt kann ich nicht neu starten, sonst geht die Heizung aus).
-------------------------------------------------------------------------------- ------------------------- 2023-11-04 07:57:33 ------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----- Welcome to your ioBroker-container! ----- ----- Startupscript is now running. ----- ----- Please be patient! ----- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----- Debugging information ----- ----- ----- ----- System ----- ----- arch: x86_64 ----- ----- hostname: iobroker ----- ----- ----- ----- Docker-Image ----- ----- image: v7.0.1 ----- ----- build: 2022-07-05T18:51:52+00:00 ----- ----- ----- ----- Versions ----- ----- node: v16.20.1 ----- ----- npm: 8.19.4 ----- ----- ----- ----- ENV ----- ----- SETGID: 1000 ----- ----- SETUID: 1000 ----- ----- USBDEVICES: /dev/ttyACM0 ----- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----- Step 1 of 5: Preparing container ----- -------------------------------------------------------------------------------- This is not the first run of this container. Skipping first run preparation. Installing additional packages is set by ENV. Checking the following Packages: ... Reading package lists... Building dependency tree... Reading state information... Reading package lists... Building dependency tree... Reading state information... 0 upgraded, 0 newly installed, 0 to remove and 45 not upgraded. Done. -------------------------------------------------------------------------------- ----- Step 2 of 5: Detecting ioBroker installation ----- -------------------------------------------------------------------------------- Existing installation of ioBroker detected in /opt/iobroker. -------------------------------------------------------------------------------- ----- Step 3 of 5: Checking ioBroker installation ----- -------------------------------------------------------------------------------- (Re)Setting folder permissions (This might take a while! Please be patient!)... Done. Fixing "sudo-bug" by replacing sudo in iobroker with gosu... Done. -------------------------------------------------------------------------------- ----- Step 4 of 5: Applying special settings ----- -------------------------------------------------------------------------------- Some adapters have special requirements/ settings which can be activated by the use of environment variables. For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/). Usb-device-support is activated by ENV. Setting permissions for /dev/ttyACM0... Done. Userscript for every start detected. Running userscript_everystart.sh... The plugin "sentry" was successfully disabled for host "iobroker". Done. -------------------------------------------------------------------------------- ----- Step 5 of 5: ioBroker startup ----- -------------------------------------------------------------------------------- Starting ioBroker... ================================== > LOG REDIRECT system.adapter.admin.0 => true [starting] ================================== > LOG REDIRECT system.adapter.jarvis.0 => true [starting] host.iobroker check instance "system.adapter.admin.0" for host "iobroker" host.iobroker check instance "system.adapter.email.0" for host "iobroker" host.iobroker check instance "system.adapter.influxdb.0" for host "iobroker" host.iobroker check instance "system.adapter.javascript.0" for host "iobroker" host.iobroker check instance "system.adapter.fritzbox.0" for host "iobroker" host.iobroker check instance "system.adapter.ical.0" for host "iobroker" host.iobroker check instance "system.adapter.ical.1" for host "iobroker" host.iobroker check instance "system.adapter.modbus.0" for host "iobroker" host.iobroker check instance "system.adapter.mqtt-client.0" for host "iobroker" host.iobroker check instance "system.adapter.mqtt.0" for host "iobroker" host.iobroker check instance "system.adapter.mqtt.1" for host "iobroker" host.iobroker check instance "system.adapter.mqtt.2" for host "iobroker" host.iobroker check instance "system.adapter.shelly.0" for host "iobroker" host.iobroker check instance "system.adapter.tvspielfilm.0" for host "iobroker" host.iobroker check instance "system.adapter.zigbee.0" for host "iobroker" host.iobroker check instance "system.adapter.modbus.1" for host "iobroker" host.iobroker check instance "system.adapter.melcloud.0" for host "iobroker" host.iobroker check instance "system.adapter.discovery.0" for host "iobroker" host.iobroker check instance "system.adapter.backitup.0" for host "iobroker" host.iobroker check instance "system.adapter.awattar.0" for host "iobroker" host.iobroker check instance "system.adapter.daswetter.0" for host "iobroker" host.iobroker check instance "system.adapter.dwd.0" for host "iobroker" host.iobroker check instance "system.adapter.exchangerates.0" for host "iobroker" host.iobroker check instance "system.adapter.feiertage.0" for host "iobroker" host.iobroker check instance "system.adapter.fritzdect.0" for host "iobroker" host.iobroker check instance "system.adapter.fullcalendar.0" for host "iobroker" host.iobroker check instance "system.adapter.heizoel.0" for host "iobroker" host.iobroker check instance "system.adapter.homeconnect.0" for host "iobroker" host.iobroker check instance "system.adapter.jarvis.0" for host "iobroker" host.iobroker check instance "system.adapter.klf200.0" for host "iobroker" host.iobroker check instance "system.adapter.openligadb.0" for host "iobroker" host.iobroker check instance "system.adapter.parser.0" for host "iobroker" host.iobroker check instance "system.adapter.sayit.0" for host "iobroker" host.iobroker check instance "system.adapter.schoolfree.0" for host "iobroker" host.iobroker check instance "system.adapter.senec.0" for host "iobroker" host.iobroker check instance "system.adapter.solaredge.0" for host "iobroker" host.iobroker check instance "system.adapter.tankerkoenig.0" for host "iobroker" host.iobroker check instance "system.adapter.tibberconnect.0" for host "iobroker" host.iobroker check instance "system.adapter.trashschedule.0" for host "iobroker" host.iobroker check instance "system.adapter.tvprogram.0" for host "iobroker" host.iobroker check instance "system.adapter.vis.0" for host "iobroker" host.iobroker check instance "system.adapter.web.0" for host "iobroker" host.iobroker check instance "system.adapter.webuntis.0" for host "iobroker" host.iobroker check instance "system.adapter.bluelink.0" for host "iobroker" host.iobroker check instance "system.adapter.renault.0" for host "iobroker" host.iobroker check instance "system.adapter.tibberlink.0" for host "iobroker" host.iobroker check instance "system.adapter.device-reminder.0" for host "iobroker" ================================== > LOG REDIRECT system.adapter.admin.0 => true [system.adapter.admin.0.logging] ================================== > LOG REDIRECT system.adapter.jarvis.0 => true [system.adapter.jarvis.0.logging]
Seit 3 Tagen hatte ich bei den nächtlichen Backups diese Fehlermeldung bekommen:
BackItUp: Your backup was not completely created. Please check the errors!! influxDB: Error: Command failed: influxd backup -portable -database iobroker/autogen -host 192.168.0.4:8086 "/opt/iobroker/backups/influxDB_2023_11_04-02_40_19_backupiobroker" 2023/11/04 02:40:19 Invalid metadata blob, ensure the metadata service is running (default port 8088) backup: invalid metadata received cifs: Error: ENOENT: no such file or directory, open '/opt/iobroker/backups/influxDB_2023_11_04-02_40_19_backupiobroker.tar.gz'
Ich habe das darauf zurück geführt, dass auch im Backup Adapter noch die Influx 1.8 eingetragen war. Manuell ging dieses Kommando natürlich auch nicht, aber jetzt kann ich manuell ja wieder Backups durchführen.
-
@hansjochen Wenn du die InfluxDB 2.x nutzt, musst du dies auch in Backitup so konfigurieren.
Benutzerdaten, token etc. werden benötigt -
Darum geht es mir doch: Ich kann nicht, weil seit heute morgen das Tab ausgegraut ist:
Zuvor hatte ich es heute morgen noch gesehen.
-
@hansjochen sagte in Test Adapter ioBroker.backitup v2.8.x:
Davor konnte ich aber offenbar über die alten 1.8 Verbindungsdaten immer noch Werte in die Datenbank schreiben.
Ich kann mir immer noch kein Szenario vorstellen, wie das funktionieren sollte, aber egal.
Dein Ursprungsproblem liegt darin begründet, dass die Umgebungsvariable "IOB_BACKITUP_EXTDB" nicht im Container ankommt. Wie setzt du diese und wie sieht deine Umgebung aus?
EDIT: Außerdem könnte dein Container mal ein Update vertragen.
-
(u.a.) diese Docker Container laufen bei mir:
c389e7d91b5f influxdb:2.7-alpine "/entrypoint.sh infl…" 4 months ago Up 5 hours 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp, 0.0.0.0:8088->8088/tcp, :::8088->8088/tcp influxdb 5f33c0bcde82 buanet/iobroker "/bin/bash -c /opt/s…" 4 months ago Up 5 hours (healthy) 0.0.0.0:1882->1882/tcp, :::1882->1882/tcp, 0.0.0.0:8081-8082->8081-8082/tcp, :::8081-8082->8081-8082/tcp, 0.0.0.0:8400->8400/tcp, :::8400->8400/tcp iobroker
Ich verwende docker-compose mit dieser Konfiguration für iobroker und influx:
version: '2' services: iobroker: container_name: iobroker image: buanet/iobroker hostname: iobroker restart: unless-stopped ports: - "8081:8081" # IOBroker - "8082:8082" # Jarvis Web Port - "1882:1882" # MQTT Server des Shelly Adapters - "8400:8400" # Jarvis Socket Port volumes: - ./iobroker/data:/sharename - ./iobroker/userscripts:/opt/userscripts - /run/udev:/run/udev:ro devices: - /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2437275-if00:/dev/ttyACM0 environment: - USBDEVICES=/dev/ttyACM0 - DEVICE=/dev/ttyACM0 - IOB_BACKITUP_EXTDB = true - PACKAGES = influxdb2-cli influxdb: image: influxdb:2.7-alpine container_name: influxdb restart: unless-stopped # restart: no ports: - "8086:8086" - "8088:8088" volumes: - ./influxdb/data:/var/lib/influxdb - ./influxdb/config:/etc/influxdb - ./influxdb/bin:/root - ./influxdb/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d - ./influxdb2:/root/lib/influxdb2/data - ./influxdb2-config:/etc/influxdb2 - ./influxdb.conf:/root/influxdb/influxdb.conf environment: - INFLUXDB_ADMIN_USER=admin - INFLUXDB_ADMIN_PASSWORD=xyz - DOCKER_INFLUXDB_INIT_USERNAME=admin - DOCKER_INFLUXDB_INIT_PASSWORD=xyz - DOCKER_INFLUXDB_INIT_MODE=upgrade - DOCKER_INFLUXDB_INIT_BUCKET=xyz - DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG=/root/influxdb/influxdb.conf - DOCKER_INFLUXDB_CONFIG_PATH=/root/influxdb2/config.toml - DOCKER_INFLUXDB_BOLT_PATH=/root/influxdb2/influxdb.bolt - DOCKER_INFLUXDB_ENGINE_PATH=/root/influxdb2/engine - DOCKER_INFLUXDB_INIT_ORG=xyz #entrypoint: #- sh /entrypoint.sh
-
-
@marc-berg
Die Umgebungsvariablen kommen doch an:root@iobroker:/opt/iobroker# env IOB_BACKITUP_EXTDB = true PACKAGES = influxdb2-cli
-
@hansjochen sagte in Test Adapter ioBroker.backitup v2.8.x:
Die Umgebungsvariablen kommen doch an:
Dann wären sie dort sichtbar:
----- ENV ----- ----- SETGID: 1000 ----- ----- SETUID: 1000 ----- ----- USBDEVICES: /dev/ttyACM0 -----
Irgendwas ist hier sehr komisch. In deinem Docker-Log steht auch was von Image 7.0.1.
-
@marc-berg sagte in Test Adapter ioBroker.backitup v2.8.x:
@hansjochen sagte in Test Adapter ioBroker.backitup v2.8.x:
Die Umgebungsvariablen kommen doch an:
Dann wären sie dort sichtbar:
----- ENV ----- ----- SETGID: 1000 ----- ----- SETUID: 1000 ----- ----- USBDEVICES: /dev/ttyACM0 -----
Irgendwas ist hier sehr komisch. In deinem Docker-Log steht auch was von Image 7.0.1.
Okay, überzeugt. Ich baue das Image neu, wenn heute Abend die Heizung aus ist. Danach gebe ich Euch hier noch mal ein Update. Danke für Eure Unterstützung.
-
Die Unterstüzung für IOB_BACKITUP_EXTDB gibt es erst seit Image 7.2!!! Und für die Umgebungsvariable PACKAGES=influxdb2-cli seit 8.x
-
@hansjochen sagte in Test Adapter ioBroker.backitup v2.8.x:
@marc-berg
Die Umgebungsvariablen kommen doch an:root@iobroker:/opt/iobroker# env IOB_BACKITUP_EXTDB = true PACKAGES = influxdb2-cli
Mach mal die Leerzeichen weg. Weiß nicht ob das was bringt aber:
Dein docker-compose enthält:
environment: - USBDEVICES=/dev/ttyACM0 - DEVICE=/dev/ttyACM0 - IOB_BACKITUP_EXTDB = true - PACKAGES = influxdb2-cli
Aber laut log kommt nur USBDEVICES an. DEVICE gibt es nicht und bei den anderen beiden sind Leerzeichen drin.
-------------------------------------------------------------------------------- ----- Debugging information ----- ----- ----- ----- System ----- ----- arch: x86_64 ----- ----- hostname: iobroker ----- ----- ----- ----- Docker-Image ----- ----- image: v7.0.1 ----- ----- build: 2022-07-05T18:51:52+00:00 ----- ----- ----- ----- Versions ----- ----- node: v16.20.1 ----- ----- npm: 8.19.4 ----- ----- ----- ----- ENV ----- ----- SETGID: 1000 ----- ----- SETUID: 1000 ----- ----- USBDEVICES: /dev/ttyACM0 ----- --------------------------------------------------------------------------------
Versuch mal so:
environment: - USBDEVICES=/dev/ttyACM0 - IOB_BACKITUP_EXTDB=true - PACKAGES=influxdb2-cli
Alternativ mal sauber compose down, compose up... Damit der Container neu gebaut wird...
MfG,
André -
@andre sagte in Test Adapter ioBroker.backitup v2.8.x:
Weiß nicht ob das was bringt aber:
@HansJochen hatte (warum auch immer) das Image 7.0.1 am Start. Damit war das Setzen der Umgebungsvariablen sowieso für die Katz.
-
@marc-berg In der Tat! Das habe ich glatt überlesen, bzw. habe ich wirklich v9.0.1 gelesen, was ja aktuell wäre.
Hätte mir aber auch spätestens bei node 16 komisch vorkommen müssen. Naja, ich schiebe es mal darauf, dass heut Sonntag ist... -
Was für ein image 7.0.1 ist das denn eigentlich? Die Version bezieht sich doch auf das iobroker Image, oder? Ich habe jetzt ein docker-compose down und docker-compose up gemacht, aber es wird wieder diese Version gebaut. Die habe ich aber nirgends explizit angegeben.
Offenbar mache ich da fundamental was falsch.
Service Section sieht jetzt so aus:
services: iobroker: container_name: iobroker image: buanet/iobroker hostname: iobroker restart: unless-stopped ports: - "8081:8081" # IOBroker - "8082:8082" # Jarvis Web Port - "1882:1882" # MQTT Server des Shelly Adapters - "8400:8400" # Jarvis Socket Port volumes: - ./iobroker/data:/sharename - ./iobroker/userscripts:/opt/userscripts - /run/udev:/run/udev:ro devices: - /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2437275-if00:/dev/ttyACM0 environment: - USBDEVICES=/dev/ttyACM0 - IOB_BACKITUP_EXTDB=true - PACKAGES=influxdb2-cli
-
Alles klar, jetzt passt es. Selbst mit latest wurde bei mir 7.0.1 gebaut, warum auch immer. Ich habe jetzt explizit 8.0.0 reingeschrieben, das sieht freundlicher aus:
----- image: v8.0.0 ----- ----- build: 2023-04-07T23:45:19+00:00 ----- ----- node: v18.15.0 ----- ----- npm: 9.5.0 ----- ----- ----- ----- Environment Variables ----- ----- IOB_BACKITUP_EXTDB: true ----- ----- PACKAGES: influxdb2-cli ----- ----- SETGID: 1000 ----- ----- SETUID: 1000 ----- ----- USBDEVICES: /dev/ttyACM0 -----
-
@hansjochen
Nachlesen hilft https://hub.docker.com/r/buanet/iobroker
Stichpunktsupported tags
also eherlatest-v9
-
@hansjochen sagte in Test Adapter ioBroker.backitup v2.8.x:
ich habe jetzt ein docker-compose down und docker-compose up gemacht, aber es wird wieder diese Version gebaut.
Mit diesen Befehlen werden übrigens keine neuen Versionen heruntergeladen, sondern einfach die Container neu erstellt mit dem bereits heruntergeladenen Image (so denn das Tag noch das gleiche ist).
Du müsstest vorher noch
docker-compose pull
ausführen. In diesem Fall hätte Docker das aktuelle "latest" heruntergeladen. Das müsste im Moment die 9.0.1 sein.
-
@marc-berg und alle
vielen Dank für Eure Unterstützung. Dass es den pull braucht, wusste ich nicht. Ich habe mir gestern Abend explizit die latest-v9 gebaut. Damit lief es auf Anhieb sauber durch und auch die Backups funktionieren wieder. Da mir der docker-compose down auch die Influx und auch die Grafana DB gelöscht hat und ich die Influx danach händisch wieder hergestellt habe, bin ich dort jetzt damit am Ringen, die Verbindung zwischen den beiden wieder vernünftig hin zu bekommen. Ich schätze mal, dass da mit den Token auf Grafana-Seite etwas nicht passt. In der Diagramm Darstellung einzelner Objekte im IOBroker bekomme ich vollständige Charts auch über ein ganzes Jahr bis heute angezeigt, insofern sollte da jetzt eigentlich nichts verloren gehen. Denke, das werde ich gelöst bekommen.