[RADIATOR] per-clause vs global Logs
David Zych
dmrz at illinois.edu
Thu Nov 14 15:41:38 CST 2013
On 11/12/2013, Heikki Vatiainen wrote:
> On 11/12/2013 06:12 PM, David Zych wrote:
>>>> >>> Now, however, I'm trying to put my Radiator servers behind a server load balancer (SLB); every few seconds, the SLB sends a health check request which Radiator is configured to REJECT (this is safer than ACCEPT and equally effective proof that the server is alive and answering). The problem is that each REJECT generates INFO-level log output which is cluttering up my logs:
>>>> >>>
>>>> >>> Fri Nov 8 16:56:03 2013 416230: INFO: Access rejected for SI_radius_keepalive: L7 Health Check from SLB
>>> >>
>>> >> would a good solution be to change the log
>>> >> level of reject messages to something else? What could be done is to
>>> >> make the log level of these messages configurable.
>> >
>> > This would be great! (ideally as a per-Handler config option, so that I
>> > could set it to DEBUG for this one Handler but leave it alone for others)
> Global option would be possible at least. Lets see what it would take to
> have it as a per Handler option. Value for per Handler option should
> probably default to the global option so it can be overridden easily.
>
> I'll get back to this when there is something to test.
Thanks!
On a separate but related note, my global DEBUG-level logger has become much less useful now that even my dev systems are receiving uninteresting requests from the SLB every 5 seconds, so I've started playing around with PacketTrace as a way to debug only the thing(s) I'm actually interested in at any given moment.
My problem with PacketTrace as currently implemented is that it adds packet dumps to _every_ global logger, whereas I'd really like to control where they go and e.g. not send them to syslog.
I suggest a new config flag for LogGeneric which tells individual loggers *not* to participate in PacketTrace, used like so:
# include PacketTrace debugging here
<Log FILE>
Filename %L/general/%Y/%m/logfile.%Y-%m-%d
LogFormat %Y-%m-%dT%H:%M:%S.%s %{Server:Identifier}: %1: %2
Trace 2
</Log>
# but not here
<Log SYSLOG>
IgnorePacketTrace
LogSock udp
LogHost %{GlobalVar:LogHost}
LogIdent %{Server:Identifier}
Facility user
Trace 2
</Log>
My (very simple) patch is below. Confession: I have no idea what the "1" in the arrayref signifies.
David
diff -ruN radiator-20131111/radiator/lib/perl5/Radius/LogGeneric.pm radiator-20131111.dmrzhacks/radiator/lib/perl5/Radius/LogGeneric.pm
--- radiator-20131111/radiator/lib/perl5/Radius/LogGeneric.pm 2013-09-06 07:58:30.000000000 -0500
+++ radiator-20131111.dmrzhacks/radiator/lib/perl5/Radius/LogGeneric.pm 2013-11-13 17:28:19.000000000 -0600
@@ -23,6 +23,9 @@
['integer',
'Sets the maximum length of log messages. All messages longer than MaxMessageLength characters wil be truncated to MaxMessageLength.',
1],
+ 'IgnorePacketTrace' =>
+ ['flag',
+ 'Exclude this logger from PacketTrace debugging', 1],
);
# RCS version number of this module
@@ -78,7 +81,7 @@
{
my ($self, $priority, $p) = @_;
- return $priority <= $self->{Trace} || ($p && $p->{PacketTrace});
+ return $priority <= $self->{Trace} || ($p && $p->{PacketTrace} && ! $self->{IgnorePacketTrace});
}
#####################################################################
More information about the radiator
mailing list