Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Fragen/Probleme Redis (Sentinel)

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    740

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Fragen/Probleme Redis (Sentinel)

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
8 Beiträge 2 Kommentatoren 641 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • H Offline
    H Offline
    higginsd
    schrieb am zuletzt editiert von
    #1

    Guten Morgen Zusammen!

    Ich hatte meine iobroker Installation (1 Master und 5 Slaves) vor rund 1,5 Jahren auf Redis Sentinel (mit 3 Nodes) umgestellt.

    Bis letzte Woche Freitag lief die Geschichte stabil, schnell und unauffällig ohne Ausfälle.

    Am Freitag fiel mir auf, dass mein iobroker mehrfach pro Stunde für ein paar Minuten "hängen" blieb. Eine Untersuchung ergab dann, dass der Redis Master regelmäßig kommentarlos abgestürzt ist. Einer der Slaves hat dann versucht zu übernehmen. Da der Master im Docker läuft, wurde er automatisch restartet. Dies hat dann aber aufgrund der riesigen dump.rdb (15GB!) 90 Sekunden gedauert und dabei "hing" ioBroker. Anschließend hat einer der Slaves eine komplette Neu-Übertragung der Redis Daten (15GB!) vom Master angefordert und ist dabei gescheitert.

    Dann ging das Spiel wieder von vorne los...

    Meine Lösung: ich habe jetzt erst einmal auf JSONL zurück umgestellt. Das war zwar auch nicht smooth und hat mich viel Schweiß und Zeit gekostet, in der ich mehrmals an dem Punkt war, dass ich beinahe meine komplette Installation verloren habe. Backups und viel Gefummel haben mich aber gerettet.

    Jetzt meine Fragen...

    a) warum wird die Redis DB so riesig? Wird da nicht regelmäßig geflusht und alte States Einträge und anderer Garbage gelöscht?

    b) trotz Umstellung auf JSONL motzt der iobroker Master, dass er keine Sentinels finden konnte, wenn ich Sentinel auf allen 3 Nodes runterfahre.
    Warum ist das so?

    c) meine Slaves verbinden sich nicht mehr (bis auf einen komischerweise). Auf dem Master ist Multihost dauerhaft enabled, aber ein Multihost connect oder Scan sagt, dass kein Multihost Master im LAN gefunden werden kann.
    Gestern habe ich festgestellt, dass sich ein weiterer Slave nach Reparatur (Löschen der dump.rdb!) des Sentinel mit dem Master verbunden hat. Interessanterweise ist das so ein Test-Slave in Docker, den ich bisher gar nicht auf JSONL umgestellt habe. Er läuft also über Redis und kann sich plötzlich zum Master verbinden! Der auf JSONL läuft...

    Ich habe schwer den Eindruck, dass man die Redis-Geister, die man rief, so ohne Weiteres nicht mehr los wird.

    Ob ich wieder auf Redis Sentinel zurück umstelle weiß ich nicht. Die Geschichte mit der ständig wachsenden Datenbank unter Redis stört mich immens. Da ist die nächste Katastrophe in ein paar Monaten vorprogrammiert.

    Wer hat Langfristerfahrungen mit redis und kann mir u.U. helfen?

    Viele Grüße
    Dirk

    P.S.: Lesson learned - mein 0_userdata.0 Bereich war komplett weg, also alle selbstangelegten Objects. Das wird auch nirgendwo mitgesichert. Ich konnte ihn aus den JSON-Scripten rekonstruieren und habe jetzt ein Script, welches den Bereich komplett neu anlegt. Für den Fall der Fälle. Sollte man so machen. Oder die Userdata Objekte im JS, welches sie benutzt, einmal initial anlegen.

    1 Antwort Letzte Antwort
    0
    • arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      15 GB alder schwede.. was hast du an objects und states ??

      meine ist paar MB gross..

      da stimmt was nicht .. ist aber schwierieg zu sagen was..

      Wird da nicht regelmäßig geflusht und alte States Einträge und anderer Garbage gelöscht?

      Redis DB ist eine in Memory DB.. die wird in RAM gehalten und ab und an ein dump file gezogen damit die Daten nicht verloren gehen.
      solltest dich mal mit der Funktionsweise einer Redis auseinander setzten..

      trotz Umstellung auf JSONL motzt der iobroker Master, dass er keine Sentinels finden konnte, wenn ich Sentinel auf allen 3 Nodes runterfahre. Warum ist das so?

      dann hast du was falsch gemacht .. was kein Plan...

      meine Slaves verbinden sich nicht mehr

      mit einem eintrag im LOG ???? bestimmt

      Wer hat Langfristerfahrungen mit redis und kann mir u.U. helfen?

      ja aber das ist nicht mal eben so...

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      H 1 Antwort Letzte Antwort
      0
      • arteckA arteck

        15 GB alder schwede.. was hast du an objects und states ??

        meine ist paar MB gross..

        da stimmt was nicht .. ist aber schwierieg zu sagen was..

        Wird da nicht regelmäßig geflusht und alte States Einträge und anderer Garbage gelöscht?

        Redis DB ist eine in Memory DB.. die wird in RAM gehalten und ab und an ein dump file gezogen damit die Daten nicht verloren gehen.
        solltest dich mal mit der Funktionsweise einer Redis auseinander setzten..

        trotz Umstellung auf JSONL motzt der iobroker Master, dass er keine Sentinels finden konnte, wenn ich Sentinel auf allen 3 Nodes runterfahre. Warum ist das so?

        dann hast du was falsch gemacht .. was kein Plan...

        meine Slaves verbinden sich nicht mehr

        mit einem eintrag im LOG ???? bestimmt

        Wer hat Langfristerfahrungen mit redis und kann mir u.U. helfen?

        ja aber das ist nicht mal eben so...

        H Offline
        H Offline
        higginsd
        schrieb am zuletzt editiert von higginsd
        #3

        @arteck

        Zunächst mal danke für Deine Antwort!

        Ich weiß, daß Redis eine InMemory-DB ist. Wie oft das Dump-File gesichert wird, habe ich in der Config-Datei konfiguriert.

        Mir ist auch klar, daß 15GB ein irrer Wert sind, deswegen ja meine Fragen und mein Post hier. Ich bin davon ausgegangen, daß Redis immer den aktuellen Stand aller States und Objects im Speicher hält und dann nach einer gewissen Zeit bzw. Anzahl Änderungen das dump.rdb erstellt.

        Bei mir sind aber scheinbar irgendwelche Altdaten (?) im Memory hängen geblieben und das hat sich dann auf 15GB hochgeschaukelt.

        Die aktuellen Größen meiner objects.jsonl: 16MB und meiner states.jsonl: 5,7MB. Ich denke mit diesen Werten sollte Redis vernünftig umgehen können.

        EDIT: habe gerade nachgesehen. Das dump.rdb ist mittlerweile wieder auf 307MB (!!) angestiegen, obwohl redis/sentinel gar nichts macht, sondern nur so vor sich hin läuft. Das kann oder darf doch nicht sein?!?

        Dazu kommt, daß mein Sentinel-Master regelmäßig alle paar Stunden in den Tilt-Mode fällt (Meldung: +tilt #tilt mode entered). Keine Ahnung, was das ist und warum das passiert. Kannst Du mir bitt erklären, was dieser Tilt-Modus bedeutet?

        Und wie meinst Du das "mit einem eintrag im LOG ???? bestimmt" ? Meine Slaves werden im Master ausgegraut, also als nicht verbunden, dargestellt. Ein "iobroker multihost browse" auf den Slaves ergibt: "No Multihost server found. ..." Der ist alledings sehr wohl aktiv, siehe die iobroker.json meines Masters:

        "multihostService": {
        "enabled": true,
        "secure": true,
        "password": "$/aes-192-cbc:XXXXXX", (censored)
        "persist": true
        },

        Die Slaves sind alle per setup custom auf JSONL mit der IP des Masters und den Default-Ports 9000 und 9001 umgestellt worden.

        1 Antwort Letzte Antwort
        0
        • arteckA Offline
          arteckA Offline
          arteck
          Developer Most Active
          schrieb am zuletzt editiert von arteck
          #4

          @higginsd sagte in Fragen/Probleme Redis (Sentinel):

          No Multihost server found

          das ist normal im docker..

          welche redis version hast du installiert ??

          schon mal im redis LOG nachgeschaut ...
          hast du die redis.cfg untereinander abgeglichen??

          ich habe

          9c53895c-c8c2-4275-96ec-e48831a7371c-grafik.png

          und meine object redis ist 450 mb gross
          die states nochmal 6 mb gross

          also stimmt gewaltig bei dir was nicht.. und nein es kann nix hängenbleiben.. vor allem wenn auf redis nicht zugegriffen wird darf diese nicht ansteigen..

          tilt mode ist hier beschrieben
          https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/#tilt-mode

          was sagt den

          redis-cli -p 26379 info sentinel
          

          auf jeden node
          sind die Daten passend zueinander

          mit

          redis-cli info replication
          

          kannst du schauen welcher node gerade der master ist und welcher slave
          der der master ist liefert dir weitere informationen zum anderen slaves

          zigbee hab ich, zwave auch, nuc's genauso und HA auch

          H 2 Antworten Letzte Antwort
          0
          • arteckA arteck

            @higginsd sagte in Fragen/Probleme Redis (Sentinel):

            No Multihost server found

            das ist normal im docker..

            welche redis version hast du installiert ??

            schon mal im redis LOG nachgeschaut ...
            hast du die redis.cfg untereinander abgeglichen??

            ich habe

            9c53895c-c8c2-4275-96ec-e48831a7371c-grafik.png

            und meine object redis ist 450 mb gross
            die states nochmal 6 mb gross

            also stimmt gewaltig bei dir was nicht.. und nein es kann nix hängenbleiben.. vor allem wenn auf redis nicht zugegriffen wird darf diese nicht ansteigen..

            tilt mode ist hier beschrieben
            https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/#tilt-mode

            was sagt den

            redis-cli -p 26379 info sentinel
            

            auf jeden node
            sind die Daten passend zueinander

            mit

            redis-cli info replication
            

            kannst du schauen welcher node gerade der master ist und welcher slave
            der der master ist liefert dir weitere informationen zum anderen slaves

            H Offline
            H Offline
            higginsd
            schrieb am zuletzt editiert von
            #5

            @arteck said in Fragen/Probleme Redis (Sentinel):

            redis-cli info replication

            Ok, danke.

            Habe ich alles gecheckt, passt soweit. Das dump.rdb wird auch tatsächlich nicht größer, sondern bleibt bei 307MB.

            Ich habe 17829 States und 17528 Objects.

            Ich riskiere es und stelle mal auf Sentinel zurück. Dann werde ich mir einen Watchdog einrichten, der die Größe des dump.rdb im Auge behält.

            1 Antwort Letzte Antwort
            0
            • arteckA arteck

              @higginsd sagte in Fragen/Probleme Redis (Sentinel):

              No Multihost server found

              das ist normal im docker..

              welche redis version hast du installiert ??

              schon mal im redis LOG nachgeschaut ...
              hast du die redis.cfg untereinander abgeglichen??

              ich habe

              9c53895c-c8c2-4275-96ec-e48831a7371c-grafik.png

              und meine object redis ist 450 mb gross
              die states nochmal 6 mb gross

              also stimmt gewaltig bei dir was nicht.. und nein es kann nix hängenbleiben.. vor allem wenn auf redis nicht zugegriffen wird darf diese nicht ansteigen..

              tilt mode ist hier beschrieben
              https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/#tilt-mode

              was sagt den

              redis-cli -p 26379 info sentinel
              

              auf jeden node
              sind die Daten passend zueinander

              mit

              redis-cli info replication
              

              kannst du schauen welcher node gerade der master ist und welcher slave
              der der master ist liefert dir weitere informationen zum anderen slaves

              H Offline
              H Offline
              higginsd
              schrieb am zuletzt editiert von
              #6

              @arteck
              So, Ok, kleines Update. Die Zurück-Umstellung auf Redis/Sentinel war erfolgreich, alle States und Objects sind da und - alle ioBroker-Slaves sind wieder vom Master aus steuerbar und verbunden!

              Die dump.rdb ist nur um ein paar MB gewachsen durch die Umstellung.

              Insofern alles super, ich laufe wieder! Danke!

              Ah, doch noch mein Fazit, falls hier jemand mitliest und eventuell muss das als Bug in den Entwicklungspfad von ioBroker: wenn man einmal eine ioBroker Multihost Umgebung auf Redis/Sentinel umgestellt hat, sind die ioBroker Slaves nach der Rück-Umstellung auf JSONL NICHT mehr im ioBroker Cluster verfügbar für den Master!

              Das ist m.E. sehr unschön.

              Und beobachtet das Verhalten eures Sentinel sorgfältig. Falls die Datenmengen plötzlich ansteigen, lauft ihr in echte Probleme mit Full-Replica Anfragen usw.

              arteckA 1 Antwort Letzte Antwort
              0
              • H higginsd

                @arteck
                So, Ok, kleines Update. Die Zurück-Umstellung auf Redis/Sentinel war erfolgreich, alle States und Objects sind da und - alle ioBroker-Slaves sind wieder vom Master aus steuerbar und verbunden!

                Die dump.rdb ist nur um ein paar MB gewachsen durch die Umstellung.

                Insofern alles super, ich laufe wieder! Danke!

                Ah, doch noch mein Fazit, falls hier jemand mitliest und eventuell muss das als Bug in den Entwicklungspfad von ioBroker: wenn man einmal eine ioBroker Multihost Umgebung auf Redis/Sentinel umgestellt hat, sind die ioBroker Slaves nach der Rück-Umstellung auf JSONL NICHT mehr im ioBroker Cluster verfügbar für den Master!

                Das ist m.E. sehr unschön.

                Und beobachtet das Verhalten eures Sentinel sorgfältig. Falls die Datenmengen plötzlich ansteigen, lauft ihr in echte Probleme mit Full-Replica Anfragen usw.

                arteckA Offline
                arteckA Offline
                arteck
                Developer Most Active
                schrieb am zuletzt editiert von
                #7

                @higginsd sagte in Fragen/Probleme Redis (Sentinel):

                sind die ioBroker Slaves nach der Rück-Umstellung auf JSONL NICHT mehr im ioBroker Cluster verfügbar für den Master!

                doch doch.. du musst nur dann alles manuell umstellen..

                zigbee hab ich, zwave auch, nuc's genauso und HA auch

                H 1 Antwort Letzte Antwort
                0
                • arteckA arteck

                  @higginsd sagte in Fragen/Probleme Redis (Sentinel):

                  sind die ioBroker Slaves nach der Rück-Umstellung auf JSONL NICHT mehr im ioBroker Cluster verfügbar für den Master!

                  doch doch.. du musst nur dann alles manuell umstellen..

                  H Offline
                  H Offline
                  higginsd
                  schrieb am zuletzt editiert von
                  #8

                  @arteck
                  Das hatte ich natürlich auch getan - leider ohne Erfolg. Die Slaves waren vom Master aus nicht mehr zugreifbar, also man konnte keine Instanzen auf einen Slave verschieben usw.

                  1 Antwort Letzte Antwort
                  0
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate
                  FAQ Cloud / IOT
                  HowTo: Node.js-Update
                  HowTo: Backup/Restore
                  Downloads
                  BLOG

                  636

                  Online

                  32.6k

                  Benutzer

                  82.0k

                  Themen

                  1.3m

                  Beiträge
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2025
                  logo
                  • Anmelden

                  • Du hast noch kein Konto? Registrieren

                  • Anmelden oder registrieren, um zu suchen
                  • Erster Beitrag
                    Letzter Beitrag
                  0
                  • Home
                  • Aktuell
                  • Tags
                  • Ungelesen 0
                  • Kategorien
                  • Unreplied
                  • Beliebt
                  • GitHub
                  • Docu
                  • Hilfe