Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Gelöst] Im Docker von jsonl auf Redis umstellen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Gelöst] Im Docker von jsonl auf Redis umstellen

    This topic has been deleted. Only users with topic management privileges can see it.
    • mcBirne
      mcBirne @Marc Berg last edited by

      @marc-berg
      Ich habe inzwischen den Portainer laufen und versuche meinen IOBroker, der jetzt wieder im Host Modus läuft einzubinden. leider erhalte ich folgende Meldung:
      5c94a6aa-7cf8-45f0-91f5-8ce210dab24b-image.png

      Ich habe die untersten drei Umgebungsvariablen ergänzt.
      85b5c6ea-bcd8-4c20-9557-f87b33bfde87-image.png

      Hat jemand eine Idee, wo das Problem liegt?

      OliverIO 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @mcBirne last edited by

        @mcbirne

        nur teilweise eine idee.
        ich vermute, du hast separate container eingerichtet.
        daher vergibt docker jedem container ein eigenes subnet. daher können die container nicht direkt miteinander kommunizieren.
        die container erhalten zwar jeweils einen hostnamen, der gilt aber nur innerhalb des subnets. mit der eingabe redis versucht iobroker nun mit dem hostnamen redis (was ja in eine ip-adresse umgesetzt wird) zu erreichen. da redis aber in einem anderen subnet liegt ist das nie zu erreichen.

        du hast nun 2 möglichkeiten

        1. die bevorzugte möglichkeit
          du definierst iobroker und redis im rahmen eines docker-compose (bei portainer nennt sich das stacks, bei synology glaube ich projekt
          https://kb.synology.com/de-de/DSM/help/ContainerManager/docker_project?version=7
          verknüpfst die durch entsprechende netze und dann kannst du da auch redis bzw den servicenamen dort eintragen
          schau dir diese beiden tutorioals an, die hier verlinkt sind
          https://smarthome.buanet.de/docker/container-images/redis/

        wenn der redis port auf deinem hostsystem gemappt ist, dann trage bei redis host anstatt redis die ip deines hostsystems ein.

        mcBirne 1 Reply Last reply Reply Quote 1
        • mcBirne
          mcBirne @OliverIO last edited by

          @oliverio
          Möglichkeit 1 habe ich mit portainer versucht. Allerdings muss dafür auch der ioBorker in einem bridge Netzwerk laufen, was dafür sorgt, dass einige Adapter nicht funktionieren.
          Nun läuft der ioBroker wieder in einer Host Installation und redis in einer bridge Installation. Vermutlich ist daher der Name redis nicht bekannt.
          Also Versuche ich Option 2:
          Der Port ist im Conatainer gemappt.
          ff13e67b-be16-4f57-a288-01f369fc21d5-image.png
          Wenn ich danstelle von redis die IP Adresse meiner Synology eingebe erscheint folgende Meldung:
          b0760e28-12a4-4c18-bc7c-2b6b18ed809d-image.png
          Mit der IP Adresse der Redis Installation sieht es nicht besser aus 😞

          mcBirne 1 Reply Last reply Reply Quote 0
          • mcBirne
            mcBirne @mcBirne last edited by mcBirne

            @mcbirne
            Auch wenn ich redis als hoast installiere klappt es nicht. Muss ich auf redis erst etwas einstellen? Aktuell installiere ich es nur und starte es.
            dort steht dann:
            18bb8121-7023-41eb-9f64-47f447b48491-image.png

            OliverIO Glasfaser 2 Replies Last reply Reply Quote 0
            • OliverIO
              OliverIO @mcBirne last edited by

              @mcbirne

              ich habe mal im folgenden meine compose/stacks/projekt konfiguration gepostet.
              im originalen habe ich ein macvlan laufen. dadurch hat der iobroker eine eigene ip.
              das wäre evtl auch noch eine lösung, da macvlan die gleichen vorteile wie host hat, allerdings den verkehr vom host wegkapselt. broadcast/etc. läuft und man bekommt keine überlappende ports

              version: '3'
              
              services:
                iobrokerprod5:
                  container_name: iobrokerprod5
                  image: buanet/iobroker
                  hostname: iobrokerprod5
                  restart: always
                  ports:
                    - "8081:8081"
                  volumes:
                    - /home/iobroker/docker/volume/iobroker/prod5/iobroker:/opt/iobroker
                  networks:
                    dockerMACVLAN:
                      ipv4_address: 192.168.1.85
                    iobrokerprod5:
                redis5:
                  image: "redis:alpine"
                  volumes:
                    - /home/iobroker/docker/volume/iobroker/prod5/redis:/data
                  networks:
                    iobrokerprod5:
              networks:
                dockerMACVLAN:
                  external: true
                iobrokerprod5:
                
              

              ich habe mal für deine konstellation versucht das blind anzupassen. also getestet habe ich es nicht
              interessant für dich ist der abschnitt networks in beiden containerdefinitionen.
              das erzeugt in beiden containern ein weiteres netzwerk. das ist so, wie wenn die eine weitere netzwerkkarte eingesteckt haben. iobroker ist über den hostmode über die host ip adresse erreichbar. iobroker und redis ist über das 2.netzwerk erreichbar, das aber genau diese beiden container verbindet. daher ist redis dann auch über den servicenamen als host erreichbar (hier redis5)
              beim iobroker kannst du dann noch die environment variablen ergänzen, so das der iobroker richtig auf redis konfiguriert wird.
              ich mach das immer direkt auf der containerconsole, aber besser wäre das natürlich hier .

              version: '3'
              
              services:
                iobrokerprod5:
                  container_name: iobrokerprod5
                  image: buanet/iobroker
                  hostname: iobrokerprod5
                  network_mode: "host"
                  restart: always
                  ports:
                    - "8081:8081"
                  volumes:
                    - /home/iobroker/docker/volume/iobroker/prod5/iobroker:/opt/iobroker
                  networks:
                    iobrokerprod5:
                redis5:
                  image: "redis:alpine"
                  volumes:
                    - /home/iobroker/docker/volume/iobroker/prod5/redis:/data
                  networks:
                    iobrokerprod5:
              networks:
                iobrokerprod5:
              
              mcBirne 1 Reply Last reply Reply Quote 0
              • mcBirne
                mcBirne @OliverIO last edited by

                @oliverio
                sorry, das ist mir etwas zu viel. Ich weiß nicht, wie ich ein MACVLAN erstellen soll. Ich habe zwar eine Anleitung gefunden, aber da fehlen mir einige Details. Das übersteigt meine Fähigkeiten zu stark.

                OliverIO 1 Reply Last reply Reply Quote 0
                • OliverIO
                  OliverIO @mcBirne last edited by

                  @mcbirne

                  dann lies mal den Post nochmal ganz genau. Insbesondere den 2.Teil und nicht schon nach dem ersten Satz aufhören.

                  1 Reply Last reply Reply Quote 0
                  • Glasfaser
                    Glasfaser @mcBirne last edited by Glasfaser

                    @mcbirne sagte in Redis Umstellung:

                    Muss ich auf redis erst etwas einstellen?

                    Ja ...

                    denn du hast eine vorhandene ioBroker Installation ,die als Datenbank jsonl schon enthält und das muß erst als redis migriert werden.

                    also Dockerimage mit dem Redis starten , dann

                    iobroker starten , dann in der Konsole ( Putty )

                    pkill -u iobroker
                    iobroker setup custom
                    

                    dann auf redis alles umstellen .

                    dann erfolgt ein Backup und dann wird auf dem Server Redis migriert .
                    ( im Mount Ordner / Image Redis liegt dann eine dump.rdb Datei )

                    Dann den ioBroker Container neu starten.

                    mehr brauchst du nicht machen .. auch kein ENV Eintrag wie z.b IOB_OBJECTSDB_TYPE im ioBroker Docker.

                    wie du oben angegeben hast !

                    mcBirne 1 Reply Last reply Reply Quote 0
                    • mcBirne
                      mcBirne @Glasfaser last edited by

                      @glasfaser
                      OK,

                      also mache ich folgenden:

                      • Nutzen der aktuellen ioBroker Instalation (als Host installiert)
                      • redis als host installieren
                      • dann in der ioBroker Console folgendes eingeben
                      pkill -u iobroker
                      iobroker setup custom
                      
                      
                      mcBirne 1 Reply Last reply Reply Quote 0
                      • mcBirne
                        mcBirne @mcBirne last edited by

                        @mcbirne
                        Ich habe alles durchgeführt, die Migration ist auch erfolgreich gewesen, allerdings steht im Info Bereich immer noch diese Meldung:
                        d4dfcc7b-2e2f-4eb8-8752-11caae6830af-image.png
                        Woher weiß ich, dass nun redis genutzt wird?

                        Marc Berg 1 Reply Last reply Reply Quote 0
                        • Marc Berg
                          Marc Berg Most Active @mcBirne last edited by

                          @mcbirne sagte in Redis Umstellung:

                          Woher weiß ich, dass nun redis genutzt wird?

                          iob status
                          

                          angucken.

                          mcBirne 1 Reply Last reply Reply Quote 0
                          • mcBirne
                            mcBirne @Marc Berg last edited by

                            @marc-berg
                            super, ist redis. Vielen Dank für die Unterstützung auch an alle anderen!
                            Ich merke es sogar. Variablenwerte bei der Erstellung von Blocklys werden im Auswahlfenster wieder angezeigt. Vorher war dort immer null und der Java Adapter startete bei Speichern nach der Auswahl von Variablen meistens neu.

                            Eine Frage habe ich noch zu dem Thema. Ich habe jetzt das Backup umgestellt und auch redis ausgewählt. (oder ist das nicht nötig?) Jetzt ist das Backupfenster seit ca. 30 min unverändert...
                            e3242617-0fa3-4835-8ce3-bfd70e230b54-image.png

                            Dauert das Backup so ewig? normalerweise waren es immer nur wenige Sekunden (ohne redis)

                            mcBirne 1 Reply Last reply Reply Quote 0
                            • mcBirne
                              mcBirne @mcBirne last edited by

                              @mcbirne
                              das Backup von redis funktioniert nicht.
                              Muss ich es separat sichern? Wenn ja, wie? (mit Backitup?)

                              OliverIO 1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @mcBirne last edited by OliverIO

                                @mcbirne

                                entweder du sicherst für dich das redis volume
                                oder du liest die dokumentation von backitup
                                https://github.com/simatec/ioBroker.backitup/blob/master/docs/de/backitup.md#:~:text=Für ein Remote-Backup wird auf dem lokalen ioBroker System redis-cli benötigt.

                                1 Reply Last reply Reply Quote 0
                                • mcBirne
                                  mcBirne last edited by

                                  @oliverio
                                  Danke für den Tipp. Also ist alles was man braucht in der Datei dump.rdb. Die sichere ich dann einfach manuell.

                                  Glasfaser 1 Reply Last reply Reply Quote 0
                                  • Glasfaser
                                    Glasfaser @mcBirne last edited by

                                    @mcbirne sagte in Redis Umstellung:

                                    Also ist alles was man braucht in der Datei dump.rdb.

                                    Richtig !

                                    Da es jetzt bei dir funktioniert , setze den Thread auf [Gelöst]

                                    Und noch eine Bitte , ändere den Titel auf
                                    " Im Docker von jsonl auf Redis umstellen "

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

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

                                    945
                                    Online

                                    31.9k
                                    Users

                                    80.2k
                                    Topics

                                    1.3m
                                    Posts

                                    5
                                    47
                                    2785
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo