mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-04 05:16:45 +00:00
93_Log2Syslog: V4.6.0
git-svn-id: https://svn.fhem.de/fhem/trunk@17106 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
387ed33d6d
commit
711cff6520
@ -30,7 +30,7 @@
|
|||||||
######################################################################################################################
|
######################################################################################################################
|
||||||
# Versions History:
|
# Versions History:
|
||||||
#
|
#
|
||||||
# 4.6.0 08.08.2018 set sendTestMessage added
|
# 4.6.0 08.08.2018 set sendTestMessage added, Attribute "contDelimiter", "sendSeverity"
|
||||||
# 4.5.1 07.08.2018 BSD Regex changed, setpayload of BSD changed
|
# 4.5.1 07.08.2018 BSD Regex changed, setpayload of BSD changed
|
||||||
# 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
|
# Attribute "makeMsgEvent" added
|
||||||
@ -184,11 +184,13 @@ sub Log2Syslog_Initialize($) {
|
|||||||
$hash->{AttrList} = "addStateEvent:1,0 ".
|
$hash->{AttrList} = "addStateEvent:1,0 ".
|
||||||
"disable:1,0,maintenance ".
|
"disable:1,0,maintenance ".
|
||||||
"addTimestamp:0,1 ".
|
"addTimestamp:0,1 ".
|
||||||
"outputFields:sortable,PRIVAL,FAC,SEV,TS,HOST,DATE,TIME,ID,PID,MID,SDFIELD,CONT ".
|
"contDelimiter ".
|
||||||
"logFormat:BSD,IETF ".
|
"logFormat:BSD,IETF ".
|
||||||
"makeMsgEvent:no,intern,reading ".
|
"makeMsgEvent:no,intern,reading ".
|
||||||
|
"outputFields:sortable-strict,PRIVAL,FAC,SEV,TS,HOST,DATE,TIME,ID,PID,MID,SDFIELD,CONT ".
|
||||||
"parseProfile:BSD,IETF,raw,ParseFn ".
|
"parseProfile:BSD,IETF,raw,ParseFn ".
|
||||||
"parseFn:textField-long ".
|
"parseFn:textField-long ".
|
||||||
|
"sendSeverity:multiple-strict,Emergency,Alert,Critical,Error,Warning,Notice,Informational,Debug ".
|
||||||
"ssldebug:0,1,2,3 ".
|
"ssldebug:0,1,2,3 ".
|
||||||
"TLS:1,0 ".
|
"TLS:1,0 ".
|
||||||
"timeout ".
|
"timeout ".
|
||||||
@ -434,12 +436,18 @@ sub Log2Syslog_parsePayload($$) {
|
|||||||
my $severity = "";
|
my $severity = "";
|
||||||
my $facility = "";
|
my $facility = "";
|
||||||
my @evf = split(",",AttrVal($name, "outputFields", "FAC,SEV,ID,CONT")); # auszugebene Felder im Event/Reading
|
my @evf = split(",",AttrVal($name, "outputFields", "FAC,SEV,ID,CONT")); # auszugebene Felder im Event/Reading
|
||||||
my ($Mmm,$dd,$delimiter,$day,$ietf,$err,$pl,$tail,$tail2);
|
my ($delimiter,$day,$ietf,$err,$pl,$tail,$tail2);
|
||||||
|
my $Mmm = "";
|
||||||
|
my $dd = "";
|
||||||
|
|
||||||
# Hash zur Umwandlung Felder in deren Variablen
|
# Hash zur Umwandlung Felder in deren Variablen
|
||||||
my ($prival,$ts,$host,$date,$time,$id,$pid,$mid,$sdfield,$cont);
|
my ($prival,$date,$pid,$mid,$sdfield,$cont);
|
||||||
my $fac = "";
|
my $fac = "";
|
||||||
my $sev = "";
|
my $sev = "";
|
||||||
|
my $host = "";
|
||||||
|
my $ts = "";
|
||||||
|
my $id = "";
|
||||||
|
my $time = "";
|
||||||
my %fh = (PRIVAL => \$prival,
|
my %fh = (PRIVAL => \$prival,
|
||||||
FAC => \$fac,
|
FAC => \$fac,
|
||||||
SEV => \$sev,
|
SEV => \$sev,
|
||||||
@ -515,7 +523,7 @@ sub Log2Syslog_parsePayload($$) {
|
|||||||
Log2Syslog_Log3slog ($hash, 1, "Log2Syslog $name - error parse msg -> $data");
|
Log2Syslog_Log3slog ($hash, 1, "Log2Syslog $name - error parse msg -> $data");
|
||||||
}
|
}
|
||||||
|
|
||||||
Log2Syslog_Log3slog($name, 4, "$name - parsed message -> FAC: $fac, SEV: $sev, MM: $Mmm, Day: $dd, TIME: $time, TS: $ts, HOST: $host, ID: $id, CONT: $cont");
|
Log2Syslog_Log3slog($name, 4, "$name - parsed message -> FAC: $fac, SEV: $sev, MM: ".$Mmm?$Mmm:"".", Day: ".$dd?$dd:"".", TIME: ".$time?$time:"".", TS: $ts, HOST: $host, ID: $id, CONT: $cont");
|
||||||
$host = "" if($host eq "-");
|
$host = "" if($host eq "-");
|
||||||
$phost = $host?$host:$phost;
|
$phost = $host?$host:$phost;
|
||||||
|
|
||||||
@ -551,7 +559,7 @@ sub Log2Syslog_parsePayload($$) {
|
|||||||
Log2Syslog_Log3slog ($hash, 1, "Log2Syslog $name - error parse msg -> $data");
|
Log2Syslog_Log3slog ($hash, 1, "Log2Syslog $name - error parse msg -> $data");
|
||||||
} else {
|
} else {
|
||||||
$ts = "$date $time";
|
$ts = "$date $time";
|
||||||
$cont =~ s/^:?(.*)$/$1/ if(lc($mid) eq "fhem"); # Modul Sender setzt vor $cont ein ":" (wegen Synology Compatibilität)
|
# $cont =~ s/^:?(.*)$/$1/ if(lc($mid) eq "fhem"); # Modul Sender setzt vor $cont ein ":" (wegen Synology Compatibilität)
|
||||||
|
|
||||||
if(looks_like_number($prival)) {
|
if(looks_like_number($prival)) {
|
||||||
$facility = int($prival/8) if($prival >= 0 && $prival <= 191);
|
$facility = int($prival/8) if($prival >= 0 && $prival <= 191);
|
||||||
@ -789,7 +797,7 @@ sub Log2Syslog_Get($@) {
|
|||||||
"certinfo:noArg "
|
"certinfo:noArg "
|
||||||
;
|
;
|
||||||
|
|
||||||
return if(IsDisabled($name));
|
return if(AttrVal($name, "disable", "") eq "1");
|
||||||
|
|
||||||
my($sock,$cert,@certs);
|
my($sock,$cert,@certs);
|
||||||
if ($opt =~ /certinfo/) {
|
if ($opt =~ /certinfo/) {
|
||||||
@ -824,7 +832,7 @@ sub Log2Syslog_Attr ($$$$) {
|
|||||||
return "\"$aName\" is only valid for model \"Collector\"";
|
return "\"$aName\" is only valid for model \"Collector\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cmd eq "set" && $hash->{MODEL} =~ /Collector/ && $aName =~ /addTimestamp|addStateEvent|protocol|logFormat|timeout|TLS/) {
|
if ($cmd eq "set" && $hash->{MODEL} =~ /Collector/ && $aName =~ /addTimestamp|contDelimiter|addStateEvent|protocol|logFormat|sendSeverity|timeout|TLS/) {
|
||||||
return "\"$aName\" is only valid for model \"Sender\"";
|
return "\"$aName\" is only valid for model \"Sender\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -834,7 +842,7 @@ sub Log2Syslog_Attr ($$$$) {
|
|||||||
$do = $aVal?1:0;
|
$do = $aVal?1:0;
|
||||||
}
|
}
|
||||||
$do = 0 if($cmd eq "del");
|
$do = 0 if($cmd eq "del");
|
||||||
my $val = ($do&&$aVal==2)?"maintenance":($do&&$aVal==1)?"disabled":"active";
|
my $val = ($do&&$aVal=~/maintenance/)?"maintenance":($do&&$aVal==1)?"disabled":"active";
|
||||||
|
|
||||||
readingsSingleUpdate($hash, "state", $val, 1);
|
readingsSingleUpdate($hash, "state", $val, 1);
|
||||||
}
|
}
|
||||||
@ -900,10 +908,12 @@ sub Log2Syslog_Attr ($$$$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($aName =~ /makeMsgEvent/) {
|
if ($aName =~ /makeMsgEvent/) {
|
||||||
|
if($aVal =~ /intern/ || $cmd eq "del") {
|
||||||
foreach my $reading (grep { /MSG_/ } keys %{$defs{$name}{READINGS}}) {
|
foreach my $reading (grep { /MSG_/ } keys %{$defs{$name}{READINGS}}) {
|
||||||
readingsDelete($defs{$name}, $reading);
|
readingsDelete($defs{$name}, $reading);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -916,7 +926,9 @@ sub Log2Syslog_eventlog($$) {
|
|||||||
my ($hash,$dev) = @_;
|
my ($hash,$dev) = @_;
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
my $rex = $hash->{HELPER}{EVNTLOG};
|
my $rex = $hash->{HELPER}{EVNTLOG};
|
||||||
my ($prival,$sock,$data,$pid);
|
my $st = ReadingsVal($name,"state","active");
|
||||||
|
my $sendsev = AttrVal($name, "sendSeverity", ""); # Nachrichten welcher Schweregrade sollen gesendet werden
|
||||||
|
my ($prival,$sock,$data,$pid,$sevAstxt);
|
||||||
|
|
||||||
return if(IsDisabled($name) || !$rex || $hash->{MODEL} !~ /Sender/);
|
return if(IsDisabled($name) || !$rex || $hash->{MODEL} !~ /Sender/);
|
||||||
my $events = deviceEvents($dev, AttrVal($name, "addStateEvent", 0));
|
my $events = deviceEvents($dev, AttrVal($name, "addStateEvent", 0));
|
||||||
@ -941,7 +953,12 @@ sub Log2Syslog_eventlog($$) {
|
|||||||
if($n =~ m/^$rex$/ || "$n:$txt" =~ m/^$rex$/ || "$tim:$n:$txt" =~ m/^$rex$/) {
|
if($n =~ m/^$rex$/ || "$n:$txt" =~ m/^$rex$/ || "$tim:$n:$txt" =~ m/^$rex$/) {
|
||||||
my $otp = "$n $txt";
|
my $otp = "$n $txt";
|
||||||
$otp = "$tim $otp" if AttrVal($name,'addTimestamp',0);
|
$otp = "$tim $otp" if AttrVal($name,'addTimestamp',0);
|
||||||
$prival = Log2Syslog_setprival($txt);
|
($prival,$sevAstxt) = Log2Syslog_setprival($txt);
|
||||||
|
if($sendsev && $sendsev !~ m/$sevAstxt/) {
|
||||||
|
# nicht senden wenn Severity nicht in "sendSeverity" enthalten
|
||||||
|
Log2Syslog_Log3slog($name, 5, "$name - Warning - Payload NOT sent due to Message Severity not in attribute \"sendSeverity\"\n");
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
($data,$pid) = Log2Syslog_setpayload($hash,$prival,$date,$time,$otp,"event");
|
($data,$pid) = Log2Syslog_setpayload($hash,$prival,$date,$time,$otp,"event");
|
||||||
next if(!$data);
|
next if(!$data);
|
||||||
@ -952,17 +969,17 @@ sub Log2Syslog_eventlog($$) {
|
|||||||
} else {
|
} else {
|
||||||
my $err = $!;
|
my $err = $!;
|
||||||
Log2Syslog_Log3slog($name, 4, "$name - Warning - Payload sequence $pid NOT sent: $err\n");
|
Log2Syslog_Log3slog($name, 4, "$name - Warning - Payload sequence $pid NOT sent: $err\n");
|
||||||
|
$st = "write error: $err";
|
||||||
my $st = "write error: $err";
|
|
||||||
my $evt = ($st eq $hash->{HELPER}{OLDSTATE})?0:1;
|
|
||||||
readingsSingleUpdate($hash, "state", $st, $evt);
|
|
||||||
$hash->{HELPER}{OLDSTATE} = $st;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Log2Syslog_closesock($hash,$sock);
|
Log2Syslog_closesock($hash,$sock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my $evt = ($st eq $hash->{HELPER}{OLDSTATE})?0:1;
|
||||||
|
readingsSingleUpdate($hash, "state", $st, $evt);
|
||||||
|
$hash->{HELPER}{OLDSTATE} = $st;
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -973,7 +990,9 @@ sub Log2Syslog_fhemlog($$) {
|
|||||||
my ($name,$raw) = @_;
|
my ($name,$raw) = @_;
|
||||||
my $hash = $defs{$name};
|
my $hash = $defs{$name};
|
||||||
my $rex = $hash->{HELPER}{FHEMLOG};
|
my $rex = $hash->{HELPER}{FHEMLOG};
|
||||||
my ($prival,$sock,$err,$ret,$data,$pid);
|
my $st = ReadingsVal($name,"state","active");
|
||||||
|
my $sendsev = AttrVal($name, "sendSeverity", ""); # Nachrichten welcher Schweregrade sollen gesendet werden
|
||||||
|
my ($prival,$sock,$err,$ret,$data,$pid,$sevAstxt);
|
||||||
|
|
||||||
return if(IsDisabled($name) || !$rex || $hash->{MODEL} !~ /Sender/);
|
return if(IsDisabled($name) || !$rex || $hash->{MODEL} !~ /Sender/);
|
||||||
|
|
||||||
@ -985,7 +1004,12 @@ sub Log2Syslog_fhemlog($$) {
|
|||||||
if($txt =~ m/^$rex$/ || "$vbose: $txt" =~ m/^$rex$/) {
|
if($txt =~ m/^$rex$/ || "$vbose: $txt" =~ m/^$rex$/) {
|
||||||
my $otp = "$vbose: $txt";
|
my $otp = "$vbose: $txt";
|
||||||
$otp = "$tim $otp" if AttrVal($name,'addTimestamp',0);
|
$otp = "$tim $otp" if AttrVal($name,'addTimestamp',0);
|
||||||
$prival = Log2Syslog_setprival($txt,$vbose);
|
($prival,$sevAstxt) = Log2Syslog_setprival($txt,$vbose);
|
||||||
|
if($sendsev && $sendsev !~ m/$sevAstxt/) {
|
||||||
|
# nicht senden wenn Severity nicht in "sendSeverity" enthalten
|
||||||
|
Log2Syslog_Log3slog($name, 5, "$name - Warning - Payload NOT sent due to Message Severity not in attribute \"sendSeverity\"\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
($data,$pid) = Log2Syslog_setpayload($hash,$prival,$date,$time,$otp,"fhem");
|
($data,$pid) = Log2Syslog_setpayload($hash,$prival,$date,$time,$otp,"fhem");
|
||||||
return if(!$data);
|
return if(!$data);
|
||||||
@ -999,16 +1023,16 @@ sub Log2Syslog_fhemlog($$) {
|
|||||||
} else {
|
} else {
|
||||||
my $err = $!;
|
my $err = $!;
|
||||||
Log2Syslog_Log3slog($name, 4, "$name - Warning - Payload sequence $pid NOT sent: $err\n");
|
Log2Syslog_Log3slog($name, 4, "$name - Warning - Payload sequence $pid NOT sent: $err\n");
|
||||||
|
$st = "write error: $err";
|
||||||
my $st = "write error: $err";
|
|
||||||
my $evt = ($st eq $hash->{HELPER}{OLDSTATE})?0:1;
|
|
||||||
readingsSingleUpdate($hash, "state", $st, $evt);
|
|
||||||
$hash->{HELPER}{OLDSTATE} = $st;
|
|
||||||
}
|
}
|
||||||
Log2Syslog_closesock($hash,$sock);
|
Log2Syslog_closesock($hash,$sock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my $evt = ($st eq $hash->{HELPER}{OLDSTATE})?0:1;
|
||||||
|
readingsSingleUpdate($hash, "state", $st, $evt);
|
||||||
|
$hash->{HELPER}{OLDSTATE} = $st;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1018,6 +1042,7 @@ return;
|
|||||||
sub Log2Syslog_sendTestMsg($$) {
|
sub Log2Syslog_sendTestMsg($$) {
|
||||||
my ($hash,$own) = @_;
|
my ($hash,$own) = @_;
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
|
my $st = ReadingsVal($name,"state","active");
|
||||||
my ($prival,$ts,$tim,$date,$time,$sock,$err,$ret,$data,$pid,$otp);
|
my ($prival,$ts,$tim,$date,$time,$sock,$err,$ret,$data,$pid,$otp);
|
||||||
|
|
||||||
if($own) {
|
if($own) {
|
||||||
@ -1047,15 +1072,15 @@ sub Log2Syslog_sendTestMsg($$) {
|
|||||||
} else {
|
} else {
|
||||||
my $err = $!;
|
my $err = $!;
|
||||||
Log2Syslog_Log3slog($name, 4, "$name - Warning - Payload sequence $pid NOT sent: $err\n");
|
Log2Syslog_Log3slog($name, 4, "$name - Warning - Payload sequence $pid NOT sent: $err\n");
|
||||||
|
$st = "write error: $err";
|
||||||
my $st = "write error: $err";
|
|
||||||
my $evt = ($st eq $hash->{HELPER}{OLDSTATE})?0:1;
|
|
||||||
readingsSingleUpdate($hash, "state", $st, $evt);
|
|
||||||
$hash->{HELPER}{OLDSTATE} = $st;
|
|
||||||
}
|
}
|
||||||
Log2Syslog_closesock($hash,$sock);
|
Log2Syslog_closesock($hash,$sock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my $evt = ($st eq $hash->{HELPER}{OLDSTATE})?0:1;
|
||||||
|
readingsSingleUpdate($hash, "state", $st, $evt);
|
||||||
|
$hash->{HELPER}{OLDSTATE} = $st;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1206,7 +1231,7 @@ return;
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
sub Log2Syslog_setprival ($;$$) {
|
sub Log2Syslog_setprival ($;$$) {
|
||||||
my ($txt,$vbose) = @_;
|
my ($txt,$vbose) = @_;
|
||||||
my $prival;
|
my ($prival,$sevAstxt);
|
||||||
|
|
||||||
# Priority = (facility * 8) + severity
|
# Priority = (facility * 8) + severity
|
||||||
# https://tools.ietf.org/pdf/rfc5424.pdf
|
# https://tools.ietf.org/pdf/rfc5424.pdf
|
||||||
@ -1239,8 +1264,9 @@ sub Log2Syslog_setprival ($;$$) {
|
|||||||
$sv = 4 if (lc($txt) =~ m/warning/); # warning conditions
|
$sv = 4 if (lc($txt) =~ m/warning/); # warning conditions
|
||||||
|
|
||||||
$prival = ($fac*8)+$sv;
|
$prival = ($fac*8)+$sv;
|
||||||
|
$sevAstxt = $Log2Syslog_Severity{$sv};
|
||||||
|
|
||||||
return($prival);
|
return($prival,$sevAstxt);
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@ -1252,6 +1278,7 @@ sub Log2Syslog_setpayload ($$$$$$) {
|
|||||||
my $ident = ($hash->{HELPER}{IDENT}?$hash->{HELPER}{IDENT}:$name)."_".$lt;
|
my $ident = ($hash->{HELPER}{IDENT}?$hash->{HELPER}{IDENT}:$name)."_".$lt;
|
||||||
my $myhost = $hash->{MYHOST}?$hash->{MYHOST}:"0.0.0.0";
|
my $myhost = $hash->{MYHOST}?$hash->{MYHOST}:"0.0.0.0";
|
||||||
my $lf = AttrVal($name, "logFormat", "IETF");
|
my $lf = AttrVal($name, "logFormat", "IETF");
|
||||||
|
my $tag = AttrVal($name, "contDelimiter", ""); # Trennzeichen vor Content (z.B. für Synology nötig)
|
||||||
my $data;
|
my $data;
|
||||||
|
|
||||||
return undef,undef if(!$otp);
|
return undef,undef if(!$otp);
|
||||||
@ -1267,7 +1294,7 @@ sub Log2Syslog_setpayload ($$$$$$) {
|
|||||||
$day =~ s/0/ / if($day =~ m/^0.*$/); # in Tagen < 10 muss 0 durch Space ersetzt werden
|
$day =~ s/0/ / if($day =~ m/^0.*$/); # in Tagen < 10 muss 0 durch Space ersetzt werden
|
||||||
$ident = substr($ident,0, $RFC3164len{TAG}); # Länge TAG Feld begrenzen
|
$ident = substr($ident,0, $RFC3164len{TAG}); # Länge TAG Feld begrenzen
|
||||||
no warnings 'uninitialized';
|
no warnings 'uninitialized';
|
||||||
$data = "<$prival>$month $day $time $myhost $ident :$otp";
|
$data = "<$prival>$month $day $time $myhost $ident $tag$otp";
|
||||||
use warnings;
|
use warnings;
|
||||||
$data = substr($data,0, ($RFC3164len{DL}-1)); # Länge Total begrenzen
|
$data = substr($data,0, ($RFC3164len{DL}-1)); # Länge Total begrenzen
|
||||||
}
|
}
|
||||||
@ -1289,7 +1316,7 @@ sub Log2Syslog_setpayload ($$$$$$) {
|
|||||||
|
|
||||||
no warnings 'uninitialized';
|
no warnings 'uninitialized';
|
||||||
if ($IETFver == 1) {
|
if ($IETFver == 1) {
|
||||||
$data = "<$prival>$IETFver $tim $myhost $ident $pid $mid $sdfield :$otp";
|
$data = "<$prival>$IETFver $tim $myhost $ident $pid $mid $sdfield $tag$otp";
|
||||||
}
|
}
|
||||||
use warnings;
|
use warnings;
|
||||||
}
|
}
|
||||||
@ -1384,11 +1411,13 @@ sub Log2Syslog_evalPeer($) {
|
|||||||
my ($hash) = @_;
|
my ($hash) = @_;
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
my $socket = $hash->{SERVERSOCKET};
|
my $socket = $hash->{SERVERSOCKET};
|
||||||
|
my $phost = "";
|
||||||
|
my $paddr = "";
|
||||||
|
|
||||||
my($pport, $pipaddr) = sockaddr_in($socket->peername);
|
my($pport, $pipaddr) = sockaddr_in($socket->peername);
|
||||||
my $phost = gethostbyaddr($pipaddr, AF_INET);
|
$phost = gethostbyaddr($pipaddr, AF_INET);
|
||||||
my $paddr = inet_ntoa($pipaddr);
|
$paddr = inet_ntoa($pipaddr);
|
||||||
Log2Syslog_Log3slog ($hash, 5, "Log2Syslog $name - message peerhost: $phost, $paddr");
|
Log2Syslog_Log3slog ($hash, 5, "Log2Syslog $name - message peerhost: ".$phost?$phost:"".", ".$paddr);
|
||||||
|
|
||||||
return ($phost,$paddr);
|
return ($phost,$paddr);
|
||||||
}
|
}
|
||||||
@ -1912,11 +1941,23 @@ 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>contDelimiter </b><br>
|
||||||
|
<br>
|
||||||
|
Das Attribut ist nur für "Sender" verwendbar. Es enthält ein zusätzliches Zeichen welches unmittelber vor das
|
||||||
|
Content-Feld eingefügt wird. <br>
|
||||||
|
Diese Möglichkeit ist in manchen speziellen Fällen hilfreich (z.B. kann das Zeichen ':' eingefügt werden um eine
|
||||||
|
ordnungsgemäße Anzeige im Synology-Protokollcenter zu erhalten).
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><b>disable [1 | 0 | maintenance] </b><br>
|
<li><b>disable [1 | 0 | maintenance] </b><br>
|
||||||
<br>
|
<br>
|
||||||
Das Device wird aktiviert, deaktiviert bzw. in den Maintenance-Mode geschaltet. Im Maintenance-Mode kann mit dem "Sender"
|
Das Device wird aktiviert, deaktiviert bzw. in den Maintenance-Mode geschaltet. Im Maintenance-Mode kann mit dem
|
||||||
eine Testnachricht gesendet werden (siehe "set <name> sendTestMessage").
|
"Sender"-Device eine Testnachricht gesendet werden (siehe "set <name> sendTestMessage").
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
@ -1955,7 +1996,7 @@ Aug 18 21:26:54 fhemtest.myds.me 1 2017-08-18T21:26:54 fhemtest.myds.me Test_eve
|
|||||||
<ul>
|
<ul>
|
||||||
<li><b>outputFields </b><br>
|
<li><b>outputFields </b><br>
|
||||||
<br>
|
<br>
|
||||||
Über eine sortierbare Liste können die gewünschten Felder zur Eventgenerierung ausgewählt werden.
|
Über eine sortierbare Liste können die gewünschten Felder des generierten Events ausgewählt werden.
|
||||||
Die abhängig vom Attribut <b>"parseProfil"</b> sinnvoll verwendbaren Felder und deren Bedeutung ist der Beschreibung
|
Die abhängig vom Attribut <b>"parseProfil"</b> sinnvoll verwendbaren Felder und deren Bedeutung ist der Beschreibung
|
||||||
des Attributs "parseProfil" zu entnehmen.
|
des Attributs "parseProfil" zu entnehmen.
|
||||||
Ist "outputFields" nicht gesetzt, wird ein vordefinierter Satz Felder zur Eventgenerierung verwendet.
|
Ist "outputFields" nicht gesetzt, wird ein vordefinierter Satz Felder zur Eventgenerierung verwendet.
|
||||||
@ -1995,7 +2036,19 @@ Aug 18 21:26:54 fhemtest.myds.me 1 2017-08-18T21:26:54 fhemtest.myds.me Test_eve
|
|||||||
<br>
|
<br>
|
||||||
|
|
||||||
Die Variablennamen korrespondieren mit den Feldnamen und deren ursprünglicher Bedeutung angegeben im Attribut
|
Die Variablennamen korrespondieren mit den Feldnamen und deren ursprünglicher Bedeutung angegeben im Attribut
|
||||||
<b>"parseProfile" (Erläuterung der Felddaten)</b>.
|
<b>"parseProfile"</b> (Erläuterung der Felddaten). <br><br>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<b>Beispiel: </b> <br>
|
||||||
|
# Quelltext: '<4> <;4>LAN IP and mask changed to 192.168.2.3 255.255.255.0' <br>
|
||||||
|
# Die Zeichen '<;4>' sollen aus dem CONT-Feld entfernt werden
|
||||||
|
<pre>
|
||||||
|
{
|
||||||
|
($PRIVAL,$CONT) = ($DATA =~ /^<(\d{1,3})>\s(.*)$/);
|
||||||
|
$CONT = (split(">",$CONT))[1] if($CONT =~ /^<.*>.*$/);
|
||||||
|
}
|
||||||
|
</pre>
|
||||||
|
</ul>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -2031,11 +2084,11 @@ Aug 18 21:26:54 fhemtest.myds.me 1 2017-08-18T21:26:54 fhemtest.myds.me Test_eve
|
|||||||
<br>
|
<br>
|
||||||
<ul>
|
<ul>
|
||||||
<table>
|
<table>
|
||||||
<colgroup> <col width=20%> <col width=80%> </colgroup>
|
<colgroup> <col width=10%> <col width=90%> </colgroup>
|
||||||
<tr><td> BSD </td><td> PRIVAL,FAC,SEV,TS,HOST,ID,CONT </td></tr>
|
<tr><td> BSD </td><td>-> PRIVAL,FAC,SEV,TS,HOST,ID,CONT </td></tr>
|
||||||
<tr><td> IETF </td><td> PRIVAL,FAC,SEV,TS,HOST,DATE,TIME,ID,PID,MID,SDFIELD,CONT </td></tr>
|
<tr><td> IETF </td><td>-> PRIVAL,FAC,SEV,TS,HOST,DATE,TIME,ID,PID,MID,SDFIELD,CONT </td></tr>
|
||||||
<tr><td> ParseFn </td><td> PRIVAL,FAC,SEV,TS,HOST,DATE,TIME,ID,PID,MID,SDFIELD,CONT </td></tr>
|
<tr><td> ParseFn </td><td>-> PRIVAL,FAC,SEV,TS,HOST,DATE,TIME,ID,PID,MID,SDFIELD,CONT </td></tr>
|
||||||
<tr><td> raw </td><td> keine Auswahl sinnvoll, es wird immer die Originalmeldung in einen Event umgesetzt </td></tr>
|
<tr><td> raw </td><td>-> keine Auswahl sinnvoll, es wird immer die Originalmeldung in einen Event umgesetzt </td></tr>
|
||||||
</table>
|
</table>
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
@ -2097,6 +2150,16 @@ 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>sendSeverity </b><br>
|
||||||
|
<br>
|
||||||
|
Es werden nur Nachrichten übermittelt, deren Schweregrad im Attribut enthalten ist.
|
||||||
|
Ist "sendSeverity" nicht gesetzt, werden Nachrichten aller Schwierigkeitsgrade gesendet.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><b>ssldebug</b><br>
|
<li><b>ssldebug</b><br>
|
||||||
<br>
|
<br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user