The newest syslog-ng release, syslog-ng 3.5.5 introduced a breaking API change. The Incubator has been updated, and now works with - and requires - at least syslog-ng 3.5.5.
The ElasticSearch SCL plugin has been fixed, and will now work out of the box.
Larger bugfix release with several small features.
There was an unnecessary header file, which isn’t present on FreeBSD.
Getent template function can now resolve protocol names.
It has now a separate thread, and it prevents race conditions in multi-threaded mode.
Globals are now constants as they should ever be. There is a new feature with the params() option, which works exactly as the old globals(), eg. uses value pairs, and templates can be used. The result is manifested as a lua table as the second parameter of the queue func. Although the same result can be achieved by using raw mode and Template class in Lua, using params is more comfortable in some cases (eg: SCL).
This prevents reace conditions like in Lua.
This allows a brand new graphite destination on top of tcp() driver and graphite-output template function.
They are now working similarly, yes means that if configure doesn’t find the depending lib, it fails, auto means, that if configure doesn’t find the depending lib, it disables the feature, and no means configure simply disables the feature. The only exception is python.
–with-python switch has now the following options: no: disables python related modules; auto: autodetects python version, disables python modules if not found; force: autodetects python version, fails if not found; python-<version>: forces specified version, fails if not found.
All modules were accidentally linked to libperl, now only perl destination module is linked to libperl.
It wasn’t linked to libsyslog-ng.so.
New scripted destinations are introduced by algernon <[email protected]>: Python and Perl. Additionally several bugfixes, small features and the getent template function are introduced.
These destinations are very similar to the current Lua destination, except that their queue method get a dict (or hash in Perl) as a parameter.
Getent template function can query information from the system user databases. For example it can convert uid to username and can get other fields from user databases.
This is a bug fix only release over the previous 0.2.0 version, with the following changes:
The Incubator can now be compiled on FreeBSD!
On some systems, the Lua pkg-config file is called lua-5.1, or lua-5.2, not lua5.1/lua5.2. The configure script was taught to recognise all of these.
When using the Lua destination without globals() being present does not crash the module anymore.
Most of the features of this release are contributed by Viktor Tusa <[email protected]>, many thanks for them!
When configured with –enable-luajit, and LuaJIT is available, it is now possible to build the Lua destination against that version of Lua.
This new source is somewhere between the trigger() source and the lua() destination, in that it allows one to write a Lua function that gets periodically executed, and can produce a log message.
Destinations written in Lua can now use Templates, from within the Lua code itself. Most useful for raw mode.
The Lua destination now makes another function available: Message.get_timestamp(), that gets one the UNIX timestamp in integer format, without having to format it first with a template, and then converting it back.
In case the destination needs to do something at deinit time, there is now a deinit hook.
It is now possible to use syslogng.debug, syslogng.error, syslogng.info and syslogng.verbose functions from within Lua, to construct internal log messages.
It is now possible to set global variables (strings and ints) from within the syslog-ng configuration file, that get passed down to the Lua destination.
This template function, with syntax much like that of $(format-json) allows one to easily forward data to a Graphite server, when combined with the tcp() destination.
The Incubator now ships with an SCL file, and a helper program that makes it possible to easily send events to ElasticSearch, in a Kibana-compatible format.
The RSS destination used features not available in the glib version targeted by the Incubator. It was fixed to work with the older version we target.
When generating a tarball with “make dist”, the built grammar files are not shipped anymore. They’re built against a specific syslog-ng version, and as such, are not portable to another version of it. The grammars need to be rebuilt, and shipping them prevents that.
When glib is too old, the $(state) template function gets disabled now, instead of the build failing.
This new feature allows one to write destination driver scripts in Lua. Example scripts are provided in modules/lua/.
Initial public release.