Log-Datei extern speichern

Begonnen von Marlen, 01 Februar 2017, 09:50:21

Vorheriges Thema - Nächstes Thema

Marlen

Hallo, blondi hat wieder ein komische Frage!

Gibt es eine Möglichkeit, Log-Dateien z.B. auf einer Festplatte die an der Fritz Box hängt zu kopieren oder auf eine FTP Server im Netz?

Oder kann man den Raspberry irgendwie als Netzlaufwerk anlegen?

LG
  Marlen

dev0

Beide Fragen kann man ganz klar mit ja beantworten.

ujaudio

Auf meiner Webseite habe ich mein Vorgehen beschrieben, statt USB-Stick geht natürlich sinngemäß jeder andere Speicherort auch:

...
Am einfachsten ist ein zusätzlicher Speicher neben der SD mit einem kleinen USB-Stick zu realisieren. Mit ein paar wenigen Kommandos kann man dem Raspberry beibringen, einen USB-Stick zu erkennen.

sudo apt-get install usbmount
sudo vi /etc/usbmount/usbmount.conf
# dann nach der Zeile FS_MOUNTOPTIONS="" suchen und ändern in
# FS_MOUNTOPTIONS="-fstype=vfat,gid=users,dmask=0007,fmask=0117" und abspeichern
sudo reboot

Nun wird ein USB-Stick automatisch dem Anwender nutzbar gemacht, wenn man ihn steckt. Am besten ist, man nimmt einen ganz kleinen (Nano-)USB-Stick, den man für Linux (ext4) formatiert hat, denn die Dateirechte sollen mitgenommen werden.

Dieser kann die ganze Zeit gesteckt bleiben. Praktischerweise richtet man noch 2 Verzeichnisse ein:
•sync – hier kann der gesamte Pfad /opt/fhem der SD regelmäßig synchronisiert werden (siehe weiter unten)
•log – hier sollen die Logdateien auch schon standardmäßig ablegt werden

Die Logdateien werden in ein Standardverzeichnis geschrieben. Nun gibt es Gründe, dass man das ändern möchte: der wichtigste ist wohl, dass man die permanenten Schreibzugriffe auf die microSD des Raspberry verhindern sollte, weil ein Defekt der SD das gesamte System lahm legt. Deshalb ist es besser , wenn man diese auf einer separaten Hardware, z.B. USB-Speicher, ablegt. Man erreicht das wie folgt:

attr global logdir /media/usb0/log
attr global logfile /media/usb0/log/fhem-%Y-%m.log
attr global statefile /media/usb0//log/fhem.save
attr global archivedir /media/usb0/log
attr global narchive 4

attr autocreate filelog /media/usb0/log/%NAME-%Y.log

Nun werden alle Logdateien dort abgelegt, die Zieladresse muss ggf. angepasst werden. Die Anzahl der Logdateien im Archiv habe ich durch das letzte Attribut narchive begrenzt.
...
Einen lieben Gruß
Jürgen

Marlen

ZitatBeide Fragen kann man ganz klar mit ja beantworten.
Echt??? Und wie geht das?

ZitatAuf meiner Webseite habe ich mein Vorgehen beschrieben 
Wie ist denn die URL?
Ich möchte die Daten aber auf einen Speicher ablegen, der nicht direkt am Raspberry hängt und einfach über das Intranet oder besser Internet erreichbar ist!

Lg
  Marlen

dev0

Zitat von: Marlen am 01 Februar 2017, 12:23:16
Echt???
Ja.

Zitat von: Marlen am 01 Februar 2017, 12:23:16
Und wie geht das?
Entferntes Filesystem auf Betriebssystemebene mounten und dann kopieren.

Wenn Du exakte Fragen stellst, dann wirst Du auch exakte Antworten bekommen.

Fixel2012

#5
Hey,

ich misch mich hier mal kurz ein ???

Wie genau ist das denn eigentlich mit dem vielen schreiben auf einer SD-Karte? Wird diese dadurch wirklich extremer belastet, sprich sie geht schneller kaputt?

Falls ja, wie kann man das am geschicktesten umgehen.

Mir persönlich fallen da 2 Varianten ein, gibt es noch mehr?:


  • Einmal die Logs extern zu speichern, d.h. USB usw...
  • Oder auf DbLog umsteigen? Da dadurch nur noch eine Datei geschrieben wird, schont das auch die SD-Karte, oder nicht?

Würdet ihr das umstellen der Logs auf DBLog oder externen Speicher empfehlen?

Bin schon des längeren am überlegen umzustellen, traue mir diesen großen Schritt ohne Schritt für Schritt Anleitung nicht zu :-[

Gibt es gut beschriebene Anleitungen zur DBLog Einrichtung? Könnte es Problemen bei oder nach der Umstellung von DBLog geben?

Gruß Fixel
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Marlen

ZitatWie genau ist das denn eigentlich mit dem vielen schreiben auf einer SD-Karte? Wird diese dadurch wirklich extremer belastet, sprich sie geht schneller kaputt?

Ach so, so hab ich das noch gar nicht gesehen!
Mein Ziel war es, z.B. einfach schnell die Daten abzugreifen um sie vielleicht in Excel zu analysieren.

LG
  Marlen

AxelSchweiss

Mit der Ausnahme LogDB kann FHEM nur auf Filesystem schreiben. ( Einen Syslog-Adapter wünsch ich mir auch)
Daher wirst du alles andere als Filesystem einbinden müssen.

Für ssh gibt es zum Beispiel ein sshfs  .. wie genau das geht musst du dir anlesen ... bzw googeln.
Wahrscheinlich gibts auch ein ftpfs.
Alternativ funktioniert WebDav ganz gut .... allerdings sind die Latenzen grottig.

Aber eventuell macht es ja Sinn die Logs periodisch mittels rsync zu kopieren
Danke daran das wenn dein Cloud-Speicher ausfällt oder nicht erreichbar ist ... steht dein komplettes FHEM .... unter Umständen sogar das ganze Betriebssytem.

AxelSchweiss

Zitat von: Marlen am 01 Februar 2017, 13:03:30
Mein Ziel war es, z.B. einfach schnell die Daten abzugreifen um sie vielleicht in Excel zu analysieren.

Wenn es dir um einen Zugriff nur auf das Zahlenmaterial geht ... für Auswertungen .... dann nimm LogDB und schreiben die Zahlen in eine MySQL-Datenbank
Das kann dann auch eine DB im I-Net sein.
Aber Vorsicht: Wenn die Verbindung weg ist steht auch hier das gesamte FHEM.
Deswegen lieber eine lokale Master-DB installieren und eine Replik ins I-Net ... wenns den unbedingt im I-Net stehen muss ( Sicherheit)



Marlen

Zitat von: dev0 am 01 Februar 2017, 12:41:24
Ja.
Entferntes Filesystem auf Betriebssystemebene mounten und dann kopieren.

Wenn Du exakte Fragen stellst, dann wirst Du auch exakte Antworten bekommen.

Wie macht man das?

LG Marlen

kroemmel

#10
Moin,

Zitat von: Fixel2012 am 01 Februar 2017, 12:54:52
Wird diese dadurch wirklich extremer belastet, sprich sie geht schneller kaputt?
Im Zweifel ist das richtig. Obwohl "vernünftige" Karten einiges an Lese/Schreibzyklen aushalten.

Zitat von: Fixel2012 am 01 Februar 2017, 12:54:52
Falls ja, wie kann man das am geschicktesten umgehen.

Mir persönlich fallen da 2 Varianten ein, gibt es noch mehr?:


  • Einmal die Logs extern zu speichern, d.h. USB usw...
  • Oder auf DbLog umsteigen? Da dadurch nur noch eine Datei geschrieben wird, schont das auch die SD-Karte, oder nicht?

Beides gangbare Wege! Wenn du die DB auf der SD Karten laufen läßt, auf der auch deine Logs auflaufen, gewinnst du quasi nix. Also wenn Umstellung auf DB, dann sollte die DB auf einem externen Host laufen.
Bei Auslagerung auf ein USB-Drive gewinnst du im Zweifel auch nichts, da ein USB-Drive quasi nix anderes als ne SD Karte mit Verpackung drum rum ist :)
Einziger Vorteil wäre, dass wenn durch das Logging der USB über den Jordan geht, deine restliche Installation ungefährdet bleibt.

Ich nutze Variante 3: FHEM läuft auf nem RasPi, Logging erfolgt per gemountetem Netzlauflaufwerk auf meine NAS (da sind Magnetlaufwerke drin :) ), zusätzlich beginne ich grad auf DBLog umzustellen, zwecks höherer Geschwindigkeit bei Analyse, ggf. sogar über ein eigenes WebFrontend zur Analyse.

Kommt also ganz auf den Aufwand an, dem man betreiben mag und was man eigentlich erzielen möchte.

Grüße
kroemmel

PS: Lese grad die Antwort von AxelSchweiss - steht FHEM echt komplett, wenn kein Logging erfolgen kann? Ist mir bisher noch nicht so untergekommen / wahrgenommen.
() FHEM als Ubuntu-VM
() VCCU mit 1 HMLAN, 2 UARTs und div. Sensoren/Aktoren (primär HM), HUE,
() Integration Fritz!Box, Googlekalender, Unifi, Viessmann Heizung, Umweltbedingungen, Sonnenstand, PWM, Jalousiesteuerung, Anwesenheitserkennung, Raumklimaüberwachung, Telegram

Fixel2012

Zitat von: kroemmel am 01 Februar 2017, 13:14:59
Moin,
Im Zweifel ist das richtig. Obwohl "vernünftige" Karten einiges an Lese/Schreibzyklen aushalten.

Beides gangbare Wege! Wenn du die DB auf der SD Karten laufen läßt, auf der auch deine Logs auflaufen, gewinnst du quasi nix. Also wenn Umstellung auf DB, dann sollte die DB auf einem externen Host laufen.
Bei Auslagerung auf ein USB-Drive gewinnst du im Zweifel auch nichts, da ein USB-Drive quasi nix anderes als ne SD Karte mit Verpackung drum rum ist :)
Einziger Vorteil wäre, dass wenn durch das Logging der USB über den Jordan geht, deine restliche Installation ungefährdet bleibt.

Ich nutze Variante 3: FHEM läuft auf nem RasPi, Logging erfolgt per gemountetem Netzlauflaufwerk auf meine NAS (da sind Magnetlaufwerke drin :) ), zusätzlich beginne ich grad auf DBLog umzustellen, zwecks höherer Geschwindigkeit bei Analyse, ggf. sogar über ein eigenes WebFrontend zur Analyse.

Kommt also ganz auf den Aufwand an, dem man betreiben mag und was man eigentlich erzielen möchte.

Grüße
kroemmel

PS: Lese grad die Antwort von AxelSchweiss - steht FHEM echt komplett, wenn kein Logging erfolgen kann? Ist mir bisher noch nicht so untergekommen / wahrgenommen.
Danke,
möglichkeit 3 hätte ich auch zur Auswahl. Aber was wenn mein NAS durch verschiedene Gründe für ein Paar Minuten nicht erreichbar ist? Kriegt Fhem das mit? Wie reagiert Fhem dabei?

ZitatWenn du die DB auf der SD Karten laufen läßt, auf der auch deine Logs auflaufen, gewinnst du quasi nix.

Warum? :o DBLog ist eine Datei? meine Log Dateien sind mehrere, somit minimiere ich den Schreib Aufwand zumindest. Oder nicht?
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Fixel2012

#12
Zitat von: Marlen am 01 Februar 2017, 13:12:49
Wie macht man das?

LG Marlen

Wenn du ein vorhandenes Netzwerklaufwerk hast, kannst du dieses mit dem Befehl Mount in dein Dateisystem einbinden. Und somit dann auf deinem Netzwerklaufwerk lesen und schreiben.

Frag mal Google, Google weiß da mehr als ich ;D ;)

Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

kroemmel

Zitat von: Fixel2012 am 01 Februar 2017, 13:20:22
Aber was wenn mein NAS durch verschiedene Gründe für ein Paar Minuten nicht erreichbar ist? Kriegt Fhem das mit? Wie reagiert Fhem dabei?
Wenn ich das bisher richtig beobachtet habe, wird in dem Zeitraum einfach kein Log (bzw. keine Logs) geschrieben. Du hast dann also eine "Lücke" in den Daten.

Zitat von: Fixel2012 am 01 Februar 2017, 13:20:22
Warum? :o DBLog ist eine Datei? meine Log Dateien sind mehrere, somit minimiere ich den Schreib Aufwand zumindest. Oder nicht?

Dafür steigerst du die Zugriffe auf diese 1 Datei deutlich. Du sparst dir natürlich ne ganze Menge Meta-Zugriff (Datei öffen, schreiben, schließen), etc. Aber ob ich "BLA" in drei Dateien schreibe, oder 3x "BLA" sequentiell in eine Datei, dürfte sich nicht viel geben. Ich mag aber auf dem Holzweg sein, an dieser Stelle.

Grüße,
kroemmel
() FHEM als Ubuntu-VM
() VCCU mit 1 HMLAN, 2 UARTs und div. Sensoren/Aktoren (primär HM), HUE,
() Integration Fritz!Box, Googlekalender, Unifi, Viessmann Heizung, Umweltbedingungen, Sonnenstand, PWM, Jalousiesteuerung, Anwesenheitserkennung, Raumklimaüberwachung, Telegram

Fixel2012

Zitat von: kroemmel am 01 Februar 2017, 13:33:02
Wenn ich das bisher richtig beobachtet habe, wird in dem Zeitraum einfach kein Log (bzw. keine Logs) geschrieben. Du hast dann also eine "Lücke" in den Daten.

Dafür steigerst du die Zugriffe auf diese 1 Datei deutlich. Du sparst dir natürlich ne ganze Menge Meta-Zugriff (Datei öffen, schreiben, schließen), etc. Aber ob ich "BLA" in drei Dateien schreibe, oder 3x "BLA" sequentiell in eine Datei, dürfte sich nicht viel geben. Ich mag aber auf dem Holzweg sein, an dieser Stelle.

Grüße,
kroemmel

Super, Danke dir!  :D
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify