[syslog-ng]syslog-ng development release 1.9.2
Balazs Scheidler
syslog-ng@lists.balabit.hu
Tue, 04 Jan 2005 23:21:12 +0100
Sorry, I accidentaly sent an incomplete message yesterday. I'm adding
the missing comments now.
On Mon, 2005-01-03 at 22:20 +0100, Balazs Scheidler wrote:
> Hi,
>
> It is my pleasure to announce the availability of the latest development
> release for syslog-ng, and a related library called eventlog.
>
> This release is actually usable, and although it is still not
> recommended to be used on production systems, running it on a spare
> system with a real log feed would be very useful indeed, to see how it
> behaves with various real life configurations.
>
> The major differences between syslog-ng 1.9.2 and the releases in the
> 1.6.x branch are outlined in the NEWS file attached to the end of this
> message.
>
Well, syslog-ng 1.9.2 is available at the usual location at
http://www.balabit.hu/downloads/syslog-ng/1.9/src/
You need to download both eventlog and syslog-ng, compile/install
eventlog first and then syslog-ng.
Documentation is more or less missing, though the documentation for
version 1.6 is still very useful, syslog-ng should be compatible with
the old version with some minor exceptions:
The following keywords are currently not yet known by this version of
syslog-ng, but support for these will be added:
@@ -1,9 +1,7 @@
- { "bad_hostname", KW_BAD_HOSTNAME },
- { "check_hostname", KW_CHECK_HOSTNAME },
- { "netmask", KW_NETMASK },
- { "remove_if_older", KW_REMOVE_IF_OLDER },
- { "sanitize-filenames", KW_SANITIZE_FILENAMES },
- { "sanitize_filenames", KW_SANITIZE_FILENAMES },
- { "spoof-source", KW_SPOOF_SOURCE },
- { "spoof_source", KW_SPOOF_SOURCE },
- { "stats", KW_STATS_FREQ },
- { "tcp-keep-alive", KW_TCP_KEEP_ALIVE },
- { "tcp_keep_alive", KW_TCP_KEEP_ALIVE },
The following keywords do not exactly match with their 1.6 counterparts,
but this will be fixed:
- { "mark", KW_MARK_FREQ },
+ { "mark_freq", KW_MARK_FREQ },
- { "sync", KW_SYNC_FREQ },
+ { "sync_freq", KW_SYNC_FREQ },
- { "pad_size", KW_PAD_SIZE },
+ { "padding", KW_PADDING },
Otherwise the new syslog-ng provides the following nifty features:
- flow controlled log paths: it is possible to avoid message drops by
not reading incoming messages sources while the output buffer is full.
For example:
source s_stream { unix-stream("/dev/log"); };
destination d_net { tcp("1.2.3.4" port(2000)); };
log { source(s_stream); destination(d_net); flags(flow-control); };
That's it. This will avoid message drops within syslog-ng, provided the
sum of all source window sizes (configurable via log_iw_size) is less
than or equal to the output driver's log_fifo_size. Syslog-ng simply
reads the incoming sources at the rate of the output drivers.
- automatic respawning of program destinations: while it might make the
syslog server easily DoSable, syslog-ng now automatically restarts the
programs run via the program destination.
- following regular files as input, e.g. this actually works:
source s_file { file("/var/log/apache/access.log" follow_freq(10)); };
The above will check /var/log/apache/access.log every 10 seconds and
read out all new messages since the last check. Although this is a nice
feature syslog-ng does not currently preserve the last ofset during
restarts.
- earlier noticing of TCP connection drops: instead of waiting for a
write() syscall to fail, continously check whether the server closed the
connection.
- the possibility to define templates once and reuse it from
file/protocol destinations, e.g:
template t_sample { template("$HOUR abcdef ${MSG}\n"); };
destination d_all { file("logs/logfile" template(t_sample)); };
or
# use t_sample for file destinations by default
options { file_template(t_sample); };
or
# use t_sample for protocol destinations by default
options { proto_template(t_sample); };
- the ability to use different time stamp formats:
options { ts_format(iso); };
will use ISO8661 timestamps everywhere
- the ability to work with timezones: support timezone information on
incoming messages via the ISO timestamp, support timezone conversion,
etc:
options { tz_convert(+0100); };
or
# for messages without a timestamp containing timezone
source s_udp { udp(timezone(+0500)); };
or
destination d_net { tcp("1.2.3.4" tz_convert(+0100)); };
- the ability to use unparsed log sources
source s_src { unix-stream("/dev/log" flags(no_parse)); };
I think those are the important changes. But which is even more
important is that the new codebase is more compact and makes adding new
features easier.
--
Bazsi