[syslog-ng] Separating Remote Logs
Martin Holste
mcholste at gmail.com
Thu Jan 7 19:27:57 CET 2010
It should be ".classifier.rule_id" not ".classifier_rule_id."
By the way, I find I need to use a rewrite template for Snare to
normalize the program. I use:
rewrite r_snare {
subst("MSWinEventLog.+(Security|Application|System).+", "$1",
value("PROGRAM") flags(global));
};
--Martin
On Thu, Jan 7, 2010 at 11:56 AM, Nate Hausrath
<hausrath.mailing.list at gmail.com> wrote:
> Hi everyone,
>
> I've set up a central log server using syslog-ng that receives logs from many different locations on the network. I want to break these logs up into different files so I can using another program to parse and interpret each one individually. So for example, I want my Windows logs to go to /var/log/remote/windows.log, which my ASA logs go to /var/log/remote/asa.log. Anything that doesn't fit into a group should go to /var/log/remote/other.log.
>
> I'm trying to figure out the best way to do this. I was going to create a custom xml file for the db-parser, but I can't seem to get it to work the way I want. Here is my db-parser XML file so far:
>
> <?xml version='1.0' encoding='UTF-8'?>
> <patterndb version='2' pub_date='2009-12-07'>
> <ruleset name='capcxml' id='1923-ab2b'>
> <pattern/>
> <rules>
> <rule provider='capc' id='1' class='system'>
> <description>Detects ASA logs</description>
> <patterns>
> <pattern>%ASA</pattern>
> </patterns>
> </rule>
> <rule provider='capc' id='2' class='system'>
> <description>Detects Windows logs from Snare</description>
> <patterns>
> <pattern>MSWinEventLog</pattern>
> </patterns>
> </rule>
> </rules>
> </ruleset>
> </patterndb>
>
> So my question is, how can I specify a filter in my syslog-ng.conf file that will allow me to separate logs from these two different rules? Along with that, how can I separate everything that doesn't match?
>
> For instance, I could have something like this:
>
> filter f_class_asa {
> match("1"
> value(".classifier_rule_id")
> type("string")
> );
> };
>
> filter f_class_windows {
> match("2"
> value(".classifier_rule_id")
> type("string")
> );
> };
>
> filter f_class_other {
> not match("1" value(".classifier_rule_id") type("string"))
> and not match("2" value(".classifier_rule_id") type("string"));
> };
>
> log {
> source(s_remote);
> parser(p_capc);
> filter(f_class_asa);
> destination(df_asa);
> };
>
> log {
> source(s_remote);
> parser(p_capc);
> filter(f_class_windows);
> destination(df_windows);
> };
>
> log {
> source(s_remote);
> parser(p_capc);
> filter(f_class_other);
> destination(df_other);
> };
>
> But this doesn't seem to work. Everything gets placed in the df_asa file.
>
> Am I approaching this the wrong way? Should I not use db-parser for this task?
>
> Thanks for any help!
> Nate
> ______________________________________________________________________________
> Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng
> Documentation: http://www.balabit.com/support/documentation/?product=syslog-ng
> FAQ: http://www.campin.net/syslog-ng/faq.html
>
>
More information about the syslog-ng
mailing list