Autor Thema: Modul 93_Log2Syslog - FHEM Logs an Syslog-Server leiten und Syslogs empfangen  (Gelesen 4207 mal)

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2700
Mit dem Attribut "sendSeverity" kann nun im Sender-Device gefiltert werden, dass nur Syslog-Nachrichten versendet werden deren Schweregrad in diesem Attribut enthalten ist. Per default sind es natürlich alle.
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline eldrik

  • Sr. Member
  • ****
  • Beiträge: 800
Hi,

bei mir beendet sich FHEM direkt nach dem Definitionsaufruf der aktuellen Version aus dem Contrib als Collector.

Folgende Infos stehen im FHEM Log.

Zitat
2018.08.10 07:58:07.689 3: Log2Syslog RemoteSyslog - entering Syslog servermode ...
2018.08.10 07:58:07.690 3: Log2Syslog RemoteSyslog - Opening socket ...
2018.08.10 07:58:07.690 3: Log2Syslog RemoteSyslog - port 1514/udp opened for Syslog Collector on interface "global"
Undefined subroutine &main::ReadingsSingleUpdateValue called at ./FHEM/93_Log2Syslog.pm line 315.

Ich hatte das Modul (auch die erweiterte Version aus dem Conrib) vorher noch nicht im Einsatz.

Greetz
Eldrik

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2700
Moin Eldrik,

danke für den Hinweis.
Das kommt davon wenn man ein paar Aufrufe einfach aus DbRep kopiert und nicht daran denkt dass jemand kein DbRep einsetzen könnte.  :)
Hab's korrigiert ....

Grüße
Heiko
« Letzte Änderung: 10 August 2018, 13:24:06 von DS_Starter »
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline eldrik

  • Sr. Member
  • ****
  • Beiträge: 800
Hi,

klasse jetzt klappts!

Jedoch haben sich bei mir beim Testen ungereimtheiten aufgetan :)

Folgende Dinge habe ich vorhin ausprobiert.

Modul lediglich definiert

Meinen TPLink Switch angewiesen an den Host zu senden, hier kann ich keinen Standard definieren

Ergebnis: Folgende Meldung taucht im FHEM Log auf:

Zitat
2018.08.10 09:03:58.469 1: Log2Syslog RemoteSyslog - error parse msg -> <131>2018-08-10 09:03:58 10.0.x.y 31890 Login the web by admin on web (10.0.x.y).

Meine Synology Diskstation angewiesen an den Host zu senden

Ergebnis: Folgende Meldung taucht im FHEM Log auf:

2018.08.10 09:26:29.655 1: Log2Syslog RemoteSyslog - error parse msg -> <14>Aug 10 09:26:29 eldrik-htpc System Test message from Synology Syslog Client from (xyz)

Im Modul parseProfile explizit auf BSD gesetzt und Test vom TPLink ausgeführt:

Ergebnis: Folgende Meldung taucht im FHEM Log auf
Zitat
2018.08.10 09:29:48.849 1: PERL WARNING: Use of uninitialized value $Mmm in concatenation (.) or string at ./FHEM/93_Log2Syslog.pm line 520.
2018.08.10 09:29:48.849 1: PERL WARNING: Use of uninitialized value $dd in concatenation (.) or string at ./FHEM/93_Log2Syslog.pm line 520.
2018.08.10 09:29:48.850 1: PERL WARNING: Use of uninitialized value $time in concatenation (.) or string at ./FHEM/93_Log2Syslog.pm line 520.
2018.08.10 09:29:48.850 1: PERL WARNING: Use of uninitialized value $ts in concatenation (.) or string at ./FHEM/93_Log2Syslog.pm line 520.
2018.08.10 09:29:48.850 1: PERL WARNING: Use of uninitialized value $host in concatenation (.) or string at ./FHEM/93_Log2Syslog.pm line 520.
2018.08.10 09:29:48.850 1: PERL WARNING: Use of uninitialized value $id in concatenation (.) or string at ./FHEM/93_Log2Syslog.pm line 520.
2018.08.10 09:29:48.850 1: PERL WARNING: Use of uninitialized value $host in string eq at ./FHEM/93_Log2Syslog.pm line 521.

Erneut via Synology Testprotokolle gesendet.

Ergebnis:
Das Reading Transfered_logs_per_minute wird hochgezählt im FHEM Log tauchen jedoch keine Zeilen auf, wo finde ich die Einträge nun?

Dann habe ich das Modul auf parseProfile raw gestellt, daraufhin wurde weiter nichts (sowohl senden von Diskstation als auch TP Link Switch)  im FHEM Log angezeigt.

- Dann habe ich das Modul wieder auf BSD zurückgestellt, weiterhin taucht nichts im FHEM Log (sowohl senden von Diskstation als auch TP Link Switch) auf.

- Modul auf verbose5 gestellt nun erscheint beim einem Testlogin von meinem TPLink folgende Meldung im FHEM Log, mich wundert, dass hier von raw message gesprochen wird obwohl BSD gesetzt ist.

Zitat
2018.08.10 09:54:14.042 5: Log2Syslog RemoteSyslog - ###  new Syslog message Parsing ###
2018.08.10 09:54:14.042 5: Log2Syslog RemoteSyslog - message peerhost: localhost,127.0.0.1
2018.08.10 09:54:14.042 5: Log2Syslog RemoteSyslog - raw message -> <131>2018-08-10 09:54:14 10.0.x.y 31891 Logout the web by admin on web (10.0.x.y).
2018.08.10 09:54:14.043 4: RemoteSyslog - parsed message -> FAC: local0, SEV: Error, MM: , Day: , TIME: , TS: , HOST: , ID: , CONT: 2018-08-10 09:54:14 10.0.x.y 31891 Logout the web by admin on web (10.0.y.x).
2018.08.10 09:54:17.120 5: Log2Syslog RemoteSyslog - ###  new Syslog message Parsing ###
2018.08.10 09:54:17.120 5: Log2Syslog RemoteSyslog - message peerhost: localhost,127.0.0.1
2018.08.10 09:54:17.120 5: Log2Syslog RemoteSyslog - raw message -> <131>2018-08-10 09:54:17 10.0.y.x 31890 Login the web by admin on web (10.0.x.y).
2018.08.10 09:54:17.121 4: RemoteSyslog - parsed message -> FAC: local0, SEV: Error, MM: , Day: , TIME: , TS: , HOST: , ID: , CONT: 2018-08-10 09:54:17 10.0.x.y 31890 Login the web by admin on web (10.0.y.y).


Greetz
Eldrik


« Letzte Änderung: 10 August 2018, 10:21:13 von eldrik »

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2700
Hi Eldrik,

lass uns mal die Sachen nach und nach durchgehen, sonst ist es zuviel auf einmal  ;)
Grundsätzlich siehst du ohne irgendwelchen Einstellungen die geparsten Messages direkt im Eventmonitor. Du kannst das Attr "makeMsgEvent" verwenden um Readings mit/ohne Eventgeneration zu erstellen (-> help Log2Syslog).

Wenn im Log die Meldung "error parse msg ->" kommt, kann der eingestellte Parser die Message nicht auflösen. Hier hilft ein anderer Parser zu probieren oder einen eigenen schreiben oder "raw" zu verwenden, was quasi immer geht. Ich versuche den Standard IETF/BSD so gut es mir gelingt abzubilden und vollständig zu parsen.

Dein TPLink sendet keine Standard BSD oder IETF Message. Deswegen auch nicht im Router auswählbar (mein Vermutung). TPLink wird sicherlich häufig verwendet.
Dafür würde ich mal einen Parser bauen und mit integrieren. Hoffentlich wendet TPLink bei seinen Switches immer den gleichen Message-Aufbau an.  :)

Deine Synology Testnachricht :

<14>Aug 10 09:26:29 eldrik-htpc System Test message from Synology Syslog Client from (xyz)

ist Standard-BSD. Ist auch im Syno Prokoll-Center auswählbar. Dann musst du im Modul auch im parseProfile BSD setzen. Wenn keine Fehler passieren sieht man im Modul
nicht viel, es sei denn du hast das Attr "makeMsgEvent" verwendet. Ansonsten erscheinen die Meldungen direkt im Eventmonitor (zur Weiterverarbeitung/Logging, was auch immer)

Mit verbose 4/5 siehst du Logeinträge zur Fehlersuche.

Deine Frage:

Zitat
mich wundert, dass hier von raw message gesprochen wird obwohl BSD gesetzt ist.

Mit verbose 5 wird immer zunächst die empfangene message komplett ( raw message ->) ausgedruckt. Dann erscheint noch das was der eingestellte Parser (Attr parseProfile) daraus gemacht hat (parsed message -> ).

Die Warnungen habe ich eleminiert und den IETF-Parser nachgebessert.
Lass uns erstmal ein paar Tests mit der Synology machen, die benutze ich während der Entwicklung auch und kann es gut nachvollziehen.

BTW: wenn du einen Sender mit Log2Syslog erstellst und disable=maintenance einstellst, kannst du beliebige Testnachrichten an den Empfänger senden um zu schauen was er daraus macht. Diese Funktion ist speziell bei den ersten Schritten ganz hilfreich.

EDIT: Schreib mir bitte noch deine Routerbezeichnung. Ich glaube nach ein paar Google-Suchen dass TPLink doch nicht ganz homogen arbeitet.

Grüße
Heiko
« Letzte Änderung: 10 August 2018, 15:09:10 von DS_Starter »
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline eldrik

  • Sr. Member
  • ****
  • Beiträge: 800
Hi,

ahja der Eventviewer  :D ok da tauchen entsprechende Nachrichten auf.

help Log2Syslog habe ich ein paar Mal, unter anderem als mein Fhem bei den ersten Versuchen abgeraucht ist, ausgeführt.
Die Hilfe Seite die mir daraufhin angezeigt wird enthält aber nichts zum neuen Collector Modus sowie dem Attribut makeMsgEvent, in der .pm Datei kann ich die Infos nachlsen aber in FHEM wird mir nichts angezeigt :o

Mein TP Link Switch ist vom Modell TL-SG2424

Danke dir für den restlichen Input, damit komme ich weiter  :)

Greetz
Eldrik

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2700
Du musst wirklich "help Log2Syslog" aufrufen und nicht links den "Commandref"-Link verwenden.
Oder im definierten Device "Device specific help" tut es auch.
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2700
Hi eldrik,

habe eine erweiterte Version nach contrib geladen. Es gibt ein parseProfile für TPLink-Switch.
Probiers mal aus.

Grüße
Heiko
« Letzte Änderung: 10 August 2018, 15:04:03 von DS_Starter »
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline eldrik

  • Sr. Member
  • ****
  • Beiträge: 800
Hallo Heiko,

klasse und danke für die Mühe, schaut soweit ich das beurteilen kann ganz gut aus!

Readings
MSG_10.0.x.y

FAC: local0 || SEV: Error || ID: 31890 || CONT: Login the web by admin on web (10.0.x.y).

Greetz
Eldrik

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2700
Ja, sieht gut aus.
Das IETF-Parsing habe ich weiter verfeinert und die Version nach contrib geladen.
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2700
Mit der V4.8.2 in contrib kann der Collector angewiesen werden nur auf Mitteilungen bestimmter Schweregrade zu reagieren.
Dazu wurde das Attr "sendSeverity" umbenannt zu "respectSeverity" und gilt nun sowohl für Sender als auch für Collector für die entsprechenden Funktionen.
Das Attr "makeMsgEvent" wurde umbenannt zu "makeEvent", was die Funktion eindeutiger beschreibt.
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz
Gefällt mir Gefällt mir x 1 Liste anzeigen