[syslog-ng] Missing hosts

Christopher Bland chris at fdu.edu
Mon Jul 13 18:00:51 CEST 2009


Balazs,

Networking is not my specialty, I am a little unclear on your response 
for the netmask filter.  If hosts are on the same network there 
shouldn't be any hops so what does netmask look for or can I properly do 
a netmask filter.  Also if I understand you correctly if Host1 on subnet 
A would send a message to syslog-ng on subnet B the message goes though 
subnet A gateway then out subnet B gateway.  So, syslog-ng sees the 
message coming from subnet B since that is the last hop?

-Chris


Balazs Scheidler wrote:
> On Wed, 2009-07-08 at 13:24 -0400, Christopher Bland wrote:
>   
>> Hi guys,
>>
>> I have a problem that needs guru magic.  When I first setup syslog-ng I 
>> had too many host/log entries for the system I was using to handle.  I 
>> had tens of thousands of entries and each day created a 10G database 
>> table.  I remedied this logging certain hosts to flat files and 
>> separating host and network equipment into different databases.  I left 
>> my original catch all DB in place for comparison, to verify that all 
>> hosts were being logged properly.  When I do queries I find that a 
>> number of hosts are in the catch all but not in the individual 
>> databases.  Many of the missing hosts should be caught by the netmask 
>> entries but aren't.
>>     
>
> Although I didn't try to comprehend your filters completely, but here
> are some tips:
>
>  1) netmask() is filtering against the last-hop relay, that actually
> sent the message to syslog-ng, not the contents of the "HOST" field in
> the message
>  2) your "catch-all" database does not exactly negate the filter of the
> first two statements
>  3) you could enable --verbose --debug and have syslog-ng log to your
> terminal (redirecting syslog-ng to your terminal is quite important in
> this case as debug may generate recursive messages if you are not using
> syslog-ng 3.0), then you should see messages that help you debug your
> filter statements:
>
> This message is printed to aid filter evaluation:
>
>   msg_debug("Filter node evaluation result",
>             evt_tag_str("filter_result", res ? "match" : "not-match"),
>             evt_tag_str("filter_type", self->type),
>             NULL);
>
>   msg_debug("Filter rule evaluation result",
>             evt_tag_str("filter_result", res ? "match" : "not-match"),
>             evt_tag_str("filter_rule", self->super.name),
>             NULL);
>
>
>
>   
>>
>> options {
>>     sync (0);
>>     time_reopen (10);
>>     log_fifo_size (10000);
>>     time_sleep(50);
>>     log_fetch_limit(100);
>>     chain_hostnames(no);
>>     long_hostnames (off);
>>     keep_hostname(no);
>>     use_dns (yes);
>>     dns_cache(yes);
>>     use_fqdn (no);
>>     create_dirs (no);
>>     keep_hostname (yes);
>> };
>>
>> source s_sys {
>>     file ("/proc/kmsg" log_prefix("kernel: "));
>>     unix-stream ("/dev/log");
>>     internal();
>> };
>>
>> source s_everything {
>>     file ("/proc/kmsg" log_prefix("kernel: "));
>>     unix-stream ("/dev/log");
>>     internal();
>>     udp();
>> };
>>
>> destination d_database { pipe("/tmp/mysql.pipe" template("INSERT INTO 
>> logs (host, facility, priority, level, tag, datetime, program, msg) 
>> VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', 
>> '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n") 
>> template-escape(yes)); };
>>
>> destination d_networkdb { pipe("/tmp/mysql-network.pipe" 
>> template("INSERT INTO logs (host, facility, priority, level, tag, 
>> datetime, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', 
>> '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC', '$PROGRAM', 
>> '$MSG' );\n") template-escape(yes)); };
>>
>> destination d_hostsdb { pipe("/tmp/mysql-hosts.pipe" template("INSERT 
>> INTO logs (host, facility, priority, level, tag, datetime, program, msg) 
>> VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', 
>> '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n") 
>> template-escape(yes)); };
>>
>> filter f_nofw            { not host("fwhost"); };
>>
>> filter f_hosts            { netmask("10.16.5.0/255.255.255.0") or
>>                                   netmask("10.16.6.0/255.255.255.0") or
>>                                   host("hostA") or
>>                                   host("hostB") or
>>                                   host("hostC");
>>                                 };
>> filter f_network        { not host("fwhost") and (
>>                                   host("host1") or
>>                                   host("host2") or
>>                                   host("host3") or
>>                                   netmask("10.16.57.0/255.255.255.0") or
>>                                   netmask("10.16.36.0/255.255.255.0") or
>>                                   netmask("10.16.120.0/255.255.255.0") or
>>                                   netmask("10.16.217.0/255.255.255.0")
>>                                   );
>>                                 };
>>
>>
>> log { source(s_everything); filter(f_hosts); destination(d_hostsdb); };
>> log { source(s_everything); filter(f_network); destination(d_networkdb); };
>> log { source(s_everything); filter(f_nofw); destination(d_database); };
>>
>>
>> ______________________________________________________________________________
>> 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