NEWS
BackItUp für InfluxDB
-
@mike-hellracer sagte in BackItUp für InfluxDB:
Error: failed to backup metadata: failed to download metadata snapshot: 401 Unauthorized: read:authorizations is unauthorized
Nein, das hat mit Container nichts zu tun. Hier ist der Token falsch. Hast du alles doppelt gecheckt? Kannst du denn den Befehl 1:1 auf der physikalischen Instanz ausführen?
-
@marc-berg
nein, da bekomme ich denselben Fehler.
habe jetzt ein neues Token erstellt.
selbes Ergebnis.
Was kann ich noch tun? -
@mike-hellracer sagte in BackItUp für InfluxDB:
nein, da bekomme ich denselben Fehler.
habe jetzt ein neues Token erstellt.
selbes Ergebnis.
Was kann ich noch tun?Jegliche Tokens, die über die Oberfläche erstellt werden, haben nicht die ausreichenden Berechtigungen.
https://forum.iobroker.net/post/1006699
https://forum.iobroker.net/post/1006158 -
@marc-berg
super, das war es. Danke
Kann ich den Token über die Environment Variable ändern?
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN -
@mike-hellracer sagte in BackItUp für InfluxDB:
Kann ich den Token über die Environment Variable ändern?
DOCKER_INFLUXDB_INIT_ADMIN_TOKENDiese Variable greift nur beim ersten Start der InfluxDB, deshalb auch "INIT". So kann man einen benutzerdefinierten Admin-Token generieren.
Also: nein, ändern geht nicht.
-
Das Backup meiner InfluxDB Buckets schlägt fehl:
Wenn ich das command manuell in der shell ausführe, funktioniert es aber:
Ich habe TLS aktiviert und auch die entsprechenden Anpassungen (url in der ~/.influxdbv2/configs) vorgenommen. Der Token ist auch der root-Token, auch wenn ich davon ausgegangen wäre, dass ein nachträglich erstellter "all-access-token" eigentlich auch Access für die Erstellung der Backups haben sollte..?! Aber es muss anscheinend der root-Token von der initialen Installation sein.
Warum funktioniert es manuell, aber nicht im automatischen Backup-Prozess?
-
@fnolting sagte in BackItUp für InfluxDB:
Warum funktioniert es manuell, aber nicht im automatischen Backup-Prozess?
Bitte keine (abgeschnittenen) Bilder, sondern den kompletten Text in Code Tags posten.
-
@fnolting Bitte zeige deine Settings als JSON von Backitup
-
{ "_id": "system.adapter.backitup.0", "type": "instance", "common": { "name": "backitup", "version": "2.9.8", "title": "BackItUp", "authors": [ "simatec <backitup@simateccloud.de>", "bluefox <dogafox@gmail.com>" ], "osDependencies": { "linux": [ "cifs-utils", "nfs-common" ] }, "docs": { "en": "docs/en/backitup.md", "de": "docs/de/backitup.md" }, "platform": "Javascript/Node.js", "mode": "daemon", "compact": true, "icon": "backitup.png", "materialize": true, "messagebox": true, "stopBeforeUpdate": true, "connectionType": "local", "dataSource": "assumption", "materializeTab": true, "adminTab": { "name": { "en": "Backup", "de": "Backup", "ru": "Назад", "pt": "Backup", "nl": "Versterking", "fr": "Sauvegarde", "it": "Backup", "es": "Copia de seguridad", "pl": "Backup", "uk": "Зареєструватися", "zh-cn": "包装" }, "ignoreConfigUpdate": true, "singleton": false, "fa-icon": "</i><img style='width:24px;margin-bottom:-6px;' src='/adapter/backitup/backitup.svg'><i>" }, "dependencies": [ { "js-controller": ">=4.0.0" } ], "globalDependencies": [ { "admin": ">=6.0.0" } ], "adminUI": { "config": "materialize", "tab": "materialize" }, "enabled": true, "extIcon": "https://raw.githubusercontent.com/simatec/ioBroker.backitup/master/admin/backitup.png", "keywords": [ "Backup", "IoBroker", "Homematic" ], "readme": "https://github.com/simatec/ioBroker.backitup/blob/master/README.md", "loglevel": "info", "type": "general", "license": "MIT", "plugins": { "sentry": { "dsn": "https://e8510540c3a343aa8ce5678a4b3c8107@sentry.iobroker.net/36" } }, "messages": [ { "condition": { "operand": "and", "rules": [ "oldVersion<2.9.0", "newVersion>=2.9.0" ] }, "title": { "en": "Changes for CIFS under Node 20.x.x", "de": "Änderungen für CIFS unter Node 20.x.x", "ru": "Изменения для CIFS под Node 20.x.x", "pt": "Alterações para CIFS em Node 20.x.x", "nl": "Veranderingen voor CIFS onder Node 20.x", "fr": "Changements pour le CIFS sous le no 20.x.x", "it": "Modifiche per CIFS sotto Node 20.x.x", "es": "Cambios para CIFS bajo Nodo 20.x.x", "pl": "Zmiany dla CIFS pod numerem 20.x", "uk": "Зміни для CIFS під Node 20.x.x", "zh-cn": "第20.x号CIFS的变动" }, "text": { "en": "FritzNAS users must enable the \"Cache Loose\" option in the Backitup settings for proper CIFS function under Node 20. Without this option, no backup can be written to the FritzNAS.", "de": "FritzNAS-Benutzer müssen die Option \"Cache Loose\" in den Backitup-Einstellungen für die richtige CIFS-Funktion unter Node 20 aktivieren. Ohne diese Option kann kein Backup auf das FritzNAS geschrieben werden.", "ru": "Пользователи FritzNAS должны включить опцию \"Cache Loose\" в настройках Backitup для правильной функции CIFS под Node 20. Без этого варианта резервное копирование не может быть написано на FritzNAS.", "pt": "Os usuários do FritzNAS devem ativar a opção \"Cache Loose\" nas configurações do Backitup para a função CIFS apropriada sob o Node 20. Sem esta opção, nenhum backup pode ser escrito para o FritzNAS.", "nl": "FritzNAS gebruikers moeten de \"Cache Loose\" optie in de Backitup settings voor goede CIFS-functies onder de 20. Zonder deze optie kan er geen back-up geschreven worden aan de FritzNAS.", "fr": "Les utilisateurs de FritzNAS doivent activer l'option \"Cache Loose\" dans les paramètres de sauvegarde de la fonction CIFS appropriée sous le numéro 20. Sans cette option, aucune sauvegarde ne peut être écrite au FritzNAS.", "it": "Gli utenti di FritzNAS devono abilitare l'opzione \"Cache Loose\" nelle impostazioni di Backitup per una corretta funzione CIFS sotto Node 20. Senza questa opzione, nessun backup può essere scritto al FritzNAS.", "es": "Los usuarios de FritzNAS deben habilitar la opción \"Cache Loose\" en la configuración de Backitup para la función apropiada de CIFS bajo Nodo 20. Sin esta opción, no se puede escribir copia de seguridad al FritzNAS.", "pl": "Użytkownicy FritzNAS muszą umożliwić opcję „Cache Loose” w ustawieniach Backitup dla funkcji CIFS. Bez tej opcji nie można pisać FritzNAS.", "uk": "Користувачі FritzNAS повинні увімкнути параметр \"Cache Loose\" у налаштуваннях Backitup для коректної функції CIFS під Node 20. Без цього варіанту не можна писати на ФрицНАС.", "zh-cn": "FritzNAS用户必须能够使Backitup环境中的“Cache Loose”方案能够正常的CIFS功能。 没有这种选择,就不能向弗朗西斯·弗朗索瓦斯写回来。." }, "level": "warn", "buttons": [ "agree", "cancel" ] } ], "installedVersion": "2.9.8", "host": "hyperion" }, "native": { "minimalEnabled": true, "minimalTime": "02:48", "minimalEveryXDays": "1", "minimalDeleteAfter": "3", "minimalNameSuffix": "", "redisMinimalEnabled": false, "mysqlMinimalEnabled": false, "mysqlQuick": false, "mysqlSingleTransaction": false, "ccuEnabled": false, "ccuTime": "01:36", "ccuEveryXDays": "3", "ccuDeleteAfter": "10", "ccuNameSuffix": "", "ccuHost": "", "ccuUser": "Admin", "ccuPassword": "", "ccuMulti": false, "ccuEvents": [], "ccuUsehttps": false, "ccuSignedCertificates": true, "webdavEnabled": true, "webdavUsername": "fnolting", "webdavPassword": "***", "webdavURL": "https://cloud.***.de/remote.php/dav/files/fnolting/", "webdavDeleteOldBackup": false, "webdavOwnDir": false, "webdavMinimalDir": "/backupDir/iobroker", "webdavCcuDir": "/backupDir/ccu", "webdavDir": "/iobroker-backup", "webdavSignedCertificates": false, "dropboxEnabled": false, "dropboxAccessToken": "", "dropboxAccessJson": "", "dropboxTokenType": "custom", "dropboxCodeChallenge": "", "dropboxDeleteOldBackup": false, "dropboxOwnDir": false, "dropboxMinimalDir": "/backupDir/iobroker", "dropboxCcuDir": "/backupDir/ccu", "dropboxDir": "/backupDir", "onedriveEnabled": false, "onedriveAccessJson": "", "onedriveLastTokenRenew": "", "onedriveDeleteOldBackup": false, "onedriveOwnDir": false, "onedriveMinimalDir": "backupDir/iobroker", "onedriveCcuDir": "backupDir/ccu", "onedriveDir": "backupDir", "googledriveEnabled": false, "googledriveAccessTokens": "", "googledriveDeleteOldBackup": false, "googledriveOwnDir": false, "googledriveMinimalDir": "/backupDir/iobroker", "googledriveCcuDir": "/backupDir/ccu", "googledriveDir": "/backupDir", "mySqlEnabled": false, "mySqlHost": "localhost", "mySqlPort": "3306", "mySqlName": "iobroker", "mySqlUser": "", "mySqlPassword": "", "mySqlDeleteAfter": 5, "mySqlDumpExe": "", "mySqlMulti": false, "mySqlEvents": [], "influxDBEnabled": true, "influxDBHost": "home.***.de", "influxDBPort": "8086", "influxDBName": "rpi", "influxDBDumpExe": "", "influxDBDeleteAfter": 5, "influxDBType": "local", "influxDBToken": "XXB7fP-***Ffdw==", "influxDBVersion": "2.x", "influxDBProtocol": "https", "influxDBMulti": true, "influxDBEvents": [ { "host": "", "port": "8086", "dbName": "rpi", "nameSuffix": "rpi", "token": "XXB7fP-***Ffdw==", "protocol": "https", "dbversion": "2.x" }, { "host": "", "port": "8086", "dbName": "battery", "nameSuffix": "battery", "token": "XXB7fP-***Ffdw==", "protocol": "https", "dbversion": "2.x" }, { "host": "", "port": "8086", "dbName": "grid", "nameSuffix": "grid", "token": "XXB7fP-***Ffdw==", "protocol": "https", "dbversion": "2.x" }, { "host": "", "port": "8086", "dbName": "solar", "nameSuffix": "solar", "token": "XXB7fP-***Ffdw==", "protocol": "https", "dbversion": "2.x" }, { "host": "", "port": "8086", "dbName": "solar.forecast", "nameSuffix": "solar.forecast", "token": "XXB7fP-***Ffdw==", "protocol": "https", "dbversion": "2.x" }, { "host": "", "port": "8086", "dbName": "weather.current", "nameSuffix": "weather.current", "token": "XXB7fP-***Ffdw==", "protocol": "https", "dbversion": "2.x" }, { "host": "", "port": "8086", "dbName": "weather.forecast", "nameSuffix": "weather.forecast", "token": "XXB7fP-***Ffdw==", "protocol": "https", "dbversion": "2.x" } ], "deleteOldDataBase": false, "grafanaEnabled": true, "grafanaHost": "home.florian-nolting.de", "grafanaPort": "8445", "grafanaUsername": "fnolting", "grafanaPassword": "\"gD\b^X\u0001\u0004\u0004\u0000sXB", "grafanaApiKey": "glsa_xYZKYD7KiAzLdlqcf5FXXwdkuojPtWnA_9560ff70", "grafanaProtocol": "https", "grafanaSignedCertificates": true, "pgSqlHost": "", "pgSqlPort": "5432", "pgSqlName": "", "pgSqlUser": "", "pgSqlPassword": "", "pgSqlDeleteAfter": 5, "pgSqlDumpExe": "", "pgSqlEnabled": false, "pgSqlMulti": false, "pgSqlEvents": [], "cifsEnabled": false, "cifsMount": "", "cifsUser": "", "cifsPassword": "", "cifsOwnDir": false, "cifsDomain": "", "cifsDir": "sharename/backupDir", "cifsCcuDir": "sharename/backupDir", "cifsMinimalDir": "sharename/backupDir", "cifsDeleteOldBackup": false, "connectType": "NFS", "smbType": "vers=3.1.1", "sudoMount": true, "noserverino": false, "cacheLoose": false, "wakeOnLAN": false, "macAd": "20:DE:20:DE:20:DE", "wolWait": "25", "wolPort": "9", "wolExtra": false, "ftpEnabled": false, "ftpHost": "", "ftpPort": "21", "ftpSecure": false, "ftpSignedCertificates": true, "ftpDir": "/backupDir", "ftpUser": "", "ftpPassword": "", "ftpOwnDir": false, "ftpCcuDir": "/backupDir/ccu", "ftpMinimalDir": "/backupDir/iobroker", "ftpDeleteOldBackup": false, "redisEnabled": false, "redisPath": "/var/lib/redis", "redisType": "local", "redisHost": "", "redisPort": "6379", "redisUser": "", "redisPassword": "", "redisAOFactive": false, "historyEnabled": false, "historyPath": "media/usb/history", "javascriptsEnabled": false, "zigbeeEnabled": false, "esphomeEnabled": false, "yahkaEnabled": false, "jarvisEnabled": false, "notificationEnabled": false, "notificationsType": "Telegram", "telegramInstance": "", "telegramNoticeType": "longTelegramNotice", "telegramUser": "none", "telegramSilentNotice": false, "telegramOnlyError": false, "telegramWaitToSend": "0", "whatsappInstance": "", "whatsappNoticeType": "longWhatsappNotice", "whatsappOnlyError": false, "whatsappWaitToSend": "0", "gotifyInstance": "", "gotifyNoticeType": "longGotifyNotice", "gotifyOnlyError": false, "gotifyWaitToSend": "0", "signalInstance": "", "signalNoticeType": "longSignalNotice", "signalOnlyError": false, "signalWaitToSend": "0", "matrixInstance": "", "matrixNoticeType": "longMatrixNotice", "matrixOnlyError": false, "matrixWaitToSend": "0", "discordInstance": "", "discordNoticeType": null, "discordOnlyError": false, "discordWaitToSend": "0", "discordTarget": "", "pushoverInstance": "", "pushoverNoticeType": "longPushoverNotice", "pushoverSilentNotice": false, "pushoverDeviceID": "", "pushoverOnlyError": false, "pushoverWaitToSend": "0", "emailReceiver": "xxx@xxx.com", "emailSender": "xxx@xxx.com", "emailInstance": "", "emailNoticeType": "longEmailNotice", "emailOnlyError": false, "emailWaitToSend": "0", "debugLevel": false, "sentry_enable": true, "historyEntriesNumber": "25", "restoreSource": "local", "startAllRestore": false, "hostType": "Single", "slaveInstance": [], "slaveNameSuffix": "", "stopSlaveAfter": false, "ignoreErrors": false, "restoreTab": false, "noderedEnabled": false, "sqliteEnabled": false, "sqlitePath": "/opt/sqlite/data.db", "sqliteDumpExe": "", "zigbee2mqttPath": "/opt/zigbee2mqtt/data", "zigbee2mqttEnabled": false, "fileSizeError": "512", "fileSizeWarning": "1024" }, "from": "system.host.hyperion.cli", "ts": 1706368328322, "protectedNative": [], "encryptedNative": [], "notifications": [], "instanceObjects": [ { "_id": "info", "type": "channel", "common": { "name": "Information" }, "native": {} }, { "_id": "info.latestBackup", "type": "state", "common": { "role": "state", "name": "Latest backup found by start", "type": "json", "read": true, "write": false }, "native": {} }, { "_id": "info.ccuNextTime", "type": "state", "common": { "role": "state", "name": "Next CCU backup", "type": "string", "read": true, "write": false, "def": "none" }, "native": {} }, { "_id": "info.iobrokerNextTime", "type": "state", "common": { "role": "state", "name": "Next iobroker backup", "type": "string", "read": true, "write": false, "def": "none" }, "native": {} }, { "_id": "history", "type": "channel", "common": { "name": "History Logs" }, "native": {} }, { "_id": "history.html", "type": "state", "common": { "role": "html", "name": "History-Log of executed backups", "type": "string", "read": true, "write": false, "def": "No backups yet" }, "native": {} }, { "_id": "history.json", "type": "state", "common": { "role": "state", "name": "History-Log of executed backups", "type": "json", "read": true, "write": false, "def": "[]" }, "native": {} }, { "_id": "history.ccuLastTime", "type": "state", "common": { "role": "state", "name": "Last CCU backup", "type": "string", "read": true, "write": false, "def": "No backups yet" }, "native": {} }, { "_id": "history.iobrokerLastTime", "type": "state", "common": { "role": "state", "name": "Last iobroker backup", "type": "string", "read": true, "write": false, "def": "No backups yet" }, "native": {} }, { "_id": "history.ccuSuccess", "type": "state", "common": { "role": "switch", "name": "Last ccu backup Success", "type": "boolean", "read": true, "write": true, "def": false }, "native": {} }, { "_id": "history.iobrokerSuccess", "type": "state", "common": { "role": "switch", "name": "Last iobroker backup Success", "type": "boolean", "read": true, "write": true, "def": false }, "native": {} }, { "_id": "oneClick", "type": "channel", "common": { "name": "OneClick Buttons" }, "native": {} }, { "_id": "oneClick.ccu", "type": "state", "common": { "role": "switch", "name": "Execute CCU backup", "type": "boolean", "read": true, "write": true, "def": false }, "native": {} }, { "_id": "oneClick.iobroker", "type": "state", "common": { "role": "switch", "name": "Execute iobroker backup", "type": "boolean", "read": true, "write": true, "def": false }, "native": {} }, { "_id": "output", "type": "channel", "common": { "name": "Output states" }, "native": {} }, { "_id": "output.line", "type": "state", "common": { "role": "state", "name": "Used for debug outputs", "type": "string", "read": true, "write": false, "def": "" }, "native": {} } ], "objects": [], "acl": { "object": 1636, "state": 1636, "file": 1632, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "user": "system.user.admin" }
Die Token in den Einträgen der
influxDBEvents
habe ich nachträglich eingefügt, da ursprünglich der Token nur global in der VariableinfluxDBToken
stand.Ohne die zusätzlichen Token hat BackItUp versucht
influx backup --bucket battery -t "/opt/iobroker/backups/influxDB_2024_01_28-10_29_29_battery_backupiobroker"
auszuführen, was auch auf der Konsole nicht funktioniert:Error: backup path must be specified as a single positional argument
@Marc-Berg mea culpa, ich gelobe Besserung
-
@fnolting Was mir direkt auffällt…. Du nutzt die Funktion mehrerer Datenbanken und hast bei keiner einen Host eingetragen.
-
@simatec
Werden die globalen Variablen für Host, Port und Token bei einerinfluxDBMulti
config auf alleinfluxDBEvents
vererbt und die Werte in den einzelnen Events sind nur als Override gedacht oder muss man sie in jedem Event eintragen? Habe jedenfalls den Host überall ergänzt (als FQDN) mit dem gleichen Ergebnis:Error: API compatibility check failed: 400 Bad Request: unable to decode response content type ""
-
@fnolting Stelle in den Influx Einstellungen von Backitup von local auf Remote
-
@simatec
Super, das war - jetzt rennt das Influx Backup. Danke!Bei Grafana hakt es leider noch. Ab Grafana v9.1 gibt es ja keine API-Keys mehr sondern Service Accounts. Ich habe einen sa.backup erstellt und einen Key mit Adminrechten und unbegrenzter Gültigkeit erstellt. Dieser Service-User hat aber kein Passwort - ich habe jetzt versucht den Key beim Passwort und beim Token einzugeben, aber leider schlägt das Grafana Backup fehl.
2024-01-28 20:39:48.443 error [iobroker/grafana] Error on Grafana Datasource Request 2024-01-28 20:39:48.870 error [iobroker/grafana] cannot found Grafana Backup files 2024-01-28 20:40:00.802 error [iobroker/clean] Backup files not deleted from /opt/iobroker/backups because some errors.
-
@fnolting Nimm den normalen Admin mit Passwort und einen Servicetoken mit Adminrechten
-
@simatec
Danke, jetzt läuft das Backup durch! -
Hallo simatec,
ich habe ein massives Problem mit backitup und dem Backup von influxdb und grafana.
Zunächst, das restore eines Backups von iobroker und javascripts hat problemlos geklappt.
Versuche ich aber das auf der NAS vorhandene backup von influxdb oder grafana von der NAS zu restore startet das Ganze zwar, bleibt aber dann offensichtlich endlos mit dem screen
hängen. Es tut sich rein gar nichts mehr, nur der Laufbalken oben läuft.Der Versuch in backitup das file erste einmal durch einen download local zu bekommen, gelingt auch nicht, der download startet zwar, aber es ist kein Fortschritt zu sehen, auch erscheint das file nicht unter "local":
Nur links unten pumpt (stark blau zu schwach blau usw.) die Ausschrift "Download ist gestartet". Aber es geschieht offensichtlich nichts:
Was ist zu tun? Kannst Du mir einen Tipp geben?
Viele Grüße und Dank im Voraus, jahnbes. -
@jahnbes
Einen workaround habe ich vielleicht gefunden. Offensichtlich funktioniert nur das downloaden nicht. ich habe die beiden backupfiles (influxdb und grafana) von der NAS auf den PC und von dort mit Filezilla auf den Raspberry kopiert.
Dann im iobroker von "local" restored und das ging!
Hast Du eine Idee, was da los ist?
Viele Grüße, jahnbes. -
@jahnbes sagte in BackItUp für InfluxDB:
ich habe die beiden backupfiles (influxdb und grafana) von der NAS
Und wie wird das NAS in den ioBroker eingebunden? NFS? CIFS? FTP? Irgendwas anderes?
-
@thomas-braun
Wie, ich schrieb, ich habe die Synology mit FTP im Backitup-Adapter eingebunden.
Danke für Deine Reaktion, ich weiß zwar immer noch nicht, warum der übliche Weg nicht geklappt hat, da aber das workaround mit der Kopie der gewünschten Files mittels FileZilla (FTP) problemlos geklappt hat und hoffentlich auch weiter klappen wird, habe ich momentan keine Veranlassung, weiter nachzuforschen.
Viele Grüße, jahnbes. -
Ich würde das ja gescheit haben wollen. Also entweder per NFS oder CIFS nach /opt/iobroker/backups gemounted. Jenachdem was das NAS kann.