mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-04 05:16:45 +00:00
93_Log2Syslog: V4.5.0
git-svn-id: https://svn.fhem.de/fhem/trunk@17096 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
4175337105
commit
bd10167fe6
@ -30,7 +30,8 @@
|
|||||||
######################################################################################################################
|
######################################################################################################################
|
||||||
# Versions History:
|
# Versions History:
|
||||||
#
|
#
|
||||||
# 4.5.0 06.08.2018 Regex capture groups used in parsePayload to set variables, parsing of BSD changed
|
# 4.5.0 06.08.2018 Regex capture groups used in parsePayload to set variables, parsing of BSD changed,
|
||||||
|
# Attribute "makeMsgEvent" added
|
||||||
# 4.4.0 04.08.2018 Attribute "outputFields" added
|
# 4.4.0 04.08.2018 Attribute "outputFields" added
|
||||||
# 4.3.0 03.08.2018 Attribute "parseFn" added
|
# 4.3.0 03.08.2018 Attribute "parseFn" added
|
||||||
# 4.2.0 03.08.2018 evaluate sender peer ip-address/hostname, use it as reading in event generation
|
# 4.2.0 03.08.2018 evaluate sender peer ip-address/hostname, use it as reading in event generation
|
||||||
@ -182,6 +183,7 @@ sub Log2Syslog_Initialize($) {
|
|||||||
"addTimestamp:0,1 ".
|
"addTimestamp:0,1 ".
|
||||||
"outputFields:sortable,PRIVAL,FAC,SEV,TS,HOST,DATE,TIME,ID,PID,MID,SDFIELD,CONT ".
|
"outputFields:sortable,PRIVAL,FAC,SEV,TS,HOST,DATE,TIME,ID,PID,MID,SDFIELD,CONT ".
|
||||||
"logFormat:BSD,IETF ".
|
"logFormat:BSD,IETF ".
|
||||||
|
"makeMsgEvent:no,intern,reading ".
|
||||||
"parseProfile:BSD,IETF,raw,ParseFn ".
|
"parseProfile:BSD,IETF,raw,ParseFn ".
|
||||||
"parseFn:textField-long ".
|
"parseFn:textField-long ".
|
||||||
"ssldebug:0,1,2,3 ".
|
"ssldebug:0,1,2,3 ".
|
||||||
@ -323,6 +325,7 @@ sub Log2Syslog_Read($) {
|
|||||||
my $socket = $hash->{SERVERSOCKET};
|
my $socket = $hash->{SERVERSOCKET};
|
||||||
my $st = ReadingsVal($name,"state","active");
|
my $st = ReadingsVal($name,"state","active");
|
||||||
my $pp = AttrVal($name, "parseProfile", "IETF");
|
my $pp = AttrVal($name, "parseProfile", "IETF");
|
||||||
|
my $mevt = AttrVal($name, "makeMsgEvent", "intern"); # wie soll Reading/Eventerstellt werden
|
||||||
my ($err,$data,$ts,$phost,$pl);
|
my ($err,$data,$ts,$phost,$pl);
|
||||||
|
|
||||||
return if(IsDisabled($name) || $hash->{MODEL} !~ /Collector/);
|
return if(IsDisabled($name) || $hash->{MODEL} !~ /Collector/);
|
||||||
@ -343,8 +346,17 @@ sub Log2Syslog_Read($) {
|
|||||||
$st = "parse error - see logfile";
|
$st = "parse error - see logfile";
|
||||||
} else {
|
} else {
|
||||||
$st = "active";
|
$st = "active";
|
||||||
|
if($mevt =~ /intern/) {
|
||||||
|
# kein Reading, nur Event
|
||||||
$pl = "$phost: $pl";
|
$pl = "$phost: $pl";
|
||||||
Log2Syslog_Trigger($hash,$ts,$pl);
|
Log2Syslog_Trigger($hash,$ts,$pl);
|
||||||
|
} elsif ($mevt =~ /reading/) {
|
||||||
|
# Reading, Event abhängig von event-on-.*
|
||||||
|
readingsSingleUpdate($hash, "MSG_$phost", $pl, 1);
|
||||||
|
} else {
|
||||||
|
# Reading ohne Event
|
||||||
|
readingsSingleUpdate($hash, "MSG_$phost", $pl, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,8 +376,17 @@ sub Log2Syslog_Read($) {
|
|||||||
$st = "parse error - see logfile";
|
$st = "parse error - see logfile";
|
||||||
} else {
|
} else {
|
||||||
$st = "active";
|
$st = "active";
|
||||||
|
if($mevt =~ /intern/) {
|
||||||
|
# kein Reading, nur Event
|
||||||
$pl = "$phost: $pl";
|
$pl = "$phost: $pl";
|
||||||
Log2Syslog_Trigger($hash,$ts,$pl);
|
Log2Syslog_Trigger($hash,$ts,$pl);
|
||||||
|
} elsif ($mevt =~ /reading/) {
|
||||||
|
# Reading, Event abhängig von event-on-.*
|
||||||
|
readingsSingleUpdate($hash, "MSG_$phost", $pl, 1);
|
||||||
|
} else {
|
||||||
|
# Reading ohne Event
|
||||||
|
readingsSingleUpdate($hash, "MSG_$phost", $pl, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -377,8 +398,17 @@ sub Log2Syslog_Read($) {
|
|||||||
$st = "parse error - see logfile";
|
$st = "parse error - see logfile";
|
||||||
} else {
|
} else {
|
||||||
$st = "active";
|
$st = "active";
|
||||||
|
if($mevt =~ /intern/) {
|
||||||
|
# kein Reading, nur Event
|
||||||
$pl = "$phost: $pl";
|
$pl = "$phost: $pl";
|
||||||
Log2Syslog_Trigger($hash,$ts,$pl);
|
Log2Syslog_Trigger($hash,$ts,$pl);
|
||||||
|
} elsif ($mevt =~ /reading/) {
|
||||||
|
# Reading, Event abhängig von event-on-.*
|
||||||
|
readingsSingleUpdate($hash, "MSG_$phost", $pl, 1);
|
||||||
|
} else {
|
||||||
|
# Reading ohne Event
|
||||||
|
readingsSingleUpdate($hash, "MSG_$phost", $pl, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -744,7 +774,7 @@ sub Log2Syslog_Attr ($$$$) {
|
|||||||
# $name is device name
|
# $name is device name
|
||||||
# aName and aVal are Attribute name and value
|
# aName and aVal are Attribute name and value
|
||||||
|
|
||||||
if ($cmd eq "set" && $hash->{MODEL} !~ /Collector/ && $aName =~ /parseProfile|parseFn|outputFields/) {
|
if ($cmd eq "set" && $hash->{MODEL} !~ /Collector/ && $aName =~ /parseProfile|parseFn|outputFields|makeMsgEvent/) {
|
||||||
return "\"$aName\" is only valid for model \"Collector\"";
|
return "\"$aName\" is only valid for model \"Collector\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -822,6 +852,12 @@ sub Log2Syslog_Attr ($$$$) {
|
|||||||
return "You use a parse-function via attribute \"parseProfile\". Please change/delete attribute \"parseProfile\" first !";
|
return "You use a parse-function via attribute \"parseProfile\". Please change/delete attribute \"parseProfile\" first !";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($aName =~ /makeMsgEvent/) {
|
||||||
|
foreach my $reading (grep { /MSG_/ } keys %{$defs{$name}{READINGS}}) {
|
||||||
|
readingsDelete($defs{$name}, $reading);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1522,7 +1558,7 @@ Aug 18 21:26:54 fhemtest.myds.me 1 2017-08-18T21:26:54 fhemtest.myds.me Test_eve
|
|||||||
<br>
|
<br>
|
||||||
Je nach Verwendungszweck kann ein Syslog-Server (MODEL Collector) oder ein Syslog-Client (MODEL Sender) definiert
|
Je nach Verwendungszweck kann ein Syslog-Server (MODEL Collector) oder ein Syslog-Client (MODEL Sender) definiert
|
||||||
werden. <br>
|
werden. <br>
|
||||||
Der Collector empfängt Meldungen im Syslog-Format anderer Geräte und generiert daraus Events zur Weiterverarbeitung in
|
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. <br>
|
FHEM. Das Sender-Device leitet FHEM Systemlog Einträge und/oder Events an einen externen Syslog-Server weiter. <br>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
@ -1599,7 +1635,9 @@ Aug 18 21:26:54 fhemtest.myds.me 1 2017-08-18T21:26:54 fhemtest.myds.me Test_eve
|
|||||||
Parsingfunktion hinterlegt. <br>
|
Parsingfunktion hinterlegt. <br>
|
||||||
Die im Event verwendeten Felder und deren Reihenfolge können aus einem Wertevorrat mit dem
|
Die im Event verwendeten Felder und deren Reihenfolge können aus einem Wertevorrat mit dem
|
||||||
<a href="#Log2Syslogattr">Attribut</a> "outputFields" bestimmt werden. Je nach verwendeten Parsingprofil können alle oder
|
<a href="#Log2Syslogattr">Attribut</a> "outputFields" bestimmt werden. Je nach verwendeten Parsingprofil können alle oder
|
||||||
nur eine Untermenge der verfügbaren Felder verwendet werden. Näheres dazu in der Beschreibung des Attributes "parseProfile".
|
nur eine Untermenge der verfügbaren Felder verwendet werden. Näheres dazu in der Beschreibung des Attributes "parseProfile". <br>
|
||||||
|
<br>
|
||||||
|
Das Verhalten der Eventgenerierung kann mit dem <a href="#Log2Syslogattr">Attribut</a> "makeMsgEvent" angepasst werden. <br>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
@ -1779,6 +1817,27 @@ Aug 18 21:26:54 fhemtest.myds.me 1 2017-08-18T21:26:54 fhemtest.myds.me Test_eve
|
|||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><b>makeMsgEvent [ intern | no | reading ]</b><br>
|
||||||
|
<br>
|
||||||
|
Das Attribut ist nur für "Collector" verwendbar. Mit dem Attribut wird das Verhalten der Event- bzw.
|
||||||
|
Readinggenerierung festgelegt.
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<table>
|
||||||
|
<colgroup> <col width=10%> <col width=90%> </colgroup>
|
||||||
|
<tr><td> <b>intern</b> </td><td> es werden Events über die modulinterne Eventfunktion generiert </td></tr>
|
||||||
|
<tr><td> <b>no</b> </td><td> es werden nur Readings der Form "MSG_<Hostname>" ohne Eventfunktion erstellt </td></tr>
|
||||||
|
<tr><td> <b>reading</b> </td><td> es werden Readings der Form "MSG_<Hostname>" erstellt. Events werden in Abhängigkeit der "event-on-.*"-Attribute generiert </td></tr>
|
||||||
|
</table>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><b>outputFields </b><br>
|
<li><b>outputFields </b><br>
|
||||||
<br>
|
<br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user