NEWS
[Problem] Umstellung bestehendes Master-Slave System auf Redis
-
Hallo zusammen,
ich würde mein bestehendes System gerne auf Redis umsetzen.
Hardware: 1x Master: Rock64 (4GB), 5x (Slave) Raspberry 3B
Leider bekomme ich es aktuell es nicht hin, dass sich die Slave mit dem Master, nach der u.g. Umstellung, verbinden.
js-controller 1.5.7, npm 6.8.0So bin ich vergangen.
iobroker stop (auf allen Hosts)
Master
Installation des redis servers
nano /etc/redis/redis.conf und bind 127.0.0.1 gegen bind 0.0.0.0 ersetzt
iobroker setup custom und unter Type of states DB [file, redis], default [file]: r
service redis-server restartSlave
iobroker setup custom und unter Type of states DB [file, redis], default [file]: rAnschließend alle Hosts nacheinander gestartet.
Verschiedene Konstellationen/Einstellungen/Neustart haben ich getestet.
Leider ohne Erfolg. -
Aus Deiner Beschribung ist nicht zu sehen ob Du in setup custom
Master: Bei Redis 0.0.0.0
Slave: Bei Redis : <IP_MASTER>
eingegeben hast.
Denk dran, dass auf dem Slave auch bei Objects die Master IP eingegeben werden muss.Aus meinen iobroker.json files:
Master"objects": { "type": "file", "typeComment": "Possible values: 'file' - [port 9001], redis - [port 6379], couch - [port 5984].", "host": "0.0.0.0", "port": 9001, "user": "", "pass": "", "noFileCache": false, "connectTimeout": 2000, "backup": { "disabled": false, "files": 24, "filesComment": "Minimal number of backup files, after the deletion will be executed according to backupTime settings", "hours": 48, "hoursComment": "All backups older than 48 hours will be deleted. But only if the number of files is greater than of backupNumber", "period": 120, "periodComment": "by default backup every 2 hours. Time is in minutes. To disable backup set the value to 0", "path": "", "pathComment": "Absolute path to backup directory or empty to backup in data directory" } }, "states": { "type": "redis", "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379].", "host": "0.0.0.0", "port": 6379, "maxQueue": 1000, "options": { "auth_pass": null, "retry_max_delay": 15000 },
Slave
"objects": { "type": "file", "typeComment": "Possible values: 'file' - [port 9001], redis - [port 6379], couch - [port 5984].", "host": "192.168.0.201", "port": 9001, "user": "", "pass": "", "noFileCache": false, "connectTimeout": 2000 }, "states": { "type": "redis", "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379].", "host": "192.168.0.201", "port": 6379, "maxQueue": 1000, "options": { "auth_pass": null, "retry_max_delay": 15000 } },
-
Hallo und Danke für deine Antwort!
Die IP-Adresse hatte ich vergeben, werde es aber vorsichtshalber nochmal überprüfen.
Lieben Gruß aus Ostfriesland!
-
@e-i-k-e sagte in [Problem] Umstellung bestehendes Master-Slave System auf Redis:
Die IP-Adresse hatte ich vergeben,
bei objects und states?
-
Hab es gerade mit einem Slave versucht.
Leider ohne erfolg.Master
root@ioBroker-Rock64:~# iobroker setup custom Type of objects DB [(f)ile, (c)ouch, (r)edis], default [file]: r Host / Unix Socket of objects DB(redis), default[127.0.0.1]: 0.0.0.0 Port of objects DB(redis), default[6379]: 9001 Type of states DB [(f)file, (r)edis], default [undefined]: r Host / Unix Socket of states DB (redis), default[0.0.0.0]: 0.0.0.0 Port of states DB (redis), default[6379]: Host name of this machine [ioBroker-Rock64]: iobroker-Rock64 creating conf/iobroker.json root@ioBroker-Rock64:~# iobroker start Starting iobroker controller daemon... /opt/iobroker/node_modules/daemonize2/lib/daemonize.js:136 throw new Error(msg.error); ^ Error: ReferenceError: id is not defined at checkObjectRights (/opt/iobroker/node_modules/iobroker.js-controller/lib/objects/objectsInRedis.js:969:26) at ObjectsInRedis.subscribe (/opt/iobroker/node_modules/iobroker.js-controller/lib/objects/objectsInRedis.js:1041:13) at init (/opt/iobroker/node_modules/iobroker.js-controller/controller.js:2828:13) at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/controller.js:2879:1) at Module._compile (module.js:653:30) at Object.Module._extensions..js (module.js:664:10) at Module.load (module.js:566:32) at tryModuleLoad (module.js:506:12) at Function.Module._load (module.js:498:3) at Module.require (module.js:597:17) at ChildProcess.<anonymous> (/opt/iobroker/node_modules/daemonize2/lib/daemonize.js:136:19) at emitTwo (events.js:126:13) at ChildProcess.emit (events.js:214:7) at emit (internal/child_process.js:762:12) at _combinedTickCallback (internal/process/next_tick.js:142:11) at process._tickCallback (internal/process/next_tick.js:181:9) root@ioBroker-Rock64:~# iobroker status iobroker is not running Objects type: redis States type: redis root@ioBroker-Rock64:~# iobroker start Starting iobroker controller daemon... /opt/iobroker/node_modules/daemonize2/lib/daemonize.js:136 throw new Error(msg.error); ^ Error: ReferenceError: id is not defined at checkObjectRights (/opt/iobroker/node_modules/iobroker.js-controller/lib/objects/objectsInRedis.js:969:26) at ObjectsInRedis.subscribe (/opt/iobroker/node_modules/iobroker.js-controller/lib/objects/objectsInRedis.js:1041:13) at init (/opt/iobroker/node_modules/iobroker.js-controller/controller.js:2828:13) at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/controller.js:2879:1) at Module._compile (module.js:653:30) at Object.Module._extensions..js (module.js:664:10) at Module.load (module.js:566:32) at tryModuleLoad (module.js:506:12) at Function.Module._load (module.js:498:3) at Module.require (module.js:597:17) at ChildProcess.<anonymous> (/opt/iobroker/node_modules/daemonize2/lib/daemonize.js:136:19) at emitTwo (events.js:126:13) at ChildProcess.emit (events.js:214:7) at emit (internal/child_process.js:762:12) at _combinedTickCallback (internal/process/next_tick.js:142:11) at process._tickCallback (internal/process/next_tick.js:181:9) root@ioBroker-Rock64:~#
Slave
root@raspberrypi-display3:~# iobroker status undefined Redis connection to 192.168.3.100:9001 failed - connect ECONNREFUSED 1 92.168.3.100:9001 undefined Error: Redis connection to 192.168.3.100:9001 failed - connect ECONNRE FUSED 192.168.3.100:9001 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1191:14) undefined No redis connection! undefined Redis connection to 192.168.3.100:9001 failed - connect ECONNREFUSED 1 92.168.3.100:9001 undefined Error: Redis connection to 192.168.3.100:9001 failed - connect ECONNRE FUSED 192.168.3.100:9001 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1191:14) undefined No redis connection! undefined Redis connection to 192.168.3.100:9001 failed - connect ECONNREFUSED 1 92.168.3.100:9001 undefined Error: Redis connection to 192.168.3.100:9001 failed - connect ECONNRE FUSED 192.168.3.100:9001 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1191:14) undefined No redis connection! undefined Redis connection to 192.168.3.100:9001 failed - connect ECONNREFUSED 1 92.168.3.100:9001 undefined Error: Redis connection to 192.168.3.100:9001 failed - connect ECONNRE FUSED 192.168.3.100:9001 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1191:14) undefined No redis connection! No connection to 192.168.3.100:9001[redis] root@raspberrypi-display3:~# iobroker setup custom Type of objects DB [(f)ile, (c)ouch, (r)edis], default [file]: r Host / Unix Socket of objects DB(redis), default[127.0.0.1]: 192.168.3.100 Port of objects DB(redis), default[6379]: Type of states DB [(f)file, (r)edis], default [redis]: r Host / Unix Socket of states DB (redis), default[192.168.3.100]: 192.168.3.100 Port of states DB (redis), default[6379]: Host name of this machine [raspberrypi-display3]: raspberrypi-display3 creating conf/iobroker.json
Habe daraufhin den Default Port 6379 getestet (siehe Slave, dieser wurde natürlich auch beim Master geändert).
Was mach ich falsch?
-
@e-i-k-e sagte in [Problem] Umstellung bestehendes Master-Slave System auf Redis:
Was mach ich falsch?
Ich muss mir mal die Anleitung heute Abend ansehen.
Evtl. habe ich da was verschlimmbessertMir kommt es gerade komisch vor, dass auf dem Master Redis für Objects läuft.
Das sollte IMHO auf file stehen.Nur die States in redis
-
Okay. Da liegt mein Fehler. Ich hatte redis bei Objects aktiviert. E
Evtl. sollte man dies in der Anleitung noch etwas genauer beschreiben, Bzw. die korrekten Einstellung vorgeben. Aber nur so als VorschlagIobroker Master startet jetzt mit Redis (bei States).
root@ioBroker-Rock64:~# iobroker setup custom Type of objects DB [(f)ile, (c)ouch, (r)edis], default [file]: Host / Unix Socket of objects DB(file), default[127.0.0.1]: 0.0.0.0 Port of objects DB(file), default[9001]: Type of states DB [(f)file, (r)edis], default [file]: r Host / Unix Socket of states DB (redis), default[0.0.0.0]: 0.0.0.0 Port of states DB (redis), default[6379]: Host name of this machine [ioBroker-Rock64]: creating conf/iobroker.json root@ioBroker-Rock64:~# iobroker restart Stopping iobroker controller daemon... iobroker controller daemon stopped. Starting iobroker controller daemon... iobroker controller daemon started. PID: 17507 root@ioBroker-Rock64:~# iobroker status iobroker is running Objects type: file States type: redis
Unter Host wird allerdings kein Slave und keine Instanzen mehr aufgeführt.
root@raspberrypi-display3:~# sudo iobroker multihost status Nothing changed. Miltihost: disabled Authentication: enabled Objects: file on 192.168.3.100 States: redis on 192.168.3.100
-
@e-i-k-e sagte in [Problem] Umstellung bestehendes Master-Slave System auf Redis:
Evtl. sollte man dies in der Anleitung noch etwas genauer beschreiben, Bzw. die korrekten Einstellung vorgeben.
Ja sollte man
Welche Anleitung genau hast du benutzt?@e-i-k-e sagte in [Problem] Umstellung bestehendes Master-Slave System auf Redis:
Unter Host wird allerdings kein Slave und keine Instanzen mehr aufgeführt
Wo wir schon wieder bei Anleitung sind
-
Tatsächlich, der Neustart war es! Kleine Fehler, große Wirkung.
Mein Master-/Slave System läuft jetzt komplett!Ich habe folgende Anleitungen verwendet.
http://www.iobroker.net/docu/?page_id=3068&lang=de#Multihost_mit_redis
http://blog.unltd-networx.de/iobroker-multihostbetrieb-einrichten/Leider ist im Log viel rot.
-
Kurze Rückmeldung.
ioBroker lief durch Redis gefühlt etwas schneller.
Leider habe ich die o.g. Fehler nicht in den Griff bekommen, dadurch lief unsere Heizung nicht mehr. (Frau war nicht zufrieden..)
Ich bin erstmal wieder zurück.Wenn jemand eine Idee/Lösungsvorschlag hat, versuche ich es gerne noch einmal.
-
@e-i-k-e
Die Fehler zeigen, dass einige Datenpunkte nicht gefunden werden.Das sind ical event.
Existieren diese noch?