Log2Syslog

Aus FHEMWiki
Zur Navigation springen Zur Suche springen
Log2Syslog
Zweck / Funktion
Senden und Empfangen von Syslog-Meldungen
Allgemein
Typ Hilfsmodul
Details
Dokumentation EN / DE
Support (Forum) Automatisierung
Modulname 93_Log2Syslog.pm
Ersteller DS_Starter (Forum / Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Einführung

Info green.pngDas Modul kann ab 01.03.2021 als v5.12.4 via Update bezogen werden.

Das Modul Log2Syslog sendet FHEM Systemlog-Einträge und/oder Events an einen externen Syslog-Server weiter oder agiert als Syslog-Server um Syslog-Meldungen anderer Geräte zu empfangen. Die Implementierung des Syslog-Protokolls erfolgte entsprechend den Vorgaben von RFC5424 (IETF)[1], RFC3164 (BSD)[2] sowie dem TLS Transport Protokoll nach RFC5425[3].

Voraussetzungen

Es werden die Perl Module "IO::Socket::INET" und "IO::Socket::SSL" (wenn SSL benutzt) benötigt und müssen installiert sein. Das Modul kann über CPAN oder, auf Debian Linux Systemen besser mit

sudo apt-get install libio-socket-multicast-perl
sudo apt-get install libio-socket-ssl-perl

installiert werden.

Definition und Verwendung

Je nach Verwendungszweck kann ein Syslog-Server (MODEL Collector) oder ein Syslog-Client (MODEL Sender) definiert werden. Der Collector empfängt Meldungen im Syslog-Format anderer Geräte und generiert daraus Events/Readings zur Weiterverarbeitung in FHEM. Das Sender-Device leitet FHEM Systemlog Einträge und/oder Events an einen externen Syslog-Server weiter.

Siehe commandref.

Attribut useEOF

Model Sender (Protokoll TCP): Nach jedem Sendevorgang wird eine TCP-Verbindung mit EOF beendet.

Model Collector: Wenn gesetzt wird mit dem Parsing gewartet, bis der Sender ein EOF Signal gesendet hat. CRLF wird nicht als Datentrenner berücksichtigt. Anwendungsbeispiel (Webcam Technaxx TX-66 meldet einen Bewegungsalarm):

2021.03.06 23:00:17 5: Log2Syslog SyslogServer - Buffer 127 chars ready to parse:
<166> Mar 06 23:00:17 192.168.178.136 "EventStop"
{
   "Code" : "VideoMotion",
   "Index" : 1,
   "RegionName" : [ "Tuer" ]
}

Wenn nicht gesetzt, wird CRLF als Trennung von Datensätzen gewertet. ParseFn wird pro Zeile aufgerufen:

2021-02-22 09:54:53 Log2Syslog SyslogServer cam1.fritz.box: <182> Feb 22 09:54:53 192.168.178.138 "EventStart"
2021-02-22 09:54:53 Log2Syslog SyslogServer cam1.fritz.box: {
2021-02-22 09:54:53 Log2Syslog SyslogServer cam1.fritz.box:    "Code" : "VideoMotion",
2021-02-22 09:54:53 Log2Syslog SyslogServer cam1.fritz.box:    "Index" : 1,
2021-02-22 09:54:53 Log2Syslog SyslogServer cam1.fritz.box:    "RegionName" : [ "Tor" ]
2021-02-22 09:54:53 Log2Syslog SyslogServer cam1.fritz.box: }

Hinweis: Wenn der Sender kein EOF verwendet, wird nach Überschreiten eines Puffer-Schwellenwertes das Parsing der Daten erzwungen und die Warnung "Buffer overrun" im FHEM Log ausgegeben.

Anwendungsbeispiele

  • Erzeugen von zentralen Logberichten z.B. auf einer Synology Station
  • Einsammeln von Statusmeldungen und Bewegungsalarmen von Überwachungskameras, die Syslog-Meldungen versenden

Links