We had a meeting on the syslog-ng roadmap today where we decided some important things, and I thought I'd use this channel to tell you about it.
The Open Source Edition will see a 2.1 release incorporating all core changes currently in the Premium Edition and additionally the SQL destination driver. We are going to start development on the 2.2 PE features, but some of those will also be incorporated in the open source version:
The current feature set in PE were developed in a closed manner and I don't want to repeat this mistake. The features that were decided to be part of the Open Source version will be developed as openly as possible: the features listed above are going to be developed and published in the open source branch with version number 2.2.x. The "alpha" and "beta" releases are going to be numbered 2.2alpha1, 2.2beta1 etc; the final stable is going to be called 2.2.1.
The aim is to avoid the mess of PE and OSE having a different version number.
The Open Source Edition will see a 2.1 release incorporating all core changes currently in the Premium Edition and additionally the SQL destination driver. We are going to start development on the 2.2 PE features, but some of those will also be incorporated in the open source version:
- support for the latest work of IETF syslog protocols
- unique sequence numbering for messages
- support for parsing message contents
The current feature set in PE were developed in a closed manner and I don't want to repeat this mistake. The features that were decided to be part of the Open Source version will be developed as openly as possible: the features listed above are going to be developed and published in the open source branch with version number 2.2.x. The "alpha" and "beta" releases are going to be numbered 2.2alpha1, 2.2beta1 etc; the final stable is going to be called 2.2.1.
The aim is to avoid the mess of PE and OSE having a different version number.
Comments
Does this mean that the syslog-ng OSE 2.1 now includes TLS support for protecting the logs when travelling from the log source to the central log server?
Sincerely,
/Fredrik
Feature-wise, syslog-ng OSE 2.1 includes only the "SQL" destination as an addition.
Sorry for the confusing language in my original post.
Using linux 'time' utility, I ran a shell script to log messages using linux "logger" shell cmd. What I found was that real time to have the messages processed by syslog-ng took much longer when I had a conf file with 1250 filters (but only using one) versus a conf file with a single filter statement. The difference in real time was in the order of 3 to 4 times longer in the case with 1250 filters versus a single. Why is there such a big difference in these two cases? My single log statement is the same syntax, specifying a single filter. Have any performance improvements been made to syslog-ng to address this testcase? I tried simplifying the filter name and still no luck in improving performance. Any suggestions? The reason I am creating 1250 filters is because in our installation, we have more than 127 facilities (LOG_FACMASK is too small), so I am thinking I need to parse the msg portion of my messages to achieve the behavior I need.
Thanks.
Another thing that affect your scenario is that syslog-ng resolves filter references once. This resolution takes longer if you have 1250 filters than if you have only 1.
Are you sure you sent enough messages to overcome the slower startup time?
# Define 1250 filters but only use one in a log statement
[root@slimjim logging]# vim /etc/syslog-ng/syslog-ng.conf
[root@slimjim logging]# killall -HUP syslog-ng
# kasi.sh script contains 4000 logger shell cmds issuing various different message strings.
[root@slimjim logging]# vim kasi.sh
[root@slimjim logging]# time ./kasi.sh
real 0m7.632s
user 0m1.079s
sys 0m2.787s
[root@slimjim logging]# time ./kasi.sh
real 0m7.473s
user 0m1.032s
sys 0m2.914s
[root@slimjim logging]# time ./kasi.sh
real 0m7.439s
user 0m1.025s
sys 0m2.969s
[root@slimjim logging]# time ./kasi.sh
real 0m7.391s
user 0m1.053s
sys 0m2.943s
[root@slimjim logging]# time ./kasi.sh
real 0m7.425s
user 0m1.033s
sys 0m2.938s
[root@slimjim logging]# time ./kasi.sh
real 0m7.389s
user 0m1.038s
sys 0m2.969s
# changing syslog-ng to have one filter statement defined with the same single log statement as above
[root@slimjim logging]# vim /etc/syslog-ng/syslog-ng.conf
[root@slimjim logging]# killall -HUP syslog-ng
[root@slimjim logging]# time ./kasi.sh
real 0m4.311s
user 0m1.105s
sys 0m3.290s
[root@slimjim logging]# time ./kasi.sh
real 0m4.342s
user 0m1.080s
sys 0m3.312s
[root@slimjim logging]# time ./kasi.sh
real 0m4.343s
user 0m1.042s
sys 0m3.382s
[root@slimjim logging]# time ./kasi.sh
real 0m4.316s
user 0m1.055s
sys 0m3.365s
[root@slimjim logging]# time ./kasi.sh
real 0m4.310s
user 0m1.133s
sys 0m3.291s
[root@slimjim logging]# time ./kasi.sh
real 0m4.318s
user 0m1.070s
sys 0m3.319s
[root@slimjim logging]#
I would imagine my shell script time is fixed in this equation.
Thanks again for taking the time to help me understand the difference in time.
I don't see how those could relate, however syslog-ng 1.6.x is very old code, I might not remember everything.
In syslog-ng 2.0.x the number of filter statements should only affect startup time.
Can we increase the number of facilities that can be supported by syslog-ng. Currently, it's 128. Basically, my requirement would be to increase those 7 bits to atleast 10 bits. How complicated would you think, the code changes be for this? Also, are there any side-effects in doing so?
Thanks in advance,
So use something like:
filter f_custom_fac { facility(50); };
Facility ranges are not supported in this case.
The only question is how you convince the application to use your custom facility.
Does syslog-ng OSE 3.0.x has support for TLS..?