Log2Syslog

Aus FHEMWiki
Version vom 6. März 2021, 23:57 Uhr von Jostar (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{Infobox Modul |ModPurpose=Senden und Empfangen von Syslog-Meldungen |ModType= |ModForumArea=Automatisierung |ModFTopic= |ModTechName=93_Log2Syslog.pm |ModOwn…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Log2Syslog
Zweck / Funktion
Senden und Empfangen von Syslog-Meldungen
Allgemein
Typ undefiniert
Details
Dokumentation ModUndef
Support (Forum) Automatisierung
Modulname 93_Log2Syslog.pm
Ersteller DS_Starter
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!



Clock - Under Construction.svg An dieser Seite wird momentan noch gearbeitet.


Einführung

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

Das Modul 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