DbLog erzeugte Fehlermeldungen im Logfile bei Datenbankdisconnect

Begonnen von Wolle02, 06 April 2021, 09:46:37

Vorheriges Thema - Nächstes Thema

Wolle02

Guten Morgen,

wenn meine Datenbank für DbLog nicht erreichbar ist, dann erzeugt dies im Fhem-Logile im 30 Sekundenabstand eine Fehlermeldung.

2021.04.06 07:01:13 2: DbLog logdb - Error: DBI connect('database=fhem;host=192.168.10.5;port=3307','fhemuser',...) failed: Can't connect to MySQL server on '192.168.10.5' (115) at ./FHEM/93_DbLog.pm line 2498.

2021.04.06 07:01:43 2: DbLog logdb - Error: DBI connect('database=fhem;host=192.168.10.5;port=3307','fhemuser',...) failed: Can't connect to MySQL server on '192.168.10.5' (115) at ./FHEM/93_DbLog.pm line 2498.

2021.04.06 07:02:13 2: DbLog logdb - Error: DBI connect('database=fhem;host=192.168.10.5;port=3307','fhemuser',...) failed: Can't connect to MySQL server on '192.168.10.5' (115) at ./FHEM/93_DbLog.pm line 2498.

2021.04.06 07:02:43 2: DbLog logdb - Error: DBI connect('database=fhem;host=192.168.10.5;port=3307','fhemuser',...) failed: Can't connect to MySQL server on '192.168.10.5' (115) at ./FHEM/93_DbLog.pm line 2498.

2021.04.06 07:03:14 2: DbLog logdb - Error: DBI connect('database=fhem;host=192.168.10.5;port=3307','fhemuser',...) failed: Can't connect to MySQL server on '192.168.10.5' (115) at ./FHEM/93_DbLog.pm line 2498.


Wenn da mal ein längerfristiges Problem besteht, dann ballert das einem ganz schön das Logfile voll. Könnte man das eventuell abfangen, dass nur eine Fehlermeldung ins Log geschrieben wird oder nur ein paar?

DS_Starter

Du könntest dir z.B. ein notify einrichten und damit dein Logfile überwachen.
Wenn diese Meldung auftaucht könntest du dein DbLog-Device mit

    set <> reopen [Zeit]

für eine gewisse Zeit schließen. Dann würden die Events zunächst gecacht (im asynch Mode) und nach der automatischen Wiedereröffnung der DB-Verbindung in die DB geschrieben, sofern DB wieder da.

Wäre eine Möglichkeit.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wolle02

Ähhh, ja klar wäre das eine Möglichkeit....... aber eine Möglichkeit für eine andere Fragestellung  ;D

Cachen tut DbLog ja und schreibt mir auch alles brav in die Datenbank wenn sie wieder da ist. Mir ging es um die Menge unnötiger Logfileeinträge, die nichts sinnvolles tun, außer das Logfile groß zu machen.
Eine Fehlermeldung, dass etwas nicht funktioniert reicht doch eigentlich. Die braucht man doch nicht alle paar Sekunden wiederholen.

DS_Starter

Naja, solange die DB Verbindung mit "reopen" geschlossen ist gibt es auch keine Logeinträge ... das war dabei der Ansatz  ;)

Wenn ich sowas programmtechnisch lösen wollte, müsste ich ja mitzählen ob schonmal ein Logeintrag geschrieben wurde und wieder zurücksetzen wenn die Db zwischenzeitlich wieder da war und ein neuer "schreibenswerter" Zyklus beginnt usw. usf.
Wäre wohl doch etwas oversized und kontraproduktiv.

verbose = 1 setzen geht auch und mit dann einem notify das "state" beobachten / signalisieren wäre eine weitere Variante.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wolle02

Also gut, dann löse ich das halt so, wobei das halt am Symptom herumgedoktor ist, anstatt die Ursache anzugehen. Und zu versuchen die Ursache eines Problems zu beheben finde ich eigentlich weder oversized noch kontraprduktiv.  :D

DS_Starter

#5
ZitatAlso gut, dann löse ich das halt so, wobei das halt am Symptom herumgedoktor ist, anstatt die Ursache anzugehen
Apropos Ursache ... deine DB ist nicht erreichbar, das ist die Ursache und sollte gelöst werden.  :D

Apropos kontraproduktiv ... andere User wollen vllt. Logeinträge sehen solange ihre DB nicht erreichbar ist und wundern sich dass keine Fehler kommen wenn die Connection nicht geht.  ;)
Stichwort oversized ... da ich die Arbeit damit habe und meine Freizeit investiere ist es für mich oversized. Es sei denn jemand liefert einen funktionierenden Patch.

Wie so oft gibt es die unterschiedlichsten Sichtweisen ...
Wenn es natürlich noch mehr User geben sollte die diese Logeinträge bemängeln, könnte ich nochmal darüber nachdenken.

Edit: Nur der Vollständigkeit halber ... die Häufigkeit der Einträge ist abhängig von der syncInterval-Einstellung. Wenn alle 2 Minuten geschrieben werden soll, kommen evtl. Fehlerlogs auch nur alle 2 Minuten vs. 30 Sekunden.

LG
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter