[syslog-ng] Correct Usage of Multiple 'pattern' Databases

David Hauck davidh at netacquire.com
Fri Apr 11 22:32:31 CEST 2014


On Friday, April 11, 2014 12:53 PM, syslog-ng-bounces at lists.balabit.hu wrote:
> Hi Robert,
> 
> On Friday, April 11, 2014 12:19 PM, syslog-ng-bounces at lists.balabit.hu wrote:
>> Hi,
>> 
>> I guess the problem is that patterndb parsers were not thought to be
>> used this way, and each parser sets the .classifier.class value
>> based on its own rules, overwriting any previous values.
>> Consequently, merging the patterndbs into a single file would definitely work.
> 
> As it turns out all of the pattern DBs here (these are just the stock files from:
> https://github.com/balabit/syslog-ng-patterndb) define the same
> 'class' (so the results of .classifier.class should always be 'system'
> after running through each of the parsers, no?).
> 
>> Another option could be a variant of your second idea: you use a
>> single log statement, and embed the parsers into a junction, where
>> each channel of the junction contains a filter (to process only the
>> messages that the parser can parse), and one of the parsers.
>> Something like:
>> log {
>>   filter(f_auth);
>>   junction{
>>     channel {filter (program(sshd)); parser("sshd");}
>>     channel {filter (program(sudo)); parser("sudo");} ....
>>   }
>> }
> 
> Thanks, I've tried this and it does appear to address this problem
> (notwithstanding the fact I mention above, where each pattern file
> specifies the same .classifier.class value).
> 
> I'm going to follow-up with another question related to boolean
> filters and embedded log statements since some of the follow-on
> filtering criteria now appears unexplainable.

Just to close this part out: the behaviour I was observing wasn't related to any particular quirk of syslog-ng (and Boolean condition filters). I've moved onto the next part of the configuration now that the 'junction()' variant appears to be working...
 
> Thanks,
> -David
> 
>> Robert
>> 
>> On Friday, April 11, 2014 19:18 CEST, David Hauck
>> <davidh at netacquire.com> wrote:
>> 
>>> Hello,
>>> 
>>> I've only recently dug into some more intricate 'syslog-ng'
>>> configurations
>> and had a question regarding 'log' construct blocks where multiple 'parser'
>> references exist. I've been trying to do something like the
>> following (testing with the supplied example pattern databases):
>>> 
>>> log {
>>>    filter(f_auth);
>>>    parser("login");
>>>    parser("sshd");
>>>    parser("su");
>>>    parser("sudo");
>>>    log {
>>>       filter(f_class_system);
>>>       ...
>>>    };
>>> };
>>> 
>>> The problem I'm having is that extracted values from matched rules
>>> appear
>> to be lost when the matched rule exists in a pattern db *other than
>> the last referenced parser() db*. Specifically, if a rule is matched
>> in the 'sshd' db above the following 'f_class_system' filter (which
>> attempts to match
>> '.classifier.class') *does not* match; however, if a rule is matched
>> in the 'sudo' db above the 'f_class_system' filter *does* match.
>>> 
>>> I'm sure this is perfectly explainable, but I can't find any
>> documentation/Google references specifically outlining this behaviour.
>> Given the above and in order to work around this I assume I would
>> have to, either: 1) combine all of the rules into a single db file,
>> or 2) break out each 'parser' reference into a separate embedded 'log'
>> construct (not ideal since the filtering et mechanics in each would
>> be identical and for maintenance reasons I'd like to consolidate
>> these into a single 'log' construct). Both options are less than
>> ideal. Is there a better way?
>>> 
>>> Really appreciate any help you might be able to offer.
>>> 
>>> Thanks,
>>> -David
>>> 
>> 
>> __________________________________________________________ ____________
>>> ________ Member info:
>>> https://lists.balabit.hu/mailman/listinfo/syslog-ng
>>> Documentation:
>>> http://www.balabit.com/support/documentation/?product=syslog-ng
>>> FAQ: http://www.balabit.com/wiki/syslog-ng-faq
>>> 
>>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> __________________________________________________________
>> ____________________ Member info:
>> https://lists.balabit.hu/mailman/listinfo/syslog-ng Documentation:
>> http://www.balabit.com/support/documentation/?product=syslog-ng FAQ:
>> http://www.balabit.com/wiki/syslog-ng-faq
> __________________________________________________________
> ____________________ Member info:
> https://lists.balabit.hu/mailman/listinfo/syslog-ng Documentation:
> http://www.balabit.com/support/documentation/?product=syslog-ng FAQ:
> http://www.balabit.com/wiki/syslog-ng-faq


More information about the syslog-ng mailing list