Log2Syslog
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
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