Hallo Community, ich möchte meine Logs auf DBLog umstellen. Da mir Linux nicht so einfach von der Hand geht möchte ich wenn möglich mit wenig Iteationen zu meiner Wunschconfig kommen ;-)
Mein (Wunsch)Ziel sieht wie folgt aus.
Installation einer MySQL DB auf dem RPi parallel zur FHEM Installation. Dort sollen alle Logs (DBLog) auflaufen. Die Vorhaltezeit der Logs soll auf dem RPi max. 2 Monate betragen damit die Datein nicht zu groß werden.
Mit diesen Daten sollen auch die FHEM Plots erstellt werden. Da benötige ich keine Daten > 1 Monat.
Dazu möchte ich eine weitere MySQL DB auf der NAS (QNAP) installieren. Direkt auf die NAS schreiben ist nicht die bevorzugte Option da die Logs permanent kommen und ich die NAS aktuell möglichst oft stromsparend in den Ruhemodus versetze was dann nicht mehr möglich wäre . Aus diesem Grund wäre es prima wenn man 1 x täglich automatisiert die Logs des Tages kopiert/spiegelt.
Die dann verfügbaren Langzeitdaten auf der NAS würde ich gerne mit Grafana aufbereiten. Diese Daten werden auch nicht häufig im Jahr benötigt. Immer nur ab und zu. Das alles dann mit der Kombination Laptop / NAS um zum einen etwas mehr Power zu haben und entkoppelt zur FHEM Installation nutzen zu können.
Ich hoffe ich konnte mein Ziel verständlich darstellen. Nun die einfache ;-) Frage an Euch.
Kann man das so umsetzen und was ist dabei zu beachten oder gibt es schon ähnliche/bessere Konzepte die ich "einfach" übernehmen kann.
Vielen Dank vorab für Eure Unterstützung
Für die Installation einer Mysql DB auf einem Raspberry gibt es genügend Anleitungen im Netz.
Ein DBLog funktioniert nur, wenn dieser auch permanent läuft.
Somit wird es mit der NAS nicht funktionieren, wenn du diese immer schlafen schickst.
Was möglich wäre, dass du die Log auch auf der NAS hast, ist ein regelmässiger Export der Daten auf dem RPI und Import auf der NAS.
Das musst du allerdings händisch machen.
Sicher gibt es automatische Möglichkeiten, doch dazu musst du einen regelmässigen Dump der Datenbank machen und diesen auf der NAS einspielen. Doch dazu brauchst du gute Linuxkenntnisse.
Damit das DBLog nicht zu groß wird, gibt es automatische Reduce Einstellungen.
Es schadet nicht, sich vor der Umstellung genau mit DBLog auseinander zu setzen.
Linuxkenntnissen erwirbt man mit der Zeit, wenn Man(n) sich damit beschäftigt. Es ist nicht so schwer. Es schadet nicht wenn mein eine RPI hat.
Wichtig ist nur zu wissen, dass Linux (auf der Konsole) dich nicht fragt, ob du sicher bist!
Nicht gut ist ein rm -r / und das als root. ;D --> dann löscht dir das System unterm Hintern komplett weg. (Festplatte oder Stick ist dann leer!)
Hallo Maci,
danke für Deine Antwort. Ja, richtig .. Anleitungen für die Installation von MySQL gibt es genügend. Das soll auch nicht das Problem sein.
Mir geht es um eine Einschätzung zum Ablauf so wie ich ihn beschrieben habe. Im wesentlichen ist das die Option die MySQL Log Daten asynchron (am besten einmal täglich) vom RPi auf eine MySQL DB auf der NAS zu spiegeln/kopieren da ich genau die NAS Box nicht permaent laufen lassen möchte.
FHEM Plots sollen dann von den MySQL Daten vom RPi erstellt werden und auf die kopierten Daten die dann auf dem NAS System liegen möchte ich vom Laptop zugreifen. Idealerweise irgendwann mal über eine Grafana Dashboard.
Wäre prima falls jemand im Forum eine Idee hat ob und wie man soetwas am besten realisiert. Stichpunkte zur möglichen Umsetzung reichen mir schon. Ich kämpfe mich dann gerne durch :-)
Vielen Dank
Schade, dass es hier nicht weitergeht :-\
Wäre auch interessiert....
Hallo zusammen,
ein solches Konstrukt ist mit DbRep möglich zu bauen. Die grundsätzliche Vorgehensweise ist im Wiki hier:
https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Datens.C3.A4tze_.28Devices.29_von_einer_Datenbank_in_eine_andere_umziehen_.28Export.2FImport.29
beschrieben.
Im Prinzip erstellt man sich ein DbRep-Device für den Export und eines für den Import. Zwei, weil man jedem DbRep-Device ein eindeutiges DbLog-Device zuordenen muss.
Das DbLog für das NAS -MySQL darf natürlich nichts loggen -> deswegen im DEF etwas angeben was garantiert nie zutrifft , z.B. aaaaaa:bbbbbbb.
Ist das gemacht, kann z.B. einmal am Tag der Export aller Daten auf der MySQL-PI der letzten 24 h vorgenommen werden um sie danach auf dem NAS in die MySQL zu importieren. Man kann die Zeiten ruhig überlappen lassen wenn man in der ZIEL-Datenbank einen Primary Key verwendet. Der verhindert doppelte Datensätze.
Um das zu tun würde man der Tabelle history auf dem NAS den primary key so hinzufügen:
ALTER IGNORE TABLE `history` ADD PRIMARY KEY(TIMESTAMP, DEVICE, READING);
Auch das kann man im DbRep (sqlCmd) erledigen sobald die Devices eingerichtet sind.
Ich hoffe das reicht so als Anregung.
Grüße
Heiko