Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. (gelöst) Problem mit Redis Sentinel

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    (gelöst) Problem mit Redis Sentinel

    This topic has been deleted. Only users with topic management privileges can see it.
    • arteck
      arteck Developer Most Active last edited by arteck

      die redis läuft nicht rund

      also nach und nach

      am Master sieht die redis konfig gut aus (ich pick mir die states raus, die objects müssen auch so) aber da fehlen Einträge, hast du die standrad config übernommen ??

      am Slave auch ..also

      systemsctl stop redis-server
      systemsctl stop redis-sentinel
      

      dann auf beiden Maschienen...
      dann die dump datei (sollte hier sein /var/lib/redis) auf dem slave löschen

      dann Master

      systemsctl start redis-server
      

      danach auf dem slave

      systemsctl start redis-server
      

      jetzt sollte die dump Datei vom master genauso gross sein wie die auf dem Slave

      wenn nicht Log posten vom Master und Salve /var/log/redis/redis-server.log
      erst wenn das sauber läuft können wir weiter machen

      amg_666 1 Reply Last reply Reply Quote 0
      • amg_666
        amg_666 @arteck last edited by

        @arteck

        ich habe auf allen Maschienen Redis/Redis-Sentinel gestoppt und dann die dumps gelöscht.
        nach neuem Start von redis und redis-sentinel habe ich unterschiedlich große Dumps auf den Maschinen
        Master

        ls -i /var/lib/redis/
        80995 dump.rdb  65907 temp-297.rdb
        

        Slave1

        ls -i /var/lib/redis/
        81228 dump.rdb
        

        Slave2

        ls -i /var/lib/redis/
        50644 dump.rdb
        

        redis.conf master

        bind 0.0.0.0
        protected-mode no
        port 6379
        tcp-backlog 511
        timeout 0
        tcp-keepalive 300
        daemonize no
        pidfile "/run/redis/redis-server.pid"
        loglevel notice
        2Blogfile "/var/log/redis/redis-server.log"
        databases 16
        always-show-logo no
        set-proc-title yes
        proc-title-template "{title} {listen-addr} {server-mode}"
        stop-writes-on-bgsave-error yes
        rdbcompression yes
        rdbchecksum yes
        dbfilename "dump.rdb"
        rdb-del-sync-files no
        dir "/var/lib/redis"
        replica-serve-stale-data yes
        replica-read-only yes
        repl-diskless-sync yes
        repl-diskless-sync-delay 5
        repl-diskless-sync-max-replicas 0
        repl-diskless-load disabled
        repl-disable-tcp-nodelay no
        replica-priority 100
        acllog-max-len 128
        lazyfree-lazy-eviction no
        lazyfree-lazy-expire no
        lazyfree-lazy-server-del no
        replica-lazy-flush no
        lazyfree-lazy-user-del no
        lazyfree-lazy-user-flush no
        oom-score-adj no
        oom-score-adj-values 0 200 800
        disable-thp yes
        appendonly no
        appendfilename "appendonly.aof"
        appenddirname "appendonlydir"
        appendfsync everysec
        no-appendfsync-on-rewrite no
        auto-aof-rewrite-percentage 100
        auto-aof-rewrite-min-size 64mb
        aof-load-truncated yes
        aof-use-rdb-preamble yes
        aof-timestamp-enabled no
        
        slowlog-log-slower-than 10000
        slowlog-max-len 128
        latency-monitor-threshold 0
        notify-keyspace-events ""
        hash-max-listpack-entries 512
        hash-max-listpack-value 64
        list-max-listpack-size -2
        list-compress-depth 0
        set-max-intset-entries 512
        zset-max-listpack-entries 128
        zset-max-listpack-value 64
        hll-sparse-max-bytes 3000
        stream-node-max-bytes 4kb
        stream-node-max-entries 100
        activerehashing yes
        client-output-buffer-limit normal 0 0 0
        client-output-buffer-limit replica 256mb 64mb 60
        client-output-buffer-limit pubsub 32mb 8mb 60
        hz 10
        dynamic-hz yes
        aof-rewrite-incremental-fsync yes
        rdb-save-incremental-fsync yes
        jemalloc-bg-thread yes
        

        redis conf slave

        bind 0.0.0.0
        protected-mode no
        port 6379
        tcp-backlog 511
        timeout 0
        tcp-keepalive 300
        daemonize no
        pidfile "/run/redis/redis-server.pid"
        loglevel notice
        logfile "/var/log/redis/redis-server.log"
        databases 16
        always-show-logo no
        set-proc-title yes
        proc-title-template "{title} {listen-addr} {server-mode}"
        stop-writes-on-bgsave-error yes
        rdbcompression yes
        rdbchecksum yes
        dbfilename "dump.rdb"
        rdb-del-sync-files no
        dir "/var/lib/redis"
        replicaof 192.168.1.60 6379
        replica-serve-stale-data yes
        replica-read-only yes
        repl-diskless-sync yes
        repl-diskless-sync-delay 5
        repl-diskless-sync-max-replicas 0
        repl-diskless-load disabled
        repl-disable-tcp-nodelay no
        replica-priority 100
        acllog-max-len 128
        lazyfree-lazy-eviction no
        lazyfree-lazy-expire no
        lazyfree-lazy-server-del no
        replica-lazy-flush no
        lazyfree-lazy-user-del no
        lazyfree-lazy-user-flush no
        oom-score-adj no
        oom-score-adj-values 0 200 800
        disable-thp yes
        appendonly no
        appendfilename "appendonly.aof"
        appenddirname "appendonlydir"
        appendfsync everysec
        no-appendfsync-on-rewrite no
        auto-aof-rewrite-percentage 100
        auto-aof-rewrite-min-size 64mb
        aof-load-truncated yes
        aof-use-rdb-preamble yes
        aof-timestamp-enabled no
        
        slowlog-log-slower-than 10000
        slowlog-max-len 128
        latency-monitor-threshold 0
        notify-keyspace-events ""
        hash-max-listpack-entries 512
        hash-max-listpack-value 64
        list-max-listpack-size -2
        list-compress-depth 0
        set-max-intset-entries 512
        zset-max-listpack-entries 128
        zset-max-listpack-value 64
        hll-sparse-max-bytes 3000
        stream-node-max-bytes 4kb
        stream-node-max-entries 100
        activerehashing yes
        client-output-buffer-limit normal 0 0 0
        client-output-buffer-limit replica 256mb 64mb 60
        client-output-buffer-limit pubsub 32mb 8mb 60
        hz 10
        dynamic-hz yes
        aof-rewrite-incremental-fsync yes
        rdb-save-incremental-fsync yes
        jemalloc-bg-thread yes
        
        # Generated by CONFIG REWRITE
        save 3600 1
        save 300 100
        save 60 10000
        supervised systemd
        latency-tracking-info-percentiles 50 99 99.9
        user default on nopass sanitize-payload ~* &* +@all
        
        1 Reply Last reply Reply Quote 0
        • arteck
          arteck Developer Most Active last edited by arteck

          @amg_666 sagte in Problem mit Redis Sentinel:

          nach neuem Start von redis und redis-sentinel habe ich unterschiedlich große Dumps auf den Maschinen

          den sentinel erstmal aus lassen.. das bringt nix wenn redis nicht syncron ist

          ist das die ip von master 192.168.1.60

          ausserdem ... nimm bitte die standard konfig ..pimpen kannst du später immer noch..

          da änderst du NUR

          bind 0.0.0.0
          

          af beiden maschienen

          und auf dem slave ganz unten hinzufügen

          replicaof 192.168.1.60 6379
          
          amg_666 2 Replies Last reply Reply Quote 0
          • amg_666
            amg_666 @arteck last edited by

            @arteck ja, master hat .60, die slaves dann .61 und .62

            Erstmal vielen Dank für deine Unterstützung soweit, aber ich baue das grad auf weil ich iob auf redis umstellen will. Wenn da jetzt im Redis irgendwas "grundsätzlich" verkorkst ist, soll ich da nicht lieber die Container (ist eine proxmox installation) plattmachen und nochmal sauber bei Null aufsetzen ?

            1 Reply Last reply Reply Quote 0
            • amg_666
              amg_666 @arteck last edited by amg_666

              @arteck sagte in Problem mit Redis Sentinel:

              ausserdem ... nimm bitte die standard konfig ..

              Ich hab da aber nix (wissentlich) verstellt/"optimiert".
              was ist die Standard konfig ? Die müsste doch bei der Installation von rdis automatisch greifen, oder?

              1 Reply Last reply Reply Quote 0
              • arteck
                arteck Developer Most Active last edited by arteck

                wenn du kannst dann installier die redis neu bitte..

                dann wie schon geschrieben

                auf dem master die

                bind 0.0.0.0
                

                ändern

                und auf dem slave

                bind 0.0.0.0
                

                und

                replicaof 192.168.1.60 6379
                

                als letzte zeile hinzufügen

                amg_666 1 Reply Last reply Reply Quote 0
                • amg_666
                  amg_666 @arteck last edited by

                  @arteck ok, danke. Ich setze neu auf und melde mich dann nochmal, das wird aber erst am Wochenende passieren.

                  arteck 1 Reply Last reply Reply Quote 0
                  • arteck
                    arteck Developer Most Active @amg_666 last edited by

                    @amg_666 kein stress..

                    amg_666 1 Reply Last reply Reply Quote 0
                    • amg_666
                      amg_666 @arteck last edited by

                      @arteck Kannst du mir nochmal helfen? Ich hab jetzt doch schon heute auf allen 3 nodes die redis container plattgemacht und dann neu aufgesetzt, streng nach Anleitung.
                      Teil1 redis einrichten -> alles ok redis-cli info replication hat auf dem Master gezeigt, dass er Master ist und 2 Slaves da sind.

                      Ich habe dann einen Failover-Test gemacht und den Master (192.168.1.60) angehalten. Darauf wurde nach kurzer Zeit der Slave2 (192.168.1.62) zum Master, dann habe ich den Master wieder hochgefahren.

                      1. redis Instanz für objects angelegt auf allen nodes, hat funktioniert
                       ps -ef | grep redis
                      redis        121       1  0 17:01 ?        00:00:04 /usr/bin/redis-server 0.0.0.0:6379
                      redis        122       1  0 17:01 ?        00:00:04 /usr/bin/redis-server 0.0.0.0:6380
                      

                      Dann habe ich sentinel angelegt, das hat auch funktioniert und mir 1 Master, 2 Slaves und 3 Sentinels angezeigt.

                      Dann habe ich die Sentinel.conf erweitert, damit sie beide redis Prozesse überwacht:

                      bind 0.0.0.0
                      port 26379
                      daemonize yes
                      pidfile "/var/run/sentinel/redis-sentinel.pid"
                      logfile "/var/log/redis/redis-sentinel.log"
                      dir "/var/lib/redis"
                      protected-mode no
                      
                      sentinel myid 9eebf305c5cd77bae72f87aa9eccf0ce74dff891
                      sentinel deny-scripts-reconfig yes
                      
                      sentinel monitor objects-master 192.168.1.60 6379 2
                      sentinel failover-timeout objects-master 20000
                      sentinel config-epoch objects-master 0
                      sentinel leader-epoch objects-master 0 
                      
                      sentinel monitor states-master 192.168.1.60 6380 2
                      sentinel failover-timeout states-master 20000
                      sentinel config-epoch states-master 0
                      sentinel leader-epoch states-master 0
                      

                      Die sentinel.con ist auf allen nodes gleich, natürlich bis auf "myid"

                      Problem:

                      redis-cli -p 26379 info sentinel
                      # Sentinel
                      sentinel_masters:2
                      sentinel_tilt:0
                      sentinel_tilt_since_seconds:-1
                      sentinel_running_scripts:0
                      sentinel_scripts_queue_length:0
                      sentinel_simulate_failure_flags:0
                      master0:name=objects-master,status=odown,address=192.168.1.60:6379,slaves=0,sentinels=3
                      master1:name=states-master,status=ok,address=192.168.1.60:6380,slaves=2,sentinels=3
                      

                      Er zeigt 2 Master an (korrekt), aber für die Objects (Port 6379) 0 Slaves (????)
                      Dann ist mir noch aufgefallen, dass 192.168.1.60 nicht mehr Master ist (wahrscheinlich wegen meines Failover Tests), das hat er nach dem Starten des Prozesses nicht wieder zurückgeändert:

                      root@redis1:~# redis-cli info replication
                      # Replication
                      role:slave
                      master_host:192.168.1.62
                      master_port:6379
                      master_link_status:up
                      master_last_io_seconds_ago:0
                      master_sync_in_progress:0
                      slave_read_repl_offset:217785
                      slave_repl_offset:217785
                      slave_priority:100
                      slave_read_only:1
                      replica_announced:1
                      connected_slaves:0
                      master_failover_state:no-failover
                      master_replid:282bd0a72177c2eaff3e1e3b2e58cb341290f627
                      master_replid2:0000000000000000000000000000000000000000
                      master_repl_offset:217785
                      second_repl_offset:-1
                      repl_backlog_active:1
                      repl_backlog_size:1048576
                      repl_backlog_first_byte_offset:75236
                      repl_backlog_histlen:142550
                      

                      Der 192.168.2 wird als Master angezeigt.

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

                        Hat sich erledigt. Irgendwie hat er das Failover nicht richtig zurück genommen, da war für Port 6379 kein Master eingetragen. Ich habe auf dem Master (192.168.1.60) redis und redis-sentinel angehalten, die redis.config geöffnet und alles was nach

                        # Generated by CONFIG REWRITE
                        

                        kommt gelöscht. Dann redis und redis-sentinel neu gestartet, jetzt läuft alles wie gewünscht

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

                        Support us

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

                        921
                        Online

                        31.6k
                        Users

                        79.5k
                        Topics

                        1.3m
                        Posts

                        redis sentinel
                        2
                        13
                        316
                        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