Ankündigung

Einklappen
Keine Ankündigung bisher.

Openhab + Influxdb + Grafana - structure needs cleaning

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Openhab + Influxdb + Grafana - structure needs cleaning

    Hallo,
    ich habe openhab 2.5 auf meinem Raspberry 3+ laufen.
    Darin ist auf eine influxdb Datenbank und Grafana installiert, die einige Werte mitloggt und grafisch darstellt.
    Nun funktioniert seit 3 Tagen grafana nicht mehr - bzw. loggt keine Daten mehr.
    Im Openhab.log steht folgendes:

    Code:
    [COLOR=#6a9955]2020-01-20[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#6a9955]23:49:00.295[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#ce9178][B][ERROR][/B][/COLOR][COLOR=#d4d4d4] [[/COLOR][COLOR=#569cd6]org.influxdb.impl.BatchProcessor[/COLOR][COLOR=#d4d4d4]    ] - Batch could not be sent. Data will be lost[/COLOR]
    [COLOR=#ce9178][I]java.lang.RuntimeException[/I][/COLOR][COLOR=#d4d4d4]: {[/COLOR][COLOR=#ce9178]"error"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"[shard 581] lstat /var/lib/influxdb/data/openhab_db/autogen/581/fields.idx: structure needs cleaning"[/COLOR][COLOR=#d4d4d4]}[/COLOR]
    
    [COLOR=#ce9178][I]    at org.influxdb.impl.InfluxDBErrorHandler.handleError (InfluxDBErrorHandler.java:19) ~[influxdb-java-2.2.jar:?][/I][/COLOR]
    [COLOR=#ce9178][I]    at retrofit.RestAdapter$RestHandler.invoke(RestAdapte r.java:242) ~[retrofit-1.9.0.jar:?][/I][/COLOR]
    [COLOR=#ce9178][I]    at org.influxdb.impl.$Proxy162.writePoints(Unknown Source) ~[?:?][/I][/COLOR]
    [COLOR=#ce9178][I]    at org.influxdb.impl.InfluxDBImpl.write(InfluxDBImpl. java:151) ~[influxdb-java-2.2.jar:?][/I][/COLOR]
    [COLOR=#ce9178][I]    at org.influxdb.impl.BatchProcessor.write(BatchProces sor.java:171) [influxdb-java-2.2.jar:?][/I][/COLOR]
    [COLOR=#ce9178][I]    at org.influxdb.impl.BatchProcessor$1.run(BatchProces sor.java:144) [influxdb-java-2.2.jar:?][/I][/COLOR]
    [COLOR=#ce9178][I]    at java.util.concurrent.Executors$RunnableAdapter.cal l(Executors.java:511) [?:1.8.0_222][/I][/COLOR]
    [COLOR=#ce9178][I]    at java.util.concurrent.FutureTask.runAndReset(Future Task.java:308) [?:1.8.0_222][/I][/COLOR]
    [COLOR=#ce9178][I]    at java.util.concurrent.ScheduledThreadPoolExecutor$S cheduledFutureTask.access$301(ScheduledThreadPoolE xecutor.java:180) [?:1.8.0_222][/I][/COLOR]
    [COLOR=#ce9178][I]    at java.util.concurrent.ScheduledThreadPoolExecutor$S cheduledFutureTask.run(ScheduledThreadPoolExecutor .java:294) [?:1.8.0_222][/I][/COLOR]
    [COLOR=#ce9178][I]    at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1149) [?:1.8.0_222][/I][/COLOR]
    [COLOR=#ce9178][I]    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624) [?:1.8.0_222][/I][/COLOR]
    [COLOR=#ce9178][I]    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222][/I][/COLOR]
    Ich habe das Gefühl, das inzwischen zu viele Datensätze vorhanden sind und weiß nicht, wie ich dies mal bereinigen könnte.
    Retention policy steht auf "autogen" unter influxdb.cfg

    #2
    Zitat von pbogocz Beitrag anzeigen
    auf meinem Raspberry
    Wenn ich deine Fehlermeldung in eine Suchmaschine eingebe deutet das eher auf ein korruptes Dateisystem hin: suche mal nach "fsck structure needs cleaning rpi" und du wirst fündig.

    Kommentar


      #3
      Könnte durchaus auch sein - will ich nicht ausschließen. Wenn auch openhab ansonsten läuft. Nur die Charts haben keine aktuellen Daten mehr.
      Die Fehlermeldung sagt aber konkret:
      "error":"[shard 581] lstat /var/lib/influxdb/data/openhab_db/autogen/581/fields.idx: structure needs cleaning"}

      Wie kann ich die Datenbank manuell bereinigen? Hat das schon mal jemand gemacht?
      Ich würde gerne versuchen, alles was älter als 1 Jahr ist, wegzuschmeißen.

      Kommentar


        #4
        Zitat von pbogocz Beitrag anzeigen
        Die Fehlermeldung sagt aber konkret
        Eben. Lass doch mal fsck laufen ...

        Zitat von pbogocz Beitrag anzeigen
        Wie kann ich die Datenbank manuell bereinigen?
        https://docs.influxdata.com/influxdb...th-drop-series
        https://community.influxdata.com/t/h...of-data/4340/2
        Zuletzt geändert von sihui; 21.01.2020, 10:31.

        Kommentar


          #5
          Ich habe mich über putty am raspi angemeldet und fsck -p (meine ich) eingegeben. Es kam aber eine Warnmeldung, dass dadurch mein Dateisystem beschädigt wird und ob ich fortfahren will. Da habe ich erstmal zurückgeschreckt und das abgebrochen....

          Kommentar


            #6
            https://www.rustimation.eu/index.php...em-reparieren/

            Kommentar


              #7
              Okay, ich probiere es heute abend dann mit:
              sudo touch /forcefsck

              Danke - ich werde berichten

              Kommentar


                #8
                Also - das Problem scheint mit der Überprüfung
                Code:
                sudo touch /forcefsck
                und reboot behoben zu sein.
                Im Log kommen momentan keine Errors und die Graphen erscheinen wieder langsam.
                Jetzt habe ich festgestellt, dass mein RAM mit rund 200MB frei ziemlich am Limit zu sein scheint.
                Normalerweise hatte ich nach einem Reboot rund 50% freien RAM.
                Ich warte jetzt eine Stunde und mache erneut ein reboot - mal schauen ob sich der Kleine wieder fängt.

                Kommentar


                  #9
                  Das mit dem RAM würde ich nicht überbewerten, nur weil wenig freies RAM angezeigt wird, heißt das nicht, dass auch alles davon grade genutzt wird. Die Garbage Collection läuft nicht ständig, entsprechend sieht das immer viel schlimmer aus, als es ist.

                  Kommentar


                    #10
                    Das ganze Thema hat sich noch weiter entwickelt.
                    Nach rund einer Stunde war mein Raspi nicht mehr erreichbar und auch openhab nicht mehr.
                    Ich habe bemerkt, dass die Änderungen die ich gemacht habe in der Zeit in welcher der Raspi noch online war, nach dem Reboot nicht mehr vorhanden waren.
                    Das ist wohl ein typisches Zeichen für einen SD-Karten Tod.
                    Also habe ich die SD karte auf eine Neue geklont und nochmal
                    Zitat von pbogocz Beitrag anzeigen
                    sudo touch /forcefsck
                    ausgeführt.
                    Jetzt läuft es.
                    Trotzdem versuche ich die influxdb Datenbank auf eine externe SSD auszulagern.
                    Ich habe eine alte SSD unter Windows in ntfs formatiert und an den Raspberry angeschlossen.
                    Dann mit "sudo mkdir /media/usb-platte" ein Verzeichnis erstellt und mit " sudo mount /dev/sda1 /media/usb-platte" gemounded.
                    Schließlich noch die UUID herausgefunden mit " sudo blkid" - z.B.5C24-1453 und über "sudo nano /etc/fstab " den folgenden Eintrag hinzugefügt " UUID=5C24-1453 /media/usb-platte ntfs defaults,auto,users,rw,nofail, umask=000,x-systemd.device-timeout=30 0 0 " für Automount.
                    Nach einem Reboot habe ich gecheckt ob noch alles da ist über "sudo lsblk -o UUID,NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL". Mountpoint noch vorhanden - super.
                    Jetzt wollte ich vom PC auf das Laufwerk zugreifen und bekomme es nicht hin.
                    Zuerst habe ich mit"sudo chmod 777 /media/usb-platte" allen die Schreibrechte gegeben.
                    Dann mit "sudo nano /etc/samba/smb.conf" einen Eintrag unten hinzugefügt
                    [media-usb-platte]
                    comment=media-usb-platte
                    path=/media/usb-platte
                    browseable=yes
                    writeable=yes
                    only guest=no
                    create mask=777
                    Directory mask=777
                    public=no

                    Tja - aber leider kann ich nicht vom Windows PC zugreifen wie auf die Anderen openhab Ordner.
                    Ich habe auch testhalber die smb.conf so verändert für den media/usb-platte Pfad wie die anderen openhab-Ordner definiert sind - geht trotzdem nicht.
                    Wenn also jemand eine gute Idee hat wie das geht - immer mal her damit

                    Kommentar


                      #11
                      Hast Du denn samba mit sudo systemctl restart smbd neu gestartet?

                      Ansonsten wäre die Frage, warum ntfs? Für den Raspberry ist das ein exotisches Filesystem, ob Du mit den Daten am PC arbeiten kannst, bin ich nicht sicher. Für den Havariefall könntest Du auf Deinem PC eine virtuelle Maschine einrichten (ich nutze dazu den VMware Workstation Player) an die Du jedes per USB angeschlossene Gerät per Klick weiterreichen kannst, dann hast Du kompletten Zugriff auf die Platte von der VM aus, egal welches Dateisystem Du nutzt.
                      Zuletzt geändert von udo1toni; 25.01.2020, 13:27.

                      Kommentar

                      Lädt...
                      X