rsyslog 8.1.0 (v8-devel) released
This is the initial and EXPERIMENTAL release of rsyslog v8. This release contains a rewritten core engine and is expected to perform much better in high performance environments with complex configurations (namely log normalization, Elasticsearch, Databases and remote forwarding).
We release this version in the hopes that interested parties have a look at it and provide feedback (including bug reports). However, it is NOT suitable for production use — for the time being please use rsyslog v7.5 for this.
More details can be found at:
http://blog.gerhards.net/2013/
Please be also sure to review the compatibility document:
http://www.rsyslog.com/doc/
Feedback is *very much* appreciated.
ChangeLog:
http://www.rsyslog.com/changelog-for-8-1-0-v8-devel/
Download:
http://www.rsyslog.com/rsyslog-8-1-0-v8-devel/
Best regards,
Florian Riedl
Changelog for 8.1.0 (v8-devel)
Version 8.1.0 [devel] 2013-11-15
- rewritten core engine for higher performance and new features In detail:
- completely rewritten rule execution engine
- completely changed output module interface
- remodelled output module interface
- enabled important output modules to support full concurrent operation
The core engine has been considerably changed and must be considered experimental at this stage. Note that it does not yet include all features planned for v8, but is close to this goal. In theory, the engine should perform much better, especially on complex configurations and busy servers. Most importantly, actions instances can now be called concurrently from worker threads and many important output modules support multiple concurrent action instances natively.
- module omruleset is no longer enabled by default.
Note that it has been deprecated in v7 and been replaced by the “call” statement. Also, it can still be build without problems, the option must just explicitely be given.
rsyslog 8.1.0 (v8-devel)
Download file name: rsyslog 8.1.0 (devel)
rsyslog 8.1.0 (devel)
sha256 hash: 09699b52fbabb2a515f47f036950ec
Author: Rainer Gerhards (rgerhards@adiscon.com)
Version: 8.1.0 File size: 2.601 MB
action.execOnlyWhenPreviousIsSuspended preciseness
The “action.execOnlyWhenPreviousIsSuspended” parameter permits to conditionally execute an action only if the previous one is suspended. When an action actually gets suspended depends on the output module implementing the action, but the general rule is that an action suspends itself if there is a problem doing it’s job (e.g. a target server is down). This setting is generally used to implement failover destinations. So let’s call actions which have this attribute set “failover actions”.
Note that many action implement transactions to improve performance. If so, usually the success or error state of the action is only available after the transaction has been comitted. At this point, the messages have already been submitted to the action and the action could not set suspension state — simply because at that point everything looked fine. So when the failover action was about to be executed, the suspended flag was not set and the action not executed. Depending on system configuration, this can lead to loss of some messages during the failover process. If this seems totally unacceptable to you, you need to make sure that the transaction is committed after each message — this permits the output to obtain the actual success state (note that with some technologies, even this is not totally possible – a prime example is plain TCP syslog protocol).
To ensure commit of each message, the queue’s maximum batch size needs to be reduced to one. This can be done via the “queue.dequeuebatchsize” parameter. Note that reducing the batch size can have severe performance impact. Unfortunately, it is impossible to to have both high performance and precise failover actions. The simple reason is that for precise failover actions we need to know the result of the commit operation, which makes it necessary to do immediate commits.
Lower Bound for Queue Sizes
The queue.size parameter permits to specify the maximum queue size in number of messages. While not technically enforced, there is a lower limit on this parameter. Setting it to very low values (roughly below 100 messages) is not supported and can lead to unpredictable results. Also, future version my automatically adjust to a safe lower bound and/or decide to fail queue startup in those cases. So if you use very low values, do so at your own risk.
Changelog for 7.4.6 (v7-stable)
Version 7.4.6 [v7.4-stable] 2013-10-31
- bugfix: potential abort during HUP
This could happen when one of imklog, imzmq3, imkmsg, impstats,
imjournal, or imuxsock were under heavy load during a HUP.
closes: http://bugzilla.adiscon.com/show_bug.cgi?id=489
Thanks to Guy Rozendorn for reporting the problem and Peval Levhshin for
his analysis. - bugfix: imtcp flowControl parameter incorrectly defaulted to “off”
This could cause message loss on systems under heavy load and was
a change-of-behaviour to previous version. This is a regression
most probably introduced in 5.9.0 (but did not try hard to find the
exact point of its introduction). - now requires libestr 0.1.9 as earlier versions lead to problems with
number handling in RainerScript - bugfix: memory leak in strlen() RainerScript function
Thanks to Gregoire Seux for reportig this bug.
closes: http://bugzilla.adiscon.com/show_bug.cgi?id=486
- bugfix: buffer overrun if re_extract function was called for submatch 50
Thanks to Pavel Levshin for reporting the problem and its location. - bugfix: memleak in re_extract() function
Thanks to Pavel Levshin for reporting this problem. - bugfix: potential abort in RainerScript optimizer
closes: http://bugzilla.adiscon.com/show_bug.cgi?id=488
Thanks to Thomas Doll for reporting the problem and Pavel Levshin for
fixing it. - bugfix: memory leak in omhiredis
Thanks to Pavel Levshin for the fix - bugfix: segfault if variable was assigned to non-container subtree
Thanks to Pavel Levshin for the fix
rsyslog 7.4.6 (v7-stable)
Download file name: rsyslog 7.4.6 (stable)
rsyslog 7.4.6 (stable)
sha256 hash: 07c2cdc4152c05a4f226361fb12c6124087182cc100bf063334af18153d5f7d2
Author: Rainer Gerhards (rgerhards@adiscon.com)
Version: 7.4.6 File size: 2.79 MB
rsyslog 7.4.6 (v7-stable) released
We have just released 7.4.6 of the v7-stable branch. This is a bug-fixing release. Most importantly it fixes a bug that can lead to segfault on startup when $syslogfacility-text is used inside rsyslog.conf. V7.4 users are advised to update to this release.
ChangeLog: Continue reading “rsyslog 7.4.6 (v7-stable) released”
rsyslog 7.5.6 (v7-devel)
Download file name: rsyslog 7.5.6 (devel)
rsyslog 7.5.6 (devel)
sha256 hash: b655731cd109725e1f9001eed866637dc1e4ca710ce7d6c5e953e8b4f56e802d
Author: Rainer Gerhards (rgerhards@adiscon.com)
Version: 7.5.6
File size: 2.868 MB
Changelog for 7.5.6 (v7-devel)
Version 7.5.6 [devel] 2013-10-29
- improved performance of RainerScript variable access
by refactoring the whole body of variable handling code. This also
solves some of the anomalies experienced in some versions of rsyslog.
All variable types are now handled in unified code, including
access via templates. - RainerScript: make use of 64 bit for numbers where available
Thanks to Pavel Levshin for enhancement. - slight performance optimization if GCC is used
We give branch prediction hints for the frequent RETiRet macro which is
used for error handling. Some slight performance gain is to be expected
from that. - removed global variable support
The original idea was not well thought out and global variables, as
implemented, worked far different from what anybody would expect. As
such, we consider the current approach as an experiment that did not
work out and opt to removing it, clearing the way for a better future
solution. Note: global vars were introduced in 7.5.3 on Sept, 11th 2013. - new module mmsequence, primarily used for action load balancing
Thanks to Pavel Levshin for contributing this module. - bugfix: unset statement always worked on message var, even if local
var was given - bugfix: segfault if variable was assigned to non-container subtree
Thanks to Pavel Levshin for the fix - bugfix: imuxsock did not suport addtl sockets if syssock was disabled
Thanks to Pavel Levshin for the fix - bugfix: running imupd on multiple threads lead to segfault if recvmmsg
is available - bugfix: segfault if re_extract() function was used and no match found
- bugfix: omelasticsearch did not compile on platforms without atomic
instructions - bugfix: potential misadressing on startup if property-filter was used
This could happen if the property name was longer than 127 chars, a case
that would not happen in practice. - bugfix: invalid property filter was not properly disabled in ruleset
Note: the cosmetic memory leak introduced with that patch in 7.4.5 is
now also fixed.