FileLogConvert: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
50watt (Diskussion | Beiträge) K (→Events unterdrücken: Tippfehler) |
||
(6 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 16: | Zeile 16: | ||
Kann dazu verwendet werden, um FileLogs in eine DbLog-Datenbank einzulesen. | Kann dazu verwendet werden, um FileLogs in eine DbLog-Datenbank einzulesen. | ||
== Vorbereitung == | |||
Zuerst brauchen wir ein DbLog-Device: | Zuerst brauchen wir ein DbLog-Device: | ||
Zeile 31: | Zeile 31: | ||
cp /opt/fhem/contrib/98_FileLogConvert.pm /opt/fhem/FHEM | cp /opt/fhem/contrib/98_FileLogConvert.pm /opt/fhem/FHEM | ||
Wenn die Datei nicht vorhanden ist, muss ein [[Cmdalias#svnupdate|update von contrib]] vorgenommen werden | Wenn die Datei nicht vorhanden ist, muss ein [[Cmdalias#svnupdate|update von contrib]] vorgenommen werden: | ||
svn checkout https://svn.fhem.de/fhem/trunk/fhem/contrib/ contrib | |||
Das neue Modul muss in fhem geladen sein: | |||
reload 98_FileLogConvert.pm | |||
dann kann ein FileLogConvert-Device angelegt werden | dann kann ein FileLogConvert-Device angelegt werden | ||
Zeile 37: | Zeile 42: | ||
define flc FileLogConvert <DbLogDevice> | define flc FileLogConvert <DbLogDevice> | ||
== Arbeiten mit dem FileLogConvert-Device == | |||
nun können mit | nun können mit | ||
Zeile 46: | Zeile 51: | ||
== Tipps und Tricks == | |||
wenn man bei | === Events unterdrücken === | ||
wenn man bei Erstellung des DbLog-Devices ein | |||
attr .* DbLogExclude .* | attr .* DbLogExclude .* | ||
absetzt, werden keine Events geloggt. | absetzt, werden keine Events geloggt. | ||
Zeile 61: | Zeile 67: | ||
Das ganze funktioniert natürlich nur, wenn man in der Zwischenzeit keine neuen Logeinträge schreiben lässt (durch DbLog). | Das ganze funktioniert natürlich nur, wenn man in der Zwischenzeit keine neuen Logeinträge schreiben lässt (durch DbLog). | ||
Abgesehen davon erhöht das ganze noch die Stabilität und Konsistenz der Datenbank | Abgesehen davon erhöht das ganze noch die Stabilität und Konsistenz der Datenbank | ||
=== Log-Dateien splitten === | |||
Wenn man größere Logdateien hat, dauert der import unter umständen sehr lange. | |||
Daher besteht die Möglichkeit, die Logdateien in kleinere Stücke zu unterteilen, damit man z.B. zwischendurch unterbrechen kann: | |||
split -C 5m --numeric-suffixes input-file output-prefix | |||
Blöderweise kann man nur Dateien importieren, die mit .log enden. | |||
Deshalb muss man noch eine kleine verrenkung machen: | |||
[[Kategorie:Logging]] |
Aktuelle Version vom 12. April 2024, 12:56 Uhr
FileLogConvert | |
---|---|
Zweck / Funktion | |
einlesen von Filelogs in eine logdb | |
Allgemein | |
Typ | Hilfsmodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | FHEM |
Modulname | 98_FileLogConvert.pm |
Ersteller | DeeSPe |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Kann dazu verwendet werden, um FileLogs in eine DbLog-Datenbank einzulesen.
Vorbereitung
Zuerst brauchen wir ein DbLog-Device:
dazu könnte ein DbRep-Device helfen:
Wenn das soweit erledigt ist, muss das FileLogConvert-Modul aus contrib nach FHEM kopiert werden:
cp /opt/fhem/contrib/98_FileLogConvert.pm /opt/fhem/FHEM
Wenn die Datei nicht vorhanden ist, muss ein update von contrib vorgenommen werden:
svn checkout https://svn.fhem.de/fhem/trunk/fhem/contrib/ contrib
Das neue Modul muss in fhem geladen sein:
reload 98_FileLogConvert.pm
dann kann ein FileLogConvert-Device angelegt werden
define flc FileLogConvert <DbLogDevice>
Arbeiten mit dem FileLogConvert-Device
nun können mit
set flc import2DbLog <Filelog-Dateiname.log>
die logdateien importiert werden
Tipps und Tricks
Events unterdrücken
wenn man bei Erstellung des DbLog-Devices ein
attr .* DbLogExclude .*
absetzt, werden keine Events geloggt. Dadurch kann man hinterher die Zeilen der Datei
wc -l Dateiname
mit den importierten Zeilen
Reading lines-imported
mit den in der Datenbank vorhandenen Zeilen
sqlite3 db.db select count(*) from history;
vergleichen. Der Count-Befehl gibt die totale anzahl an Zeilen an, so dass hier ggf. eine Verrechnung mit den vorher in der Datenbank vorhandenen Zeilen notwendig ist. Das ganze funktioniert natürlich nur, wenn man in der Zwischenzeit keine neuen Logeinträge schreiben lässt (durch DbLog). Abgesehen davon erhöht das ganze noch die Stabilität und Konsistenz der Datenbank
Log-Dateien splitten
Wenn man größere Logdateien hat, dauert der import unter umständen sehr lange. Daher besteht die Möglichkeit, die Logdateien in kleinere Stücke zu unterteilen, damit man z.B. zwischendurch unterbrechen kann:
split -C 5m --numeric-suffixes input-file output-prefix
Blöderweise kann man nur Dateien importieren, die mit .log enden. Deshalb muss man noch eine kleine verrenkung machen: