[syslog-ng] dropping
Roberto Nibali
ratz at drugphish.ch
Fri Oct 7 23:38:05 CEST 2005
> Using Debian Sarge I set up a configuration where some 160
> machines log by TCP to a single central server. When the
> machines boot (all at the same time) they obviously put
> quite some load on the server, which results in lines like
Don't boot all the machines and log to a server at the same time unless
you are really well-equipped network wise. It's the same congestion
problem you have when running a data center and try to power up the
nodes after a power failure: you risk another power failure.
> Oct 6 20:55:18 bigyo syslog-ng[24969]: STATS: dropped 1303
What's the peak load message-wise and network-wise? How's your network
topology? Are the clients in one collision domain or geographically
distributed?
> after the client connected messages. Also there is a
> constant periodic loss (the clients run synchronised, so
> cron jobs fire simultaneously) amounting to
Add a random delay in your cronjobs before starting the action. Since
you have perfectly identified the source of the problem, fix it there.
There is no requirement to synchronise cronjobs over a party of
machines; and the logfiles can by synchronised by using the timestamps.
> Oct 7 06:35:27 bigyo syslog-ng[24969]: STATS: dropped 9
>
> Is there a way to overcome this?
Fix the root of the problem. Of course we could assist you in addressing
the problem by tuning the server, if the former suggestions are not
appropriate.
> In average the log traffic
> is fairly low, but huge bursts do happen as described above.
Did you identify other bursts besides the reboot- and cronjob-related ones?
> Setting log_fifo_size on the server didn't help much; it
> logs straight onto disk:
Others have given you ideas on how to tune the server side.
> [stock Debian Sarge part distributing local logs elided]
> options { keep_hostname (yes); };
> source s_cl { tcp (max_connections (255)); };
> destination d_cl {
> file ("/var/log/cluster/$HOST" template ("$DATE $MSG\n")
> group ("adm") perm (0640)
> create_dirs (yes) dir_perm (750)); };
> log { source (s_cl); destination (d_cl); };
You could add flags(final) to speed up the parsing a bit; provided you
have more log statements.
> The clients are configured like this (full file):
> options { use_dns (no); };
> source s_all {
> internal ();
> unix-stream ("/dev/log");
> file ("/proc/kmsg" log_prefix ("kernel: "));
> };
> destination bigyo { tcp ("bigyo"); };
> log { source (s_all); destination (bigyo); };
Looks fine.
Best regards,
Roberto Nibali, ratz
--
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq'|dc
More information about the syslog-ng
mailing list