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

    • 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) Problem mit Redis Sentinel

    This topic has been deleted. Only users with topic management privileges can see it.
    • amg_666
      amg_666 @arteck last edited by amg_666

      @arteck sagte in Problem mit Redis Sentinel:

      du brauchst aber eine ungerade Anzahl

      mir ist klar, dass bei proxmox HA eine ungrade (eigentlich eine Primzahl) an nodes brauche, damit ein Quorum einen Master bestimmen kann.
      Den 4. Node hatte ich zum Testen mit eingehängt, den hab ich jetzt mal deaktiviert.

      Ich habe für redis getrennte Prozesse für Objects und states.
      MASTER
      redis states

      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"
      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
      

      redis objects

      bind 0.0.0.0
      protected-mode no
      port 6380
      tcp-backlog 511
      timeout 0
      tcp-keepalive 300
      daemonize yes
      pidfile /run/redis/redis-server2.pid
      loglevel notice
      logfile /var/log/redis/redis-server2.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/redis2
      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 100bind 0.0.0.0
      protected-mode no
      port 6380
      tcp-backlog 511
      timeout 0
      tcp-keepalive 300
      daemonize yes
      pidfile /run/redis/redis-server2.pid
      loglevel notice
      logfile /var/log/redis/redis-server2.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/redis2
      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 100bind 0.0.0.0
      protected-mode no
      port 6380
      tcp-backlog 511
      timeout 0
      tcp-keepalive 300
      daemonize yes
      pidfile /run/redis/redis-server2.pid
      loglevel notice
      logfile /var/log/redis/redis-server2.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/redis2
      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 100bind 0.0.0.0
      protected-mode no
      port 6380
      tcp-backlog 511
      timeout 0
      tcp-keepalive 300
      daemonize yes
      pidfile /run/redis/redis-server2.pid
      loglevel notice
      logfile /var/log/redis/redis-server2.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/redis2
      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
      

      sentinel

      bind 0.0.0.0
      port 26379
      daemonize no
      pidfile "/var/run/sentinel/redis-sentinel.pid"
      logfile "/var/log/redis/redis-sentinel.log"
      dir "/var/lib/redis"
      protected-mode no
      
      sentinel myid ad045114c4d58ddb8fa909a991ccb6f0a760ea2e
      
      sentinel deny-scripts-reconfig yes
      sentinel monitor states-master 192.168.1.60 6380 2
      sentinel failover-timeout states-master 20000
      sentinel config-epoch states-master 8394
      sentinel leader-epoch states-master 8394
      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 8451
      

      SLAVE1
      redis states

      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
      

      redis objects

      bind 0.0.0.0
      protected-mode no
      port 6380
      tcp-backlog 511
      timeout 0
      tcp-keepalive 300
      daemonize no
      pidfile "/run/redis/redis-server2.pid"
      loglevel notice
      logfile "/var/log/redis/redis-server2.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/redis2
      replicaof 192.168.1.60 6380
      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
      

      sentinel

      bind 0.0.0.0
      port 26379
      daemonize no
      pidfile "/var/run/sentinel/redis-sentinel.pid"
      logfile "/var/log/redis/redis-sentinel.log"
      dir "/var/lib/redis"
      protected-mode no
      
      sentinel myid 44fb53a16845f7cb919950f55f84a2b968ef2248
      
      sentinel deny-scripts-reconfig yes
      sentinel monitor states-master 192.168.1.60 6380 2
      sentinel failover-timeout states-master 20000
      sentinel config-epoch states-master 8394
      sentinel leader-epoch states-master 8394
      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 8451
      
      1 Reply Last reply Reply Quote 0
      • 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

                          890
                          Online

                          31.9k
                          Users

                          80.2k
                          Topics

                          1.3m
                          Posts

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