<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0ECR3Y-eip7ImA9WhRUFEo.&quot;"><id>tag:blogger.com,1999:blog-6193377</id><updated>2012-01-25T07:07:46.852+01:00</updated><category term="gplv3" /><category term="logging" /><category term="astronomy" /><category term="postgres" /><category term="logs" /><category term="log analysis" /><category term="relp" /><category term="funding" /><category term="journald" /><category term="iss" /><category term="open source" /><category term="c programming" /><category term="theclouds" /><category term="suse" /><category term="log normalization" /><category term="troubleshooting" /><category term="reliable" /><category term="rgerhards" /><category term="module" /><category term="imuxsock" /><category term="ihe" /><category term="spam" /><category term="journal" /><category term="reliability" /><category term="adiscon" /><category term="sts-120" /><category term="rsyslog.con" /><category term="unicode" /><category term="performance" /><category term="solaris" /><category term="syslogappliance" /><category term="kids" /><category term="reporting" /><category term="rfc3195" /><category term="appliance" /><category term="phplogcon" /><category term="rate limiting" /><category term="security" /><category term="ommysql" /><category term="building collapse" /><category term="international" /><category term="philosophy" /><category term="log appliance" /><category term="hdfs" /><category term="monitorware" /><category term="forensics" /><category term="rsylsog" /><category term="rsyslog.conf" /><category term="xmas" /><category term="segfault" /><category term="disaster" /><category term="patent" /><category term="config format" /><category term="eventreporter" /><category term="rsyslog" /><category term="windows event log" /><category term="drm" /><category term="software" /><category term="design" /><category term="plugins" /><category term="enterprise logging" /><category term="sbn" /><category term="computing" /><category term="google" /><category term="space" /><category term="event normalization" /><category term="syslog appliance" /><category term="nasa" /><category term="shuttle" /><category term="hash chaining" /><category term="moon" /><category term="ietf" /><category term="systemd" /><category term="fedora" /><category term="rainer" /><category term="linux journal" /><category term="Adiscon LogAnalyzer" /><category term="carnival of logging" /><category term="logstore" /><category term="libestr" /><category term="auditing" /><category term="logtools" /><category term="licensing" /><category term="libeventnorm" /><category term="windows" /><category term="rainerscript" /><category term="cologne" /><category term="apollo" /><category term="libcee" /><category term="human nature" /><category term="log hashing" /><category term="liblogging" /><category term="apache" /><category term="linux" /><category term="liblognorm" /><category term="WinSyslog" /><category term="parallel programming" /><category term="english" /><category term="libee" /><category term="cee" /><category term="syslog" /><category term="sylog" /><category term="config" /><category term="libree" /><category term="time" /><category term="tcp" /><category term="unawe" /><title>Rainer's Blog</title><subtitle type="html">This Blog is about many things Rainer is interested in. This happens to include syslog, astronomy and other fun things.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.gerhards.net/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.gerhards.net/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>427</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/cmfi" /><feedburner:info uri="blogspot/cmfi" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><entry gd:etag="W/&quot;CUAHRng5fip7ImA9WhRVF04.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-1484035184276331792</id><published>2012-01-16T18:07:00.003+01:00</published><updated>2012-01-16T18:08:57.626+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-16T18:08:57.626+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="imuxsock" /><category scheme="http://www.blogger.com/atom/ns#" term="rsyslog" /><category scheme="http://www.blogger.com/atom/ns#" term="rate limiting" /><title>imuxsock rate limiting now opt-in feature</title><content type="html">I added rate-limiting capabilities directly into &lt;a href="http://www.rsyslog.com/"&gt;rsyslog&lt;/a&gt;'s imuxsock some time ago. These were turned on by default and blocked processes from writing more than 200 messages within a 5-second interval (accounted on a per-pid level). This default, however, caused quite some confusion. I monitored reactions since the feature was introduced. Last week, I noticed Chris Gaffney, too, telling about his bad experience on twitter and suggesting to change that feature from opt-out to opt-in. That was the missing complaint ;) So I did exactly what Chris suggested, and starting with 5.9.7 that feature requires an explicit opt-in. To do so, I have simply changed the default. Now, you need to tell it the rate limiting interval, which must be non-zero, in order to activate rate limiting. The default is zero, what keeps it deactivated. Currently available via &lt;a href="http://git.adiscon.com/?p=rsyslog.git;a=commitdiff;h=76c4d6b951453078ab53bf612caf0b8ec9d54bb8"&gt;git&lt;/a&gt;. It will take some time, though, for this changed default to migrate to the stable branch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-1484035184276331792?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/fUG2JiLIlrM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/1484035184276331792/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=1484035184276331792" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/1484035184276331792?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/1484035184276331792?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/fUG2JiLIlrM/imuxsock-rate-limiting-now-opt-in.html" title="imuxsock rate limiting now opt-in feature" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.gerhards.net/2012/01/imuxsock-rate-limiting-now-opt-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEMSXYzfCp7ImA9WhRVFEo.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-2258930113897399076</id><published>2012-01-13T19:00:00.000+01:00</published><updated>2012-01-13T19:01:28.884+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-13T19:01:28.884+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="systemd" /><category scheme="http://www.blogger.com/atom/ns#" term="journal" /><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="journald" /><title>Disappointing press reactions...</title><content type="html">Friday, 13th... Systemd v38 went out recently and it includes a journald test release. That's great and congrats to the systemd team to that release. What me saddens is the that the press still conveys only Lennart's position on
 how bad syslog is. The counter arguments (&lt;a class="ot-anchor" href="http://blog.gerhards.net/2011/11/serious-syslog-problems.html"&gt;http://blog.gerhards.net/2011/11/serious-syslog-problems.html&lt;/a&gt;)
 are mentioned nowhere. Lesson learned? All it takes is some 
interesting-sounding claims and everyone believes them. Does anybody still 
wonder why I think journald will become standard [and would do so even 
if it were totally evil]? ;-) &lt;br /&gt;
&lt;br /&gt;
But don't get me wrong: &lt;a href="http://blog.gerhards.net/2011/11/what-i-dont-like-about-journald.html"&gt;while I think the journald proposal and the way it is getting pushed has some flaws&lt;/a&gt;, I also see good in it. My initial reaction still stands: &lt;a class="ot-anchor" href="http://blog.gerhards.net/2011/11/journald-and-rsyslog.html"&gt;http://blog.gerhards.net/2011/11/journald-and-rsyslog.html&lt;/a&gt; Unfortunately, the world, and us, the masses, seems not to be prepared for weighted arguments... On to the weekend, have a great one :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-2258930113897399076?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/IkV4sluWsuk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/2258930113897399076/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=2258930113897399076" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/2258930113897399076?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/2258930113897399076?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/IkV4sluWsuk/disappointing-press-reactions.html" title="Disappointing press reactions..." /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2012/01/disappointing-press-reactions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcARnc7fip7ImA9WhRVFEo.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-6148401873031723189</id><published>2012-01-13T18:34:00.000+01:00</published><updated>2012-01-13T18:34:07.906+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-13T18:34:07.906+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="licensing" /><category scheme="http://www.blogger.com/atom/ns#" term="rsyslog" /><title>rsyslog will remain GPLv3 licensed</title><content type="html">Licensing is though topic. I tried to explain some of the upcoming rsyslog license changes with &lt;a href="http://blog.gerhards.net/2012/01/rsyslog-licensing-update.html"&gt;yesterday's blog&lt;/a&gt; post. While I tried to cover all aspects, I have probably manged to create some confusion. I try to cleanup this mess today. In doing so, I will leave out some of the fine details but focus on the prime visible facts.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;First of all, the rsyslog project as whole will stay under GPLv3.&lt;/b&gt; If you dig down into the details, the current version is licensed under GPLv3, with a large body of code (the rsyslog runtime) being licensed under LGPLv3. In straight words, this means that rsyslog as whole can not be included in a commercial product while the rsyslog runtime can be. So if someone intends to provide rsyslog-like functionality, he or she can use the runtime and rewrite the rest of the system (but not copy it). Also, it is possible to create commercial rsyslog plugins with the current system, but then one relies either on a "creative" interpretation of the GPL or use message passing e.g. via pipes between core and plugin.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;With the intended changes these basic facts, in regard to rsyslog as whole, are not changed at all. &lt;/b&gt;However, the details change: the body of code that is licensed under a permissive license (allowing use inside commercial applications) will be increasing. Still, some key files will remain under GPLv3, and so will the overall rsyslog project. Also, in the future the permissive license used by rsyslog will probably be the Apache software license (ASL 2.0). This open source license is used by a myriad of well-known software products, with the Apache http server being a prime example. It is not sure if ASL 2.0 will totally replace LGPLv3 inside the rsyslog runtime, this depends on contributor reactions. For many of the same reasons, it is also not yet clear what exactly the GPLv3 core of rsyslog will be.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Why is this change benefitial to the project?&lt;/b&gt; Maintaining and developing rsyslog is costly. In the typical open source business model, these costs are covered by the sales of project-related services. Unfortunately, the rsyslog project received relatively little funding via this way and is still heavily sponsored by Adiscon, which can not bear the majority of the cost for all time to come.&lt;br /&gt;
&lt;br /&gt;
One problem with receiving funding is that some potential customers - especially large ones who could considerably contribute to funding - do not like to license under GPLv3 for one reason or the other. One "solution" to that problem would have been to dual-license rsyslog in its current form. We actually considered that (&lt;a href="http://blog.gerhards.net/2011/11/funding-rsyslog-development.html"&gt;blog posting&lt;/a&gt;) but stepped back from the initial approach after discussion with key community members. As described in the mentioned blog posting, it would not have been very hard for Adiscon as the main copyright holder to change the licensing model. However, this would probably have meant that a commercial and a non-commercial fork of rsyslog would have been created with potentially large differences in the code base.&lt;br /&gt;
&lt;br /&gt;
The move of more code under a permissive license prevents this problem. With the new model, only relatively few key files would need to be dual-licensed. This prevents large diversity inside the code base just for licensing reasons. Also, the ASL is far more appealing to many large users, so we hope to gain additional deployments - and thus potential customers - from that move.&lt;br /&gt;
&lt;br /&gt;
Finally, this model facilitates the ability to provide commercial plugins. Commercial plugins were always OK with the project, and as said above, can even be written and distributed under the current licensing scheme. The new licensing scheme makes it easier to support such plugins and encourages technical superior solutions. How exactly the licensing in this regard will be is not yet fully thought out. One solution might be to add a special exemption to the then-smaller GPLv3 core, that explicitely permits plugins (getting the wording right may be somewhat tricky). Another one is that someone who intends to ship commercial plugins must rewrite the rsyslog GPLv3 core, which is no longer that hard even for external entities as the GPLv3 core is smaller (one may argue that Adiscon as the main contributor has an advantage here over others; I can't decline it but I don't find it unfair either - after all, Adiscon has spent considerable effort on rsyslog, so why not reap a small benefit in this situation?). These solutions are the extreme ends of the solution spectrum - it could probably also be anything in between.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Why is this useful to the community? Obviously, the changes help fund the project, and thus help to keep it not only maintained but well-enhanced as well &lt;/b&gt;(there are many cool things I have on my mind, but the current time constraints do not permit me to work on them). This is even more important as the journald project will create a new, 
mostly commercial, environment for rsyslog. In the future, rsyslog needs to 
compete with syslog-ng primarily in that part of the Linux ecosystem. Balabit, which traditionally dual-licenses syslog-ng under a proprietary license has a big advantage regarding this customer base from that fact alone. So far, rsyslog could make up its disadvantage by the fact that it was installed on each system, an advantage that journald will very probably remove from rsyslog. &lt;b&gt;The other benefit is that the more permissive licensing model will probably attract additional software vendors and maybe additional parties&lt;/b&gt;, especially if we can move the full rsyslog runtime to ASL. There seems to be a movement inside the industry towards this type of licenses, at least for projects playing in the enterprise environment. &lt;b&gt;If all works out well, we may even get some more contributors and thus the ability to include additional features into the project.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;In short, the licensing change will not affect that much of what actually can be done with rsyslog code, but it provides rsyslog with some additional options that benefit both the project and the community.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I hope I have expressed myself clearly enough this time. Again, it has become a long post, even though I omitted some detail information given in &lt;a href="http://blog.gerhards.net/2012/01/rsyslog-licensing-update.html"&gt;yesterday's post&lt;/a&gt;. Licensing obviously is tough ;) I hope to soon be able to use my time for more productive things, again...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-6148401873031723189?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/AGz9v79Kb18" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/6148401873031723189/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=6148401873031723189" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/6148401873031723189?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/6148401873031723189?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/AGz9v79Kb18/rsyslog-will-remain-gplv3-licensed.html" title="rsyslog will remain GPLv3 licensed" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2012/01/rsyslog-will-remain-gplv3-licensed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYCRHo7fSp7ImA9WhRVFEo.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-5826256728202631384</id><published>2012-01-12T15:06:00.000+01:00</published><updated>2012-01-13T18:36:05.405+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-13T18:36:05.405+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="funding" /><category scheme="http://www.blogger.com/atom/ns#" term="rsyslog" /><title>rsyslog licensing update</title><content type="html">As regular readers know, there has been discussion on &lt;a href="http://www.rsyslog.com/"&gt;rsyslog&lt;/a&gt;'s licensing model for quite some time, I guess much like the beginning of the project. Many things influence its licensing, community support and the ability to fund the project are among these. Over the years, we had several license changes, so things tend to evolve. The whole discussion was restarted in 2011 after the introduction of the systemd journal idea in November. A prime reason is that journald pushes rsyslog far more into the commercial-only space than we originally anticipated, as journald will probably push rsyslog out of many low-end systems (for details, see &lt;a href="http://blog.gerhards.net/2011/11/journald-and-rsyslog.html"&gt;my original argument on rsyslog vs. journald&lt;/a&gt;, which I still support).&lt;br /&gt;
&lt;br /&gt;
This lead to a lot of discussion with my peers at &lt;a href="http://www.adiscon.com/"&gt;Adiscon&lt;/a&gt;. This resulted in a blog post on &lt;a href="http://blog.gerhards.net/2011/11/funding-rsyslog-development.html"&gt;potential dual-licensing of rsyslog&lt;/a&gt; (to get the fine details, read that post, I don't repeat them here; the post is still valid in regard to arguments and problems). That post, not unexpectedly, lead to a larger &lt;a href="http://blog.gerhards.net/2011/11/funding-rsyslog-development.html"&gt;discussion on the rsyslog mailing list&lt;/a&gt; as well as quite some private conversations. In these discussions, some folks expressed they like an open core strategy more than dual licensing, while others expressed it right the other way around. Thankfully, some understanding for the need to fund the project was expressed as well ;-). Of course, no solution was reached and nothing was changed.&lt;br /&gt;
&lt;br /&gt;
I have now taken the time to digest the discussion, Adiscon needs, and some overall trends. And I have briefly approached my peers at Adiscon as well as some contributors with a plan to go ahead in the most unintrusive way. So far, the idea was not killed (but also not discussed in-depth), so we may proceed with it. The core idea is that we must receive some funding for the work done. This is especially important in regard to the new environment that journald will create in the medium to long term. One thing that we learned during the past years is that commercial vendors are often hesitant to put GPLv3 code into their systems. Even larger key users slightly associated with software are hesitant (almost everyone falls into this category nowadays, think of embedded systems) for this reason. Ultimately, this somewhat blocks rsyslog's use inside commercial entities. And by doing so, it also limits our funding opportunities because it is hard to sell support and services to someone who does not use the project.&lt;br /&gt;
&lt;br /&gt;
To avoid this obstacle, the idea is to put a larger body of rsyslog under a more permissive license. Looking at current trends, the Apache Software License (&lt;a href="http://www.apache.org/licenses/LICENSE-2.0.html"&gt;ASL 2.0&lt;/a&gt; to be precise) seems to be a good fit. Actually, one thing that Adiscon already decided is to put code written by Adiscon under this license. I have already converted some files after careful examination of contributors, original sources and development history (not a job I really like to spend time on, but...). We also hope to gain support by contributors to place all plugins under the ASL. In order to clean up licensing, it would also be useful (though somewhat optional) to put the rsyslog runtime, currently licensed under LGPLv3, under the ASL as well. We need to see how this works out with contributors, though (this is obviously the largest bunch of code). It is important to note that while LGPL is not "GPL-free" and may still cause some friction with our future primary user base, it is pretty similar to ASL in regard to what it permits. Having all runtime code under the ASL would probably help a bit with those "GPL-skeptic" enterprise customers.&lt;br /&gt;
&lt;br /&gt;
Note that the ASL permits unlimited commercial use to anyone. I would still like to keep some leechers off the code (my original motivation to use GPLv3, among many others; &lt;a href="http://blog.gerhards.net/2007/07/why-gplv3-rant-on-crippled-commercial.html"&gt;my 2007 blog post&lt;/a&gt; on that is probably an interesting read in addition to this posting here - some things seem not to have worked out ;-)). My idea is to keep some files under GPLv3. This is not broadly discussed yet and details need to be worked out. Obviously, that would be counterproductive to what we intend to do with ASL 2.0. One could, however, optionally release these parts under a different license and thus somewhat "solve" the situation via relatively little modifications and different code. I agree, it boils down to some dual licensing, but in a smaller magnitude. Most importantly, everyone would be free to do his own implementation of the GPL parts and use the rest of rsyslog (the majority) with that freshly written code. [Please note that even though I changed some files to ASL, others are still under GPLv3, simply because I can not change licenses where Adiscon is not the sole copyright holder. So this is no indication that my idea is currently being implemented.]&lt;br /&gt;
&lt;br /&gt;
In any case, if we mange to complete the re-licensing -with or without GPLv3 parts- everyone would be free to extend rsyslog with extra functionality. This obviously includes Adiscon as well. It would give us some extra funding opportunities, as we could create some plugins targeted at large commercial entities. One thing that immediately pops up my mind is a new queue subsystem (the queue driver is internally "plugin-ish"), which could integrate many of the improvements I have on my mind. While I would really love to write that beast, it is a considerable effort that Adiscon declines to fund and no other party has yet been willing to fund it either -- but some expressed interest to provide limited financial support for it. If Adiscon could provide such a piece under a commercial license (at least for a while), I could probably persuade my peers to try this out and fund the effort. I honestly think this situation would be a win for everyone. With the current policies, it looks like this new subsystem will probably never materialize, so what is to lose? Highly specific input and output plugins also create similiar opportunity.&lt;br /&gt;
&lt;br /&gt;
The ability to use commercial and non-commercial plugins is something that I always considered a valid use of rsyslog technology (see "&lt;a href="http://www.rsyslog.com/doc/dev_oplugins.html"&gt;writing rsyslog plugins&lt;/a&gt;" right at the bottom, under "licensing"). I just never cared to dig into the licensing implications, which make it somewhat hard to provide plugins under a GPL-incompatible license (contrary to what I originally intended). Note that in any case it would even be possible with a totally GPLv3 codebase (even if the rsyslog runtime would not be LGPL, what is is licensed under). The only difference is that with the current system, it would either require a creative interpretation of the GPL (something many open source software vendors have done before) or a somewhat technically inferior approach that avoids direct linking (using pipes, which is really not that bad, so it is a vital option and would probably be the one I'd choose). Again, with the intended re-licensing, we could remove some friction associated with "GPL-phobic" companies, thus increasing our funding abilities.&lt;br /&gt;
&lt;br /&gt;
All in all, I think the proposal to re-license large parts of rsyslog under the Apache license is of benefit both the project as well as the community. It hopefully helps to provide the necessary funding for development and at the same time may even grow the community involvement as it becomes more attractive for other software vendors to participate in the rsyslog development (I found this &lt;a href="http://www.itworld.com/it-managementstrategy/233753/gpl-copyleft-use-declining-faster-ever"&gt;article by Brian Proffitt&lt;/a&gt; a very interesting read in that regard; if you read it, be sure to follow its links for details). I would really appreciate if we could find support for this movement and, yes, I have to admit I consider it rather vital, especially with the new role rsyslog will play in the systemd dominated world. Let me conclude this posting with one more personal opinion: I think that any feature developed thanks to commercial licensing should immediately be available, for free, to non-commercial entities, 
like private parties, educational institutions and charities. For the same reasons, it should probably reside inside the public code repository and be free to explore by anyone.&lt;br /&gt;
&lt;br /&gt;
PS: back in 2009, I wrote about &lt;a href="http://blog.gerhards.net/2009/11/paying-for-open-source-projects.html"&gt;my philosophy about the "free" in free and open source software.&lt;/a&gt; It may be worth a read in addition to this posting, as it probably explains some of the mindset behind my ideas.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UPDATE:&lt;/b&gt; This blog posting created some confusion if the rsyslog project will stay under GPLv3. In fact, it will! I wrote on new blog post clarifying the situation, &lt;a href="http://blog.gerhards.net/2012/01/rsyslog-will-remain-gplv3-licensed.html"&gt;please check it out&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-5826256728202631384?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/zrFfprUuji0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/5826256728202631384/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=5826256728202631384" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/5826256728202631384?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/5826256728202631384?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/zrFfprUuji0/rsyslog-licensing-update.html" title="rsyslog licensing update" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2012/01/rsyslog-licensing-update.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQGQ3g4fCp7ImA9WhRVEU8.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-2324902659881760124</id><published>2012-01-09T17:25:00.001+01:00</published><updated>2012-01-09T17:25:22.634+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-09T17:25:22.634+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="log normalization" /><category scheme="http://www.blogger.com/atom/ns#" term="rsyslog" /><category scheme="http://www.blogger.com/atom/ns#" term="cee" /><title>rsyslog v6 stable released</title><content type="html">Happy new year! After being back from vacation, &lt;b&gt;I started the new year with finally &lt;a href="http://rsyslog.com/rsyslog-6-2-0-v6-stable-released/"&gt;releasing the first stable rsyslog v6&lt;/a&gt;&lt;/b&gt;. While it was ready for a while, I was hesitant to release it when there was so much going on and time left for any quirks that may show up (I know I all too often overlook a thing or two with such a release and, if so, it is good to react fast). So today was finally the day. Let's see and wait if I failed somewhere.&lt;br /&gt;
&lt;br /&gt;
The new release is a very important one for me. First of all, because it helps me to get down to a decent set of versions I need to support. Doing all that v4..6 stuff in parallel with multiple branches really became time-consuming (but manageable thanks to git!). V4 has now been retired, and the number of branches is reduced to a minimum.&lt;br /&gt;
 &lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Very important is the new log classification capability&lt;/b&gt;. While it is in the beta (and devel) for quite a while, I think people were hesitant to try it out. At the same time, this prevented us from developing it any further. With it now being part of a stable release, I hope that it will get momentum.&lt;br /&gt;
&lt;br /&gt;
Besides software availability, rule bases for common syslog messages are also important. Adiscon will assist with creating these rule bases upon request. I hope that people will use that facility. All they need to do is provide sufficient information about what they want to normalize and some sample messages for us to work with. We will than see how to create the required rulebase. This whole effort is based on &lt;a href="http://www.liblognorm.com/"&gt;liblognorm&lt;/a&gt;, so the technology can also be used by other projects (&lt;a href="https://wiki.softwink.com/bin/view/Main/LibLogNorm"&gt;sagan&lt;/a&gt; is a good example that actually currently has more interest in that feature that rsyslog has).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-2324902659881760124?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/0fU7lPmmnrU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/2324902659881760124/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=2324902659881760124" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/2324902659881760124?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/2324902659881760124?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/0fU7lPmmnrU/rsyslog-v6-stable-released.html" title="rsyslog v6 stable released" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2012/01/rsyslog-v6-stable-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4FRXY4eip7ImA9WhRXFkg.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-5464307426249801654</id><published>2011-12-21T15:44:00.000+01:00</published><updated>2011-12-23T17:48:34.832+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-23T17:48:34.832+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="xmas" /><title>Happy Holidays to Everyone!</title><content type="html">&lt;pre&gt;&lt;span style="font-family: monospace;"&gt;           *             ,
                       _/^\_
                      &amp;lt;     &amp;gt;
     *                 /.-.\         *
              *        `/&amp;amp;\`                   *
                      ,@.*;@,
                     /_o.I %_\    *
        *           (`'--:o(_@;
                   /`;--.,__ `')             *
                  ;@`o % O,*`'`&amp;amp;\ 
            *    (`'--)_@ ;o %'()\      *
                 /`;--._`''--._O'@;
                /&amp;amp;*,()~o`;-.,_ `""`)
     *          /`,@ ;+&amp;amp; () o*`;-';\
               (`""--.,_0 +% @' &amp;amp;()\
               /-.,_    ``''--....-'`)  *
          *    /@%;o`:;'--,.__   __.'\
              ;*,&amp;amp;(); @ % &amp;amp;^;~`"`o;@();         *
              /(); o^~; &amp;amp; ().o@*&amp;amp;`;&amp;amp;%O\
        jgs   `"="==""==,,,.,="=="==="`
           __.----.(\-''#####---...___...-----._
         '`         \)_`"""""`
                 .--' ')
               o(  )_-\&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;b&gt;Happy holidays to everyone!&lt;/b&gt; It was fun communicating with all of your and bringing new features online. This year, we did not only extend rsyslog, but worked an a couple of enhancement in related topics, like log normalization, the log store, better Windows support and many improvements in the web based viewer.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Special thanks to all of who contributed code, good bug reports, ideas and encouragement - or helped funding the project by purchasing support contracts or incidents.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
It was a busy year and I will try to relax a bit the next days. So please bear with me if I do not respond as quickly as usual (I will try to even be a few days offline ;)).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Thanks again guys, have a great holiday season and all the best, most importantly health, for 2012!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Rainer&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PS: if you enjoy the ASCII art, &lt;a href="http://www.geocities.com/spunk1111/xmas.htm"&gt;have a look at the artist's web site!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-5464307426249801654?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/xpjqJU7qHyQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/5464307426249801654/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=5464307426249801654" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/5464307426249801654?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/5464307426249801654?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/xpjqJU7qHyQ/happy-holidays-to-everyone.html" title="Happy Holidays to Everyone!" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/12/happy-holidays-to-everyone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAGSXc_eSp7ImA9WhRQGEU.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-2255386831962954629</id><published>2011-12-14T18:12:00.000+01:00</published><updated>2011-12-14T18:12:08.941+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-14T18:12:08.941+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="forensics" /><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="logtools" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="logstore" /><title>Feedback Request for digitally signed log store</title><content type="html">&lt;b&gt;I have just written about how I plan to implement digital signatures in LogStore, the secure store used by LogTools.&lt;/b&gt; The &lt;a href="http://www.logtools.org/logstore-digital-signatures/"&gt;log store digital signature proposal&lt;/a&gt; details how and when signatures are written and provides reasoning why it will probably happen this way. There are two goals for the proposal: one is to document how things will work and the other, probably more important, one is to draw some feedback. It is easy to get security tools wrong, and even those with highest experience in that area (which I have not!) can fail. So it would be very beneficial to have some other folks read the proposal and comment on weaknesses they find - or simply things they would do differently or add to the overall idea. With that said, please read the (small) &lt;a href="http://www.logtools.org/logstore-digital-signatures/"&gt;paper &lt;/a&gt;and provide feedback ;-).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Please keep on your mind that his is not only related to syslog but can&amp;nbsp; be used with any text-based log &lt;/b&gt;(including binary logs that are converted to text, e.g. by base64 encoding them). So it can affect you even if you are not interested in syslog itself. My (mostly uneducated) assumption is that this could be a toolset of great use for computer forensics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-2255386831962954629?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/geD0948Ayyc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/2255386831962954629/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=2255386831962954629" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/2255386831962954629?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/2255386831962954629?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/geD0948Ayyc/feedback-request-for-digitally-signed.html" title="Feedback Request for digitally signed log store" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/12/feedback-request-for-digitally-signed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04HR34_eCp7ImA9WhRQF0o.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-8635915969924975808</id><published>2011-12-13T09:21:00.000+01:00</published><updated>2011-12-13T11:25:36.040+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-13T11:25:36.040+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="logtools" /><category scheme="http://www.blogger.com/atom/ns#" term="logstore" /><title>LogTools 0.1.0 Released</title><content type="html">&lt;b&gt;I finally managed to do the initial public release of &lt;a href="http://www.logtools.org/"&gt;LogTools, a set of useful utilities for log data processing&lt;/a&gt;. &lt;/b&gt;Their current most important feature is the initial version of &lt;a href="http://blog.gerhards.net/2011/12/announcing-logstore.html"&gt;LogStore&lt;/a&gt;, a tamper-proof way to store textual log data especially designed for long-term archival. Note that LogTools perfectly process syslog messages, but can be used for anything that is text-based (like Apache or other application text logs).&lt;br /&gt;
&lt;br /&gt;
I am very happy to finally have the initial release ready. &lt;b&gt;Full details can be found in the &lt;a href="http://www.logtools.org/logtools-0-1-0-released/"&gt;release announcement&lt;/a&gt;. &lt;/b&gt;I initially thought it would become available early last week, but I wanted to create some packages. As I had never done this before, it turned out to become a bit of a problem for me. For the time being, I have settled to do an experimental Debian package via checkinstall. While this is obviously a quick and dirty solution, it enables folks to obtain LogTools via the easy way. Also, I don't think it is too problematic, because in essence only some user-tools are installed that do not affect anything else on the system. But, of course, I'll think about better packaging as the project continues.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;At this point, I would be very interested in feedback both on the current tools as well on what would be considered a plus in the future&lt;/b&gt;. Please let me know!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-8635915969924975808?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/_NgLjfrm3QE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/8635915969924975808/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=8635915969924975808" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/8635915969924975808?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/8635915969924975808?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/_NgLjfrm3QE/i-finally-managed-to-do-initial-public.html" title="LogTools 0.1.0 Released" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/12/i-finally-managed-to-do-initial-public.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMBRn46fyp7ImA9WhRQEUQ.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-3715876475466532191</id><published>2011-12-06T18:24:00.000+01:00</published><updated>2011-12-06T18:44:17.017+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-06T18:44:17.017+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="logtools" /><category scheme="http://www.blogger.com/atom/ns#" term="logstore" /><title>Announcing LogStore</title><content type="html">While it probably is a bit early for a "real" announcement,&amp;nbsp; I wanted to tell a bit about the project I have been working on the past days, a &lt;b&gt;dedicated storage for (sys)log messages&lt;/b&gt;. It will be available as part of LogTools, the actual project I am working with. A key feature of the LogStore format will be its tamper-proofness. I wanted to write such an improved storage system for quite a while. However, I have to admit that the recent journald proposal brought more life to it. While the journald proposal aims at building a kind of Window Event Log for Linux, the &lt;b&gt;LogTools effort is more interested in traditional text log files &lt;/b&gt;(but I won't outrule going beyond that in the future).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;It is important to note that LogTools&lt;/b&gt;, and their storage format LogStore, &lt;b&gt;can protect &lt;i&gt;any&lt;/i&gt; kind of text file&lt;/b&gt;. Of course, it is great for syslog logs, but you may also secure things like Apache http logs or whatever else you have in text format.&lt;br /&gt;
&lt;br /&gt;
You may probably remember that I was - and still am - &lt;a href="http://blog.gerhards.net/2011/11/journald-log-hash-chaining-is-broken.html"&gt;very skeptic about the way journald tries to secure logs via hash chains&lt;/a&gt; (be sure to read the comments as well!). While the journald propsal has some technical deficits, I learned that many folks we interested in this kind of hash-chaining, even though they knew it would not be truly tamperproof (I followed a lot of forum posts). Seeing this, I thought it may be useful to provide this level of protection inside some simple to use tools, what gave birth to LogTools. Still, my assesment in regard to journald holds to the current LogStore format as well: &lt;b&gt;it is far from being real cryptography, it is insecure and it may be counter-productive if it generates a false sense of security. However, if one knows the limits, it can provide some useful function. So be sure to know what you do when you use these tools!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
For LogStore, I have also planned to employ some real cryptography and cryptographically sign the hash chain. &lt;b&gt;This will actually make the log tamperproof in a very strong sense as long as the signing key is not compromised.&lt;/b&gt; That functionality will be addressed once the initial release is out.&lt;br /&gt;
&lt;br /&gt;
The LogStore format itself is deliberately defined in a text-tool friendly way and well documented. For your initial review, I have included its man page below.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The LogTools project is currently available only via the &lt;a href="http://git.adiscon.com/?p=logtools.git;a=summary"&gt;LogTools git&lt;/a&gt;. &lt;/b&gt;I plan to finish the remaining man pages soon (at latest this week), and then create distribution tarballs (and hopefully some simple packages, but this needs to be seen).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Feedback on this effort is appreciated.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;h2&gt;

NAME&lt;/h2&gt;
logstore - enhanced log message storage
&lt;a href="http://www.blogger.com/blogger.g?blogID=6193377" name="lbAC"&gt;&amp;nbsp;&lt;/a&gt;
&lt;br /&gt;
&lt;h2&gt;

DESCRIPTION&lt;/h2&gt;
The logstore is an enhanced log message storage. It can be used to
store log messages in a way that secures their integrity. Currently,
all data is stored in sequential files. 
&lt;br /&gt;
The logstore provides integrity checks by chaining of SHA1-checksums.
Each log record (except the first) is hashed, together with the hash of
the previous record. As such, manipulations inside the log store can be
detected, as long as the checksums of all records are not also 
recomputed. Sequential logstore files are pure text files.
&lt;br /&gt;
&lt;a href="http://www.blogger.com/blogger.g?blogID=6193377" name="lbAD"&gt;&amp;nbsp;&lt;/a&gt;
&lt;br /&gt;
&lt;h2&gt;

FORMAT&lt;/h2&gt;
A sequential logstore is a text file containing variable-length records.
Within each record, there is recordtype, cryptodesignator and content. 
&lt;br /&gt;
&lt;dl compact="compact"&gt;
&lt;dt&gt;&lt;i&gt;recordtype&lt;/i&gt;

&lt;/dt&gt;
&lt;dd&gt;A single character designating the type of record. Currently only "m" is
defined, which specified original message text.
&lt;/dd&gt;
&lt;dt&gt;&lt;i&gt;cryptodesignator&lt;/i&gt;

&lt;/dt&gt;
&lt;dd&gt;Variable length, terminated by a colon. The is printable data that has
some cryptographic function. For example, for "m"-type recrods it is the
message's chained SHA1 hash.
&lt;/dd&gt;
&lt;dt&gt;&lt;i&gt;content&lt;/i&gt;

&lt;/dt&gt;
&lt;dd&gt;Variable length content terminated by a LF (. For obvious reasons, LF
is not permitted within the message. Also, the US-ASCII NUL character (&amp;nbsp;)
is forbidden in order to prevent trouble with text based tools. It is
suggested that only printable characters are used inside the message, but
this is currently not enforced.
&lt;br /&gt;
The 
structure is recordtype
Rsyslog has a modular design. Consequently, there is a growing number
of modules. See the html documentation for their full description.
&lt;/dd&gt;&lt;/dl&gt;
&lt;a href="http://www.blogger.com/blogger.g?blogID=6193377" name="lbAE"&gt;&amp;nbsp;&lt;/a&gt;
&lt;br /&gt;
&lt;h2&gt;

SECURITY&lt;/h2&gt;
In its current form, logstore provides limited security. While it is
possible to verify the correctness of the hash chain, an attacker may
simply rewrite the complete file, computing new hashes. However, protection
can be (manually) gained by saving the last hash inside the file to a
separate location. If so, one can compare the last hash with this
previously saved information and check if it is still valid. If someone
mangeled the store, this will not be the case. Once the authenticy of
the last hash has been proven, it is easy to verify the rest ot the file.
The 
&lt;b&gt;logreader (1)&lt;/b&gt;

tool can be used to do that.
&lt;br /&gt;
In the future, cryptographic signatures based on public key cryptography
will be used to protect the hash chain.
&lt;br /&gt;
&lt;a href="http://www.blogger.com/blogger.g?blogID=6193377" name="lbAF"&gt;&amp;nbsp;&lt;/a&gt;
&lt;br /&gt;
&lt;h2&gt;

SAMPLE&lt;/h2&gt;
The following is a minimalistic 4-line sample of a sequential
logstore file.
&lt;br /&gt;
&lt;pre&gt;m04e3324670626451755aa2257a9b92395e26c2e4:line 1
m347d4500ea11fa41800a58972699e57e0c0d7cd7:line 2
m3c329d40e37ae20c475c06bfaab892892ef4579d:line 3
m807cc61d7b04cbc1f048810df9d3a652988d745e:line 4
&lt;/pre&gt;
Note that all records have "m" in the first postion,
designating them as message records. The cryptographic hash in line one
is a SHA1 hash of just line one's content, whereas the hashes for lines
n (with n&amp;gt;1) are taken after the concatenation of hash(n-1) and &lt;a href="http://www.blogger.com/cgi-bin/man/man2html?n+line"&gt;line&lt;/a&gt;(n),
without the colon. So in order to obtain line two's hash, the following
string is hashed:
&lt;br /&gt;
04e3324670626451755aa2257a9b92395e26c2e4line2
&lt;br /&gt;
&lt;a href="http://www.blogger.com/blogger.g?blogID=6193377" name="lbAG"&gt;&amp;nbsp;&lt;/a&gt;
&lt;br /&gt;
&lt;h2&gt;

SEE ALSO&lt;/h2&gt;
&lt;b&gt;&lt;a href="http://www.blogger.com/cgi-bin/man/man2html?1+logreader"&gt;logreader&lt;/a&gt;&lt;/b&gt;(1),

&lt;b&gt;&lt;a href="http://www.blogger.com/cgi-bin/man/man2html?1+logwriter"&gt;logwriter&lt;/a&gt;&lt;/b&gt;(1),

&lt;b&gt;&lt;a href="http://www.blogger.com/cgi-bin/man/man2html?3+liblogtools"&gt;liblogtools&lt;/a&gt;&lt;/b&gt;(3)

&lt;br /&gt;
&lt;a href="http://www.blogger.com/blogger.g?blogID=6193377" name="lbAH"&gt;&amp;nbsp;&lt;/a&gt;
&lt;br /&gt;
&lt;h2&gt;

AUTHORS&lt;/h2&gt;
Rainer Gerhards (&lt;a href="mailto:rgerhards@adiscon.com"&gt;rgerhards@adiscon.com&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-3715876475466532191?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/K6g-JBKL1Qc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/3715876475466532191/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=3715876475466532191" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/3715876475466532191?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/3715876475466532191?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/K6g-JBKL1Qc/announcing-logstore.html" title="Announcing LogStore" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/12/announcing-logstore.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUENQ3c_eSp7ImA9WhRRGE0.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-5126015720350807033</id><published>2011-11-29T17:21:00.001+01:00</published><updated>2011-12-02T07:34:52.941+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-02T07:34:52.941+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="logging" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="rsyslog" /><category scheme="http://www.blogger.com/atom/ns#" term="journald" /><category scheme="http://www.blogger.com/atom/ns#" term="linux journal" /><title>Serious syslog problems?</title><content type="html">&lt;b&gt;In the &lt;a href="https://docs.google.com/document/pub?id=1IC9yOXj7j6cdLLxWEBAGRL6wl97tFxgjLUEHIX3MSTs&amp;amp;pli=1" target="_blank"&gt;paper&lt;/a&gt; introducing journald/Linux Journal a number of shortcommings in current syslog practice are mentioned.&lt;/b&gt; The authors say:
&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;
Syslog has been around for ~30 years, due to its simplicity and ubiquitousness it is an invaluable tool for administrators. However, the number of limitations are substantial, and over time they have started to be serious problems:&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;I have now taken some time to look at each of these claims in depth.&lt;/b&gt; But before I start, I need to tell that I am working in the IT logging field for nearly 15 years, have participated in a number of standards efforts and written a lot of syslog-related software with &lt;a href="http://www.rsyslog.com/"&gt;rsyslog &lt;/a&gt;being a prime example (some commercial tools I have been involved with can be found &lt;a href="http://www.monitorware.com/en/" target="_blank"&gt;here&lt;/a&gt;). So probably I have a bias and my words need to be taken with a grain of salt. On the other hand, the journald authors also have a bias, so I guess that's a fair exchange of arguments ;).&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;In my analysis, I compare the journald effort with what rsyslog currently provides&lt;/b&gt; and leave closed source software out. &lt;b&gt;It is also important to note that there is a difference between syslog, the protocol, a specific syslog application (like rsyslog) and a system log message store.&lt;/b&gt; Due to tradition, these terms are often used for different things and one must deduce from context, what is meant. The paper applies the same sloppiness in regard to terms. I use best effort to extract the proper meaning. I quote the arguments as they originally appeared inside the paper. However, I rearrange them a bit in order to put related things closer together. I retain the original numbering so that you can compare to the original paper. I also tried to be similar brief with my arguments. Now proof-reading the post, I see that I failed with that. Sorry, but that's as brief as I can provide serious counterargument. I broadly try to classify arguments in various levels of "True" vs "Wrong", so you may take this as an ultra-short reply.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;So let's start with Arguments related to the log storage system&lt;/b&gt;. In general, the paper is right that there is no real log storage system (like, for example, the Windows Event Log). Keeping logs only in sequential text files definitely has disadvantages. Syslog implementations like rsyslog or syslog-ng have somewhat addressed this by providing the ability to use databases as storage backends (the commercial syslog-ng fork also has a proprietary log store). This has some drawbacks as well. The paper proposes a new proprietary indexed syslog message store. I kind of like this idea, have even considered to write something like this as an optional component for rsyslog (but had no time yet to actually work on it). I am not convinced, though, that all systems necessarily need such a syslog storage subsystem.&lt;br /&gt;
&lt;br /&gt;
With that said, now let's look at the individual arguments:&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;5. Reading log files is simple but very inefficient. Many key log 
operations have a complexity of O(n). Indexing is generally not 
available.
&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;True&lt;/b&gt;. It just needs to be said that many tools inside the tool chain only need sequential access. But those that need random access have to pay a big price. &lt;b&gt;Please note, however, that it is often only necessary to "tail" log files, that is act on the latest log entries. This can be done rather quickly even with text files.&lt;/b&gt; I know both the problems and the capabilities, because &lt;a href="http://loganalyzer.adiscon.com/"&gt;Adiscon LogAnalyzer&lt;/a&gt;, in which I am involved, is a web-based analysis and reporting tool capable of working on log files. Paging is simple, but searching is slow with large files (we recommend databases if that is often required). Now that I write that, a funny fact is that one of the more important reasons for creating rsyslog was that we were unhappy with flat text files (&lt;a href="http://www.rsyslog.com/doc/history.html" target="_blank"&gt;see rsyslog history doc&lt;/a&gt;). And so I created a syslogd capable of writing to databases. Things seem to be a bit cyclic, though with a different spin ;)&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;8. Access control is 
non-existent. Unless manually scripted by the administrator a user 
either gets full access to the log files, or no access at all.&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;Mostly True&lt;/b&gt; and hard to make any argument against this (except, of course, if you consider database back ends as log stores, but that's not the typical case). &lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;10.
 Automatic rotation of log files is available, but less than ideal in 
most implementations: instead of watching disk usage continuously to 
enforce disk usage limits rotation is only attempted in fixed time 
intervals, thus leaving the door open to many DoS attacks.
&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;Partly True&lt;/b&gt;, at least in regard to current practice. Rsyslog, for example, can limit file sizes as they are written ("outchannel action"), but this feature is seldomly used and due to be replaced by a better one. The better one is partly implemented but received no priority because nobody in the community flagged this as an urgent requirement. As a side-note: Envision that journald intends to shrink the log and/or place stricter restrictions on rate-limiting when disk space begins to run low. If I were an attacker, I would simply begin to fill the disk then, and make journald swipe out the log store for me.&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;11. Rate limiting is available in
 some implementations, however, generally does not take the disk usage 
or service assignment into account, which is highly advisable.&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;It needs to be said what "rate limiting" means.&lt;/b&gt; I guess it means preventing an application from spamming the logs with frequently repeated messages. This feature is available&amp;nbsp; in rsyslog. It is right that disk usage is not taken into account (see comment above on implications). I don't know what "service assignment" means in this context, so I don't comment on that one. Rate limiting is more than run-away or spamming processes. It is a very complex issue. Rsyslog has output rate limiting as well, and much more is thinkable. But correct, current rate limiting looks at a number of factors but not the disk assignment. On the other hand, does that make sense, if e.g. a message is not even destined to go to the disk?&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;12. Compression in the log 
structure on disk is generally available but usually only as effect of 
rotation and has a negative effect on the already bad complexity 
behaviour of many key log operations.&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;Partly True&lt;/b&gt;. Rsyslog supports writing in zip format for at least one and a half year (I am too lazy to check the ChangeLog). This provides huge savings for those that turn on the feature. Without doubt, logs compressed in this way are much harder to process in real-time. &lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;7. Log files are easily manipulable by attackers, providing easy ways to hide attack information from the administrator&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;Misleadingly True. &lt;/b&gt;If thinking of a local machine, only, this is true. However, all security best practices tell that it is far from a good idea to save logs on a machine that is publicly accessible. This is the reason that log messages are usually immediately sent do some back end system. It is right that this can not happen in some setup, especially very small ones.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;My conclusion on the log store:&lt;/b&gt; there definitely is room for improvement. But why not improve it within the existing frameworks? Among others, this would have the advantage that existing methods could be used to decide what needs to be stored inside the log store. Usually, log contain noise events that administrators do not want to log at all, because of the overhead associated with them. The exists best practices for the existing tool chain on how to handle that. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Now on to the other detail topics:&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;&lt;i&gt;1. The message data is generally not authenticated, every local process can claim to be Apache under PID 4711, and syslog will believe that and store it on disk.&lt;/i&gt;&lt;/i&gt; &lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;i&gt;9. The meta data stored for log entries is limited, and lacking key 
bits of information, such as service name, audit session or monotonic 
timestamps.&lt;/i&gt; &lt;/blockquote&gt;
&lt;br /&gt;
&lt;b&gt;Mostly wrong.&lt;/b&gt; IMHO, both make up a single argument. At the suggestion of Lennart Poettering, rsyslog can force the pid inside the TAG to match the pid of the log message emitter - for quite a while now. It is also easy to add additional "trusted properties". I made an &lt;a href="http://blog.gerhards.net/2011/11/trusted-properties-in-rsyslog.html"&gt;experimental implementation in rsyslog&lt;/a&gt; yesterday. It took a couple of hours and the code is available as part of rsyslog &lt;a href="http://www.rsyslog.com/rsyslog-5-9-4-devel-released/"&gt;5.9.4&lt;/a&gt;. As a side-note, the level of "trust" one wants to have in such properties needs to be defined - &lt;b&gt;for truly trusted trusted properties some serious cryptography is needed&lt;/b&gt; (this is &lt;b&gt;not specified in the journald proposal nor currently implemented in rsyslog)&lt;/b&gt;.&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;&lt;i&gt;2. The data logged is very free-form. Automated log-analyzers need to parse human language strings to a) identify message types, and b) parse parameters from them. This results in regex horrors, and a steady need to play catch-up with upstream developers who might tweak the human language log strings in new versions of their software. Effectively, in a away, in order not to break user-applied regular expressions all log messages become ABI of the software generating them, which is usually not intended by the developer&lt;/i&gt;&lt;/i&gt;.&lt;/blockquote&gt;
&lt;b&gt;Trivial&lt;/b&gt; (I can't commit myself to a "True" or "Wrong" on such a trivial finding). Finally, &lt;b&gt;the authors have managed to describe the log analysis problem as we currently face it.&lt;/b&gt; This is not at all a syslog problem, it is problem of development discipline. For one, syslog has "solved" this issue with RFC5424 structured data. Use it and be happy (but, granted, the syslog() API currently is a bit problematic). The real problem is the missing discipline. Take, for example, the Windows Event Log. The journald proposal borrows heavily on its concepts. In Windows Event Log, there is a developer-assigned unique ID within the application's reserved namespace available. The combination of both app namespace (also automatically created) and ID together does exactly the same thing as the proposed UUID. In Windows Event Log, there are also "structured fields" available, but in the form of an array (this is a bit different from name-value pairs but far from totally different). This system has been in place since the earliest versions of Windows NT, more than 15 years ago. &lt;b&gt;So it would be a decent assumption that the problem described as a syslog problem does not exist in the Windows world, right (especially given the fact that Windows purposefully does not support syslog)? Well, have a look at the problems related to Windows log analysis: these are exactly the same!&lt;/b&gt; I could also offer a myriad of other samples, like WELF, Apache Log Format, ... The bottom line is that developer discipline is not easy to achieve. And, among others, a taxonomy is actually needed to extract semantic meaning from the logged event. It probably is educating to read the &lt;a href="http://cee.mitre.org/faqs.html"&gt;FAQ for CEE&lt;/a&gt;, a standard currently in development that tries to somewhat solve the logging mess (wait a moment: before saying that CEE is a bunch of clueless morons, please have a look at the &lt;a href="http://cee.mitre.org/board.html"&gt;CEE Board Members&lt;/a&gt; first).&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;3. The timestamps generally do not carry timezone information, even though some newer specifications define support for it.&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;Partly Wrong&lt;/b&gt;. High-Precision timestamps are &lt;b&gt;available for many years&lt;/b&gt; and 
default in rsyslog. Unfortunately, many &lt;b&gt;distros have turned them off&lt;/b&gt;, 
because they break existing tools.&amp;nbsp; So in current practice this is a 
problem, but it could be solved by deleting &lt;b&gt;one line&lt;/b&gt; in rsyslog.conf. 
And remember that if that causes trouble to some "vital" tool, journald 
will break that tool even more. Note that some distros, like &lt;a href="http://lists.adiscon.net/pipermail/rsyslog/2011-November/014032.html" target=""&gt;Gentoo, already have enabled high precision timestamps&lt;/a&gt;.&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;&lt;i&gt;4. Syslog is only one of many log systems on local machines. Separate logs are kept for utmp/wtmp, lastlog, audit, kernel logs, firmware logs, and a multitude of application-specific log formats. This is not only unnecessarily complex, but also hides the relation between the log entries in the various subsystems. &lt;/i&gt;&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;Rhetorically True&lt;/b&gt; - but what why is that the failure of syslog?&lt;b&gt; In fact, this problem would not exist if developers had consistently used syslog.&lt;/b&gt; So the problem is not rooted in syslog but rather in the fact that syslog is not being used. Lesson learned: even if standards exist, many developers simply ignore them (this is also an interesting argument in regard to problem number #2, think about it...).&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;13. Classic Syslog traditionally is not useful to 
handle early boot or late shutdown logging, even though recent 
improvements (for example in systemd) made this work.
&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;True&lt;/b&gt; - including that fact that &lt;b&gt;systemd already solved that problem&lt;/b&gt;. &lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;14. Binary data cannot be logged, which in some cases is essential (Examples: ATA SMART blobs or SCSI sense data, firmware dumps&lt;/i&gt;).&lt;/blockquote&gt;
&lt;b&gt;Wrong&lt;/b&gt;, the short answer is: it can be logged, but must be properly encoded. In the &lt;a href="http://www.ietf.org/" target="_blank"&gt;IETF&lt;/a&gt; syslog working group we even increased the max message sizes for this reason (actually, there is no hard limit anymore).&lt;br /&gt;
&lt;br /&gt;
The longer, and more correct, answer is that this is a long-standing discussion inside the logging world. Using that view, it is hard to say if the claim is true or false; it often even is argued like being a religion. Fact is that the current logging toolset does not work well for binary data (even encoded). This is even the case for the Windows Event Log, which supports binary data. In my view, I think most logging experts lean towards the side that binary data should be avoided and, if unavoidable, must be encoded in a text-friendly way. A core problem with the usefulness of binary data is that it often is hard to decode, and even more to understand, on the non-native platform (remember that the system used during analysis is often not the system where the event was initially recorded).&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;6. The syslog network protocol is very simple, but also very limited. Since it generally supports only a push transfer model, and does not employ store-and-forward, problems such as Thundering Herd or packet loss severely hamper its use.
&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;Wrong&lt;/b&gt;,&amp;nbsp; missing all improvement made in the past ten years. There is a new RFC series which supports TLS-secured reliable transmission of syslog messages and which permits to place fine-grain access control on who can talk with whom inside a relay chain. UDP syslog is still available and is so for good reason. I cannot dig into the details here, part of that reasoning is on the same grounds why we use audio more often over UDP than TCP. Using UDP syslog is strictly optional and there are few scenarios where it is actually needed. And, if so, the "problem" mentioned is actually a "solution" to a much more serious problem not even mentioned in the journald paper. For a glimpse at these problems, have a lock at my &lt;a href="http://blog.gerhards.net/2009/05/can-more-reliable-actually-mean-less.html"&gt;blog post on the "reliability problem"&lt;/a&gt;. Also, store-and-foward is generally available in rsyslog via action queues, failover handling and a lot of other things. I admit that setting up a complex logging system, sometimes requires an expert. On the "loss issue", one may claim that I myself say that &lt;a href="http://blog.gerhards.net/2008/04/on-unreliability-of-plain-tcp-syslog.html"&gt;plain TCP syslog is not totally lossless&lt;/a&gt;. That claim is right, but the potential loss Window is relatively small. Also, one can use different protocols that solve the issue. In rsyslog, I introduced proprietary RELP for that very reason. There is also completely lossless RFC3195, which is a great protocol (but without future). It is supported by rsyslog, but only extremely few other projects implement it. The IETF (including me) assumes that RFC3195 is a failure - not from technical fact but in the sense that it was too far away from the usual logging practice to be picked up by enough folks.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Concluding my remarks, I do not see anything so broken in syslog that it can only be fixed by a total replacement of technology.&lt;/b&gt; Right contrary, there is a rich tool set and expertise available. Existing solutions, especially in the open source world, are quite modular and can easily be extended. It is not even necessary to extend existing projects. A new log store, for example, could also be implemented by a new tool that imports a decent log format from stdin to a back end data store. That would be easily usable not only from rsyslog but from any other tool that is part of the current log tool chain. For example, it may immediately consume Apache or other application logs (of course, such a tool would require proper cryptography to be used for cryptographic tasks...). There is also need for a new logging API - the catch-all syslog() call is clearly insufficient (an interesting detail fact is that journald promises to retain syslog() as a first-class logging interface -- that means journald can solve none of the issues associated with that API, especially in regard to claim #2).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;So extending existing applications, or writing new ones that tightly integrate into the existing toolset is the right thing to do&lt;/b&gt;. One can view journald as such an extension. However, this extension is somewhat problematic as its design document tells that it&lt;b&gt; &lt;/b&gt;intends to &lt;b&gt;replace &lt;/b&gt;the whole logging system. Especially disturbing is that the reasoning, as outlined above, essentially boils down to a new log store and various well-known mostly political problems (with development discipline for structured formats right at the top of them). Finally, the proposal claims to provide more security, but fails to achieve at least the level that RFC5848 syslog is able to provide. Granted, rsyslog, for example, does not (yet) implement RFC5848. But &lt;a href="http://blog.gerhards.net/2011/11/journald-log-hash-chaining-is-broken.html"&gt;why intends journald to implement some home-grown pseudo security system&lt;/a&gt; when a standard-based method designed by real crypto experts is available? I guess the same question can be applied to the reasoning for the journald project at large.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Let me conclude this posting with the same quote I started with:&lt;/b&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;
Syslog has been around for ~30 years, due to its simplicity and 
ubiquitousness it is an invaluable tool for administrators. However, the
 number of limitations are substantial, and over time they have started 
to be serious problems:&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;Mostly Wrong.&lt;/b&gt; But it is true that syslog is an invaluable tool,especially in heterogeneous environments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-5126015720350807033?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/gHBAOBaTl8w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/5126015720350807033/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=5126015720350807033" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/5126015720350807033?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/5126015720350807033?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/gHBAOBaTl8w/serious-syslog-problems.html" title="Serious syslog problems?" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/serious-syslog-problems.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4HRX8_eCp7ImA9WhRRFUs.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-2648231829243810015</id><published>2011-11-29T12:41:00.001+01:00</published><updated>2011-11-29T12:58:54.140+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-29T12:58:54.140+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="logging" /><category scheme="http://www.blogger.com/atom/ns#" term="rsyslog" /><category scheme="http://www.blogger.com/atom/ns#" term="journald" /><category scheme="http://www.blogger.com/atom/ns#" term="linux journal" /><title>Trusted Properties in rsyslog</title><content type="html">&lt;b&gt;Today, I implemented "&lt;a href="http://www.rsyslog.com/what-are-trusted-properties/"&gt;trusted (syslog) properties&lt;/a&gt;" inside rsyslog's &lt;a href="http://www.rsyslog.com/doc/imuxsock.html"&gt;imuxsock&lt;/a&gt; module.&lt;/b&gt; The term "trusted" refers to the fact that these properties can not be faked by the logging application, creating an additional layer of log integrity protection. The idea is rooted in the journald proposal, where they are called "metadata" and "trusted fields". Actually I liked the idea implied by "trusted", but thought "property" would be a better name than "field".&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The concept is not totally new. Actually, for some month rsyslog can patch the PID field of the syslog TAG with the correct pid, so that this cannot be mangled with.&lt;/b&gt; This was based on an idea from Lennart Poettering, which I found nice and implemented quickly (I met him at Linux Tag 2010 in Nürnberg, Germany where we discussed this and other things). The core idea is to use SCM_CREDENTIALS so that the OS itself records pid, gid and uid. With the new feature, this is taken one step further. Now, we also&lt;b&gt; query the /proc virtual file system for additional information&lt;/b&gt; like the location of the logging application's binary. Undoubtedly, this provides some extra protection against faked messages. On the downside, it has some obvious overhead. A simple and immediate solution to this is to use rsyslog's omfile in zip mode. In journald, overhead is tried to avoid via a proprietary binary format, its event log, which provides compression features (but for syslog transmission the journald event log obviously needs to be decompressed as well). Some restrictions exist with trusted properties, some obvious, some less obvious (see the &lt;a href="http://www.rsyslog.com/what-are-trusted-properties/"&gt;trusted property doc&lt;/a&gt; for details; it also has the list of currently supported properties).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The current implementation is in experimental status. Based on feedback, some specifics may be changed in future versions.&lt;/b&gt; Also, the current implementation does not try to be standards-compliant. This will probably also change in the future. I hope that the new capability is useful to the logging community. As a side-note, the new feature, implemented in one morning, also shows that it often is easy to extend existing technology instead of writing everything new from scratch ;)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The actual release announcement will go out either today or tomorrow. The code is available via the &lt;a href="http://git.adiscon.com/?p=rsyslog.git;a=shortlog;h=refs/heads/v5-devel"&gt;v5-devel&lt;/a&gt; git branch right now.&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-2648231829243810015?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/zFBi5CWgE1M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/2648231829243810015/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=2648231829243810015" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/2648231829243810015?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/2648231829243810015?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/zFBi5CWgE1M/trusted-properties-in-rsyslog.html" title="Trusted Properties in rsyslog" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/trusted-properties-in-rsyslog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIDSH46eCp7ImA9WhRRFEo.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-297404445783090495</id><published>2011-11-25T18:13:00.001+01:00</published><updated>2011-11-28T10:29:39.010+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-28T10:29:39.010+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="journal" /><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="rsyslog" /><category scheme="http://www.blogger.com/atom/ns#" term="journald" /><title>What I don't like about journald / Linux Journal</title><content type="html">I heard of journald only a couple of hours ago (Tuesday?) and since then some intense discussion is going on.&lt;b&gt; I had a chance to look at the journald material in more depth. &lt;/b&gt;I also had a quick look at journald's source, but (as I know) Lennart and I are on the strictly opposite sides in regard to the amount of comment lines in source files (I put half the spec in, Lennart nothing at all ;-)). So I did not try too hard to make sense of the code and my impression is still primarily based on the initial paper (though I have to admit his code is probably simpler as he does not need to carry any legacy nor consider platforms other than recent Linux).&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The contra-syslog arguments can be classified in two classes: vaporware and correct fact.&lt;/b&gt; In the vaporware camp are things like the &lt;a href="http://blog.gerhards.net/2011/11/journald-log-hash-chaining-is-broken.html"&gt;hash chaining "security urban legend"&lt;/a&gt;, the timezone argument (though he is right in regard to current practice inside distros), syslog network transport and compression (this list is not conclusive). Technically correct is the current store format, different log sources, and free-formedness of messages (I prefer the term "semi-structuredness"). This list is also not conclusive.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;I think Lennart makes some good points, but discredits the paper somewhat by going overboard at times. It looks like he really needed some hard selling points &lt;/b&gt;(I also got this impression by his usage of the kernel.org breakage to promote this effort...). I think his paper would have been more useful if he had argued only those problems that actually exist.  I am in full agreement that there are some spots that really deserve to be changed and addressed. Unfortunately, the paper is phrased in such terms that people not at least at the medium expert level on logging tend to believe everything that is stated.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The question is how the actual problems can best be &lt;/b&gt;&lt;b&gt;fixed. Is it necessary to create a totally new infrastructure and throw away everything that exists?&lt;/b&gt; Maybe. I still prefer the alternative approach:&lt;b&gt; why not extend existing technology? &lt;/b&gt;I modeled rsyslog specifically for this reason to be a highly modular system where extensions can easily be added. As far as I understand, syslog-ng has also moved to such a design in the recent v3 version. In rsyslog, I have accepted even experimental technology inside the source tree quickly. Getting a new log store was on my agenda for quite some month (the syslog-ng commercial fork already has it). I unfortunately had not enough time to implement it - and nobody else helped out with it. Wouldn't it have been a good idea to contribute something to rsyslog instead of crafting something totally new?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Another thing that I strongly doubt is if the Linux journal idea will actually manage to solve the logging format dilemma.&lt;/b&gt; Microsoft's event log is in place for 15+ years, and app developer still don't use it correctly (as I &lt;a href="http://blog.gerhards.net/2011/11/journald-and-rsyslog.html"&gt;initially wrot&lt;/a&gt;e, the Linux Journal looks quite similar to the Windows Event Log). While I think the UUID idea is actually not a bad one, I seriously doubt all developers will understand &lt;b&gt;and&lt;/b&gt; use it (correctly). This is a problem with the Windows Event log as well. &lt;b&gt;One needs to know that a lot of high-profile folks are working for several years (10+) on solving this dilemma. &lt;/b&gt;Lennart may be a genius, but I have concerns that he over-promises (but I really wish he has success, that would be a very, very big advantage for the community).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;One thing, I have to admit, that disappoints me is that Lennart never approached me with his proposal.&lt;/b&gt; He knows me (even personally) and we have worked together on systemd/rsyslog integration. I heard about journald first on a Google Alert and quickly after from some folks who asked me what went on. Then&amp;nbsp; I found out that the systemd development mailing list also &lt;i&gt;never&lt;/i&gt; mentioned any work on journald. &lt;b&gt;So, to me, it &lt;i&gt;looks&lt;/i&gt; the idea was well hidden for a surprise at Kernel Summit. &lt;/b&gt;Well done, but not my style ;-) &lt;b&gt;This missing openness concerns me.&lt;/b&gt; My decisions in regard to rsyslog were controversial at times and dictatorial at others (and for sure sometimes wrong). And we currently have some big and controversial discussion on rsyslog going on (partly fueled by the arrival of journald). But I have always played very open, communicated what I had on my mind (in advance), discussed and did never try to hide something. &lt;b&gt;This, to be honest, is how I expect work to be carried out on an important system component. &lt;/b&gt;I also never met Lennart at any of the standard bodies work on logging. Not everyone runs Linux and probably not even everyone &lt;i&gt;on Linux&lt;/i&gt; will run journald. So &lt;b&gt;standards matter&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-297404445783090495?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/PZwXzpSz1U0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/297404445783090495/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=297404445783090495" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/297404445783090495?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/297404445783090495?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/PZwXzpSz1U0/what-i-dont-like-about-journald.html" title="What I don't like about journald / Linux Journal" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/what-i-dont-like-about-journald.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8HQH4_eyp7ImA9WhRRGU0.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-3419541825780660812</id><published>2011-11-25T14:19:00.001+01:00</published><updated>2011-12-03T11:40:31.043+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-03T11:40:31.043+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="log hashing" /><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="hash chaining" /><category scheme="http://www.blogger.com/atom/ns#" term="rsyslog" /><category scheme="http://www.blogger.com/atom/ns#" term="journald" /><title>journald log hash chaining is broken</title><content type="html">I promised to dig into some of the details of the journald announcement. &lt;b&gt;One of the most hyped features is log hash chaining&lt;/b&gt;. Lennart describes this &lt;a href="https://docs.google.com/document/pub?id=1IC9yOXj7j6cdLLxWEBAGRL6wl97tFxgjLUEHIX3MSTs&amp;amp;pli=1" target="_blank"&gt;in his paper&lt;/a&gt; as follows (highlighting by me):&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;&lt;b&gt;The Internet is a dangerous place.&lt;/b&gt; Break-ins on high-profile web sites have become very common. After a successful break-in the attacker usually attempts to hide his traces by editing the log files. Such manipulations are hard to detect with classic syslog: since the files are plain text files no cryptographic authentication is done, and changes are not tracked. &lt;b&gt;Inspired by git, in the journal all entries are cryptographically hashed along with the hash of the previous entry in the file. This results in a chain of entries, where each entry authenticates all previous ones.&lt;/b&gt; If the top-most hash is regularly saved to a secure write-only location, the full chain is authenticated by it. Manipulations by the attacker can hence easily be detected.
&lt;/i&gt;&lt;/blockquote&gt;
For a moment, let's assume he really means what he writes (I somewhat doubt that...). Then this is vaporware. &lt;b&gt;You don't get anything by providing a hash chain by itself.&lt;/b&gt; Let's assume you have a log of 2,000 records. Now an attacker wants to remove record number 1,001 to 1,010. All he needs to do is seek to the proper location inside the (binary) file, and remove these 10 records, regenerating the hashes for record 1,011 to 2,000. Now let's assume that you saved your initial hash to write only memory. First thing is that it probably is complicated to read the hash off from an unreadable location (write-only medium, mhhh ;)). Assuming you manage that, you can verify the whole log of now 1,990 records. You will not detect the missing records because the chain as such is perfectly well. This, by the way, is the main reason why I have not (yet) implemented such a simplistic method inside &lt;a href="http://www.rsyslog.com/" target="_blank"&gt;rsyslog&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;This approach is "data sheet cryptography" at best.&lt;/b&gt; To do it right, you need some crypto experts. Bruce Schneier and John Kelsy have written a non-nonsene paper on &lt;a href="http://www.schneier.com/paper-auditlogs.pdf" target="_blank"&gt;securing computer audit logs&lt;/a&gt; (often called "Counterpane Paper") in 1999. Note that John Kelsy and others have also written &lt;a href="http://tools.ietf.org/html/rfc5848" target="_blank"&gt;RFC5848&lt;/a&gt;, which describes how to &lt;b&gt;securely sign syslog messages&lt;/b&gt;. This RFC went through numerous revisions and took a couple of years to complete. An interesting fact is that &lt;b&gt;Albert Mietus reported the first implementation of syslog-sign&lt;/b&gt; (as RFC5848 was called these days) on EuroBSDCon &lt;b&gt;in 2002&lt;/b&gt;! In his presentation "&lt;a href="http://2002.eurobsdcon.org/papers/mietus_presentation.pdf" target="_blank"&gt;Securing Syslog on FreeBSD&lt;/a&gt;" he nicely describes what needs to be done.&lt;br /&gt;
&lt;br /&gt;
I have not yet implemented this method in rsyslog because it has &lt;b&gt;some serious issues when used in larger environments&lt;/b&gt;. When CEE discussed about signature chaining (note the difference to &lt;i&gt;hash &lt;/i&gt;chaining!), I wrote a small paper about the &lt;a href="http://www.gerhards.net/download/log_hash_chaining.pdf" target="_blank"&gt;issues with log signature chaining and remote logging&lt;/a&gt;. As I describe there, RFC5848 addresses only the less complex issues. This is not a failure of it's authors, which for sure are real crypto experts - and me not. This is rooted in the fact that this is a very complex problem and a real good answer is still not known. As you can see, this is not something you can solve in with a few hours (or even days) of hacking.&lt;br /&gt;
&lt;br /&gt;
Let me close with a quote from the journald paper: "&lt;i&gt;&lt;b&gt;The Internet is a dangerous place."&lt;/b&gt;&lt;/i&gt;. And, indeed, it is. The most dangerous thing in my experience is a false sense of security. &lt;b&gt;I guess black hats will *absolutely love* journald and its crypto stuff ;)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update: Lennart's non standard &lt;/b&gt;(for the logging comminity)&lt;b&gt; use of the term top vs. bottom caused some confusion. &lt;/b&gt;Please be sure to read the comments attached to this posting.&lt;b&gt; &lt;/b&gt;I probably need to blog about the issue again, but right now there are so many things going on. Again, read the comments, they have all information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-3419541825780660812?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/wcnE-L-TC5E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/3419541825780660812/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=3419541825780660812" title="11 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/3419541825780660812?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/3419541825780660812?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/wcnE-L-TC5E/journald-log-hash-chaining-is-broken.html" title="journald log hash chaining is broken" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>11</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/journald-log-hash-chaining-is-broken.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEGQXgzeip7ImA9WhRREk0.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-3885298640172146306</id><published>2011-11-25T07:23:00.001+01:00</published><updated>2011-11-25T07:30:20.682+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-25T07:30:20.682+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="liblognorm" /><category scheme="http://www.blogger.com/atom/ns#" term="log analysis" /><category scheme="http://www.blogger.com/atom/ns#" term="cee" /><category scheme="http://www.blogger.com/atom/ns#" term="libee" /><title>Quick update on log normalization</title><content type="html">&lt;b&gt;I just wanted to give a heads up on the status of log normalization.&lt;/b&gt; We have just released updated versions of &lt;a href="http://www.libee.org/"&gt;libee&lt;/a&gt; and &lt;a href="http://www.liblognorm.com/"&gt;liblognorm&lt;/a&gt;. These provide important new features, like the capability to &lt;a href="http://blog.gerhards.net/2011/11/log-annotation-with-liblognorm.html"&gt;annotate events&lt;/a&gt; based on classification. This, among others, brings the libraries more back inline with recent CEE developments. Also, the log normalizer tool is nearly ready for prime time. The "only" thing that is missing is a decent set of rule bases. Thankfully, &lt;a href="http://sagan.softwink.com/"&gt;sagan&lt;/a&gt; already has a couple. I guess besides programming obtaining rule bases is a major thing to target. &lt;br /&gt;
&lt;br /&gt;
As soon as I find time (I hope soon!), I'll finalize some lose ends on the software side and get doc online on how to use the normalizer tool. &lt;b&gt;I think with that a great tool for everyday use in log analysis will become available.&lt;/b&gt; Feedback and collaboration is always appreciated!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-3885298640172146306?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/BYQ8PK0zKH8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/3885298640172146306/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=3885298640172146306" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/3885298640172146306?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/3885298640172146306?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/BYQ8PK0zKH8/quick-update-on-log-normalization.html" title="Quick update on log normalization" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/quick-update-on-log-normalization.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcHQXozeSp7ImA9WhRREEo.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-4967271933396892563</id><published>2011-11-23T17:26:00.001+01:00</published><updated>2011-11-23T18:40:30.481+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-23T18:40:30.481+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="licensing" /><category scheme="http://www.blogger.com/atom/ns#" term="logging" /><category scheme="http://www.blogger.com/atom/ns#" term="funding" /><category scheme="http://www.blogger.com/atom/ns#" term="rsyslog" /><title>funding rsyslog development</title><content type="html">&lt;b&gt;To be honest, funding the &lt;a href="http://www.rsyslog.com/" target="_blank"&gt;rsyslog&lt;/a&gt; project is not easy these days.&lt;/b&gt; It never was, but has seen an extra hit by the current economic crisis. Rsyslog, in its initial phase, has been sponsored exclusively by &lt;a href="http://www.adiscon.com/" target="_blank"&gt;Adiscon&lt;/a&gt; as part of its open source involvement. In 2007, we added &lt;a href="http://www.rsyslog.com/professional-services/" target="_blank"&gt;rsyslog professional services&lt;/a&gt; with things like support contracts or custom development. While some customers used these services, Adiscon was still required to sponsor the project and is so until now. Unfortunately, professional services are not doing extremely well (to phrase it politely) and the global crisis is having a hit on Adiscon's customers. As a consequence, I have been more involved with paid work during the past weeks and could not work as much on rsyslog as I had liked to. The shift in Linux logging that probably will be brought by journald (&lt;a href="http://blog.gerhards.net/2011/11/journald-and-rsyslog.html"&gt;read blog posting&lt;/a&gt;) doesn't strengthen my position inside Adiscon either and works as an accelerator for change...&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;We have been discussing for quite some while how to improve this situation.&lt;/b&gt; While I don't like the idea, we probably need to think about a dual licensing approach for rsyslog. Please keep reading, you can be upset when I have made the rest of my argument ;-). First of all, I really don't like dual-licensing. In fact, syslog-ng's dual licensing approach was one reason that made me start working on rsyslog (&lt;a href="http://2007/08/why-does-world-need-another-syslogd.html"&gt;blog post&lt;/a&gt;). I also know that rsyslog's simple GPL license was one of the major "buying points" that made rsyslog become the default syslogd on Fedora and later many other distributions. In order to permit reuse of rsyslog technology in some other tools, in 2008 we created a licensing model that puts the so-called runtime - a large part of rsyslog - under LGPL (see "&lt;a href="http://www.rsyslog.com/doc/licensing.html"&gt;licensing rsyslog&lt;/a&gt;" and a previous &lt;a href="http://blog.gerhards.net//2008/04/tls-loosely-coupled-modules-runtime-and.html"&gt;blog post outlining the change&lt;/a&gt;). Syslog-ng later cloned this licensing model, but it seems like they put a couple of more things under LGPL than we did (so there seem to be rather weak "product driver" with most of the "real meat" being under LGPL - in rsyslog larger parts are GPL, only). There is an interesting &lt;a href="http://lwn.net/Articles/402298/"&gt;article on lwn.net&lt;/a&gt; that tells about this development, and does so from a syslog-ng point of view. The most interesting fact I got from this article was that syslog-ng faced quite the same problems we have with rsyslog --- and could not solve them without a commercial fork. Bare other options, it looks like this is a path that rsyslog needs to go, too. If so, of course this needs to be done as careful as possible.&lt;br /&gt;
&lt;br /&gt;
After dual-licensing finally surfaced as something hard to avoid yesterday evening, &lt;b&gt;I have done git log review today.&lt;/b&gt; I have to admit it was a bit scary: we have had some excellent and larger code contributions by Fedora folks in rsyslog's infancy (and continuous support since them), we have had some larger chunks of code in form of modules contributed and there is Michael Biebl, who not only creates great Debian packages but always helps with autotools and smoothing some edges. Finally, we have a couple of folks who sent in very specific patches. But I have to admit that the very vast majority of code was written by myself ;) As of today, we have 2819 git commits. Out of them 2676 were made by me (and another 50 or so by other Adiscon folks). These number need to be taken with a grain of salt: rsyslog was initially kept in a CVS archive, and all contributions at that time were logged with my user account. The early Fedora patches were in that timeframe. That have been around 20 or so. Also, my commit count is a bit higher due to automatic merges. On the other hand, the difference in code lines is probably even a bit higher than the difference in commit count. I have not done any in-depth analysis, bu an educated guess is that more than 98% of code lines were written by me (after all, I have worked a couple of years on this project...).&lt;br /&gt;
&lt;br /&gt;
I am now tasked with actually looking at the code. I will try to differentiate addon user contributions (like omoracle) from core files. This is useful anyway, because it makes clearer to users what is directly supported by the project and what not. Then, I will probably look into contributions and see which code remains at which locations. After that is know, I need to have another set of talks with my peers at Adiscon (and probably the top contributors) and see where we can head from here.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;This is, honestly, how the state of affairs in regard to the rsyslog project currently is.&lt;/b&gt; Most probably we need to move to some commercial licensing model. I know this is not ideal. I know many of you will not really like it. On the other hand, it is plain fact that many for-profit organizations greatly benefit from rsyslog without ever contributing anything. While they can continue to do so, it is probably a good idea to help them find an offering that funds the project. As final remark for today, let me introduce you to a blog post that IMHO very nicely describes the &lt;a href="http://blog.robla.net/2010/thoughts-on-dual-licensing-and-contrib-agreements/" target="_blank"&gt;problems, and needs, around dual licensing&lt;/a&gt;. I am not affiliated with the author, do not even know him.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;I hope that the ideas described here will enable us to keep pushing forward with rsyslog technology&lt;/b&gt;, something I would really like to do!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-4967271933396892563?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/0NPqX_Lp_UM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/4967271933396892563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=4967271933396892563" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/4967271933396892563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/4967271933396892563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/0NPqX_Lp_UM/funding-rsyslog-development.html" title="funding rsyslog development" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/funding-rsyslog-development.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8GSHs7cSp7ImA9WhRREkk.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-1115443178268117213</id><published>2011-11-22T13:31:00.001+01:00</published><updated>2011-11-25T18:40:29.509+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-25T18:40:29.509+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="systemd" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="rsyslog" /><category scheme="http://www.blogger.com/atom/ns#" term="journald" /><title>journald and rsyslog</title><content type="html">&lt;br /&gt;
&lt;div class="MsoPlainText"&gt;
&lt;span lang="EN-US"&gt;I was made
aware of the proposed new Linux logging interface via journald by a couple of
questions I received today. I have to admit that I was not aware of this
effort. I follow the &lt;a href="http://lists.freedesktop.org/mailman/listinfo/systemd-devel" target="_blank"&gt;systemd development mailing list&lt;/a&gt;, but as far as I can see (and search the archives), journald was never mentioned there.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoPlainText"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoPlainText"&gt;
&lt;span lang="EN-US"&gt;&lt;b&gt;This is
meant as a first comment on the relationship between the journald project and
the rsyslog project.&lt;/b&gt; I have obviously not done any in-depth analysis of the proposed new logging system.
I have just quickly skimmed through &lt;a href="https://docs.google.com/document/pub?id=1IC9yOXj7j6cdLLxWEBAGRL6wl97tFxgjLUEHIX3MSTs&amp;amp;pli=1" target="_blank"&gt;Lennart's paper&lt;/a&gt; in which he introduces journald. As such, I do not
intend to talk about the technical details of the journald and &lt;a href="http://www.rsyslog.com/" target="_blank"&gt;rsyslog&lt;/a&gt;, more on the bigger picture
of how it affects rsyslog (and probably the syslog community at large).&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoPlainText"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoPlainText"&gt;
&lt;span lang="EN-US"&gt;&lt;b&gt;In a
nutshell, the systemd/journald logging system looks much like the Windows Event
Log to me. &lt;/b&gt;&amp;nbsp;This is not necessarily bad
news, because the Microsoft system is not bad, at least with the recent
enhancements made. As some of you probably know, I have worked with the Windows
Event Log quite a bit and even invented the &lt;a href="http://www.eventreporter.com/" target="_blank"&gt;first-ever (and still best ;)) eventlog to syslog tool&lt;/a&gt;. This, however, shows that a &lt;b&gt;local event log alone is
typically not sufficient&lt;/b&gt;. Such a system is excellent for a local desktop, but
it needs a network component for centralized administration. Lennart wrote that
journald will be a local component in the first iteration but this may change
in the future. In Windows, the event log evolved into such a network-aware
system and still &lt;a href="http://www.adiscon.com/" target="_blank"&gt;Adiscon&lt;/a&gt; (my company) has many customers who need agents for integrating the
proprietary log format into a standardized format -- that being syslog. &lt;a href="http://www.mwagent.com/" target="_blank"&gt;MonitorWareAgent&lt;/a&gt; and &lt;a href="http://www.eventreporter.com/" target="_blank"&gt;EventReporter&lt;/a&gt; are still heavily used for that purpose. &lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoPlainText"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoPlainText"&gt;
&lt;span lang="EN-US"&gt;&lt;b&gt;Coming
back to journald and looking at Lennart's reasoning&lt;/b&gt;: some of his arguments in
regard to syslog are &lt;i&gt;technically wrong, but&lt;/i&gt; can be&lt;i&gt; considered &amp;nbsp;true if one looks at current practice&lt;/i&gt;: let me
take up on the &lt;b&gt;timestamp&lt;/b&gt;. Lennart claims that syslog does not contain a
timezone and mentions that journald will provide much finer resolution. Actually,
the timestamp is a source of deep frustration to me. Ages ago (2006?) I
implemented high-precision timestamps (including TZ info) in rsyslog, and RFC5424
has brought them to the on-the-wire protocol. As far as I know, syslog-ng
supports them for quite a while as well (but I am not a syslog-ng expert ;)).
HOWEVER, &lt;b&gt;all&lt;/b&gt; distributions turn high precision timestamps off and set the
dumb old format as this is a requirement to keep old tools working. Initially
Michael Biebl was brave enough to keep high-precision timestamps active in
Debian&lt;/span&gt;&lt;span lang="EN-US"&gt;'s&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span lang="EN-US"&gt;rsyslog &lt;/span&gt;&lt;span lang="EN-US"&gt;package, but was forced by complaints to go back to imprecise ones (&lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=475303" target="_blank"&gt;here is an example&lt;/a&gt;). Nobody seems to be really interested in updating the other
tools (and lots of custom programs).&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoPlainText"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoPlainText"&gt;
&lt;span lang="EN-US"&gt;&lt;b&gt;If I understood Lennart correctly, he will&lt;/b&gt; not only &lt;b&gt;write &lt;/b&gt;a new log API and log store, but also new tools for log processing, &lt;b&gt;a completely new log management subsystem&lt;/b&gt;. This may not be a bad idea. Apple has done the same in OS X. It may even be the only way to force people to switch to a newer and better system. The gradual approach I took with rsyslog and my other implementations was possibly a wrong path. Backward compatibility may actually be not that important on a typical desktop system. However, in an enterprise environment such harsh moves can not be done. Even though Linux has become quite important, we still need to integrate various log sources, and syslog is still an excellent tool for doing so. The good news is that journald will not prevent the integration. For those in the need, a syslogd can run alongside journald. This is exactly what we do on Windows, when EventReporter runs alongside the Windows event log and reformats Windows events into standard syslog format for consumption by some central system.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Will journald succeed and replace the current logging system? &lt;/b&gt;It is hard to say with the few information I have at hand. But I'd say that chances are not bad it will on most systems. Thinking about home desktop machines, Laptops and a myriad of other personal computers: Rsyslog runs on (almost) all of them, and nobody knows it does ;) The folks operating these machines are not at all interested in logging, so I think it is a valid assumption that none of them will care which logging system is running. Thinking about resources, Red Hat funds the journald development (I wonder how it plays with auditd, btw - will they merge?). If journald will make its way via systemd into Fedora (and I guess it will), other users of systemd will probably follow. Using this chain of arguments, I'd say it is likely that journald will replace local syslogging. I have to say that this concerns me a bit, because the systemd/journald relationship looks so close that it will probably be hard to gain some healthy competition in this regard. After all, this concerns was a big argument for me to start the rsyslog project. Read my 2007 blog post "&lt;a href="http://blog.gerhards.net/2007/08/why-does-world-need-another-syslogd.html" target="_blank"&gt;Why does the world need another syslogd?&lt;/a&gt;" and think of its arguments in regard to journald. I am happy to say that rsyslog helped make syslog-ng a much better choice by the competition it introduced. I am unsure if there can be real competition to journald (but, to be honest, one can question if my concern is worth the effort...).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;So let's assume journald will wipe out the rest of the Linux logging tools. What does that mean for the rsyslog project? &lt;/b&gt;Well, it gives it a somewhat different twist. I don't think that rsyslog (or syslog-ng) will completely go away. Replacing the local logging system on a desktop is one story, but replacing heterogeneous network logging is a totally different one. Of course, nothing is made for eternity, but I envision syslog to be healthy for at least the next 10 to 20 years. But there will be a shift inside the user base. &lt;b&gt;Today, rsyslog tries hard to be a platform useful both for low-end, home systems as well as enterprise environments. With journald, non-enterprise environments will probably disappear from the picture.&lt;/b&gt; This also puts rsyslog in a purely commercial context, and this is definitely something we have to think about. What is the point of open source software, if only commercial entities benefit from it, but not the authors? Today, we receive motivation (and some money-worth arguments!) from the fact that there is a very large installed base. Losing that motivation would of course have an effect. At least, it would be pointless to work on non-enterprise features. Why put a lot of effort into something that nobody uses?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;So is the arrival of journald good or bad for the community? &lt;/b&gt;For someone with my bias, you would probably expect that I say "it's bad". But I am not sure. It has good points as well. Maybe Lennart really manages to set a new, better standard that application developers will utilize in a &lt;i&gt;useful &lt;/i&gt;way. Maybe forcing projects like rsyslog to a high-end, commercial focus brings much more improvement in that area (just think about all that restrictions that I maintain purely for low-end systems or backward compatibility). I really don't know if it is good or bad. There are risks, yet there are also chances. I will try to get some more details about journald and will probably post a couple of technical remarks to the claims Lennart makes. Other than that, I'll probably just stand by as an interested observer. There is no urgent need to respond, maybe a little fiddling with feature priorities to not waste too much time. But other than that, I think I can just safely see how things progress. And rsyslog users can do so, too. If you don't have any strong opinion on the situation, there is really no need to involve yourself.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update:&lt;/b&gt; I now had a deeper look at the Linux Journal and journald, and there are a &lt;a href="http://blog.gerhards.net/2011/11/what-i-dont-like-about-journald.html" target=""&gt;couple of things I don't like&lt;/a&gt;. I suggest to read this post in addition to my first reaction here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-1115443178268117213?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/eXnqdTYeiAw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/1115443178268117213/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=1115443178268117213" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/1115443178268117213?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/1115443178268117213?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/eXnqdTYeiAw/journald-and-rsyslog.html" title="journald and rsyslog" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/journald-and-rsyslog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEERXk_cSp7ImA9WhRSFkw.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-2363138880762177045</id><published>2011-11-18T10:49:00.001+01:00</published><updated>2011-11-18T11:03:24.749+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-18T11:03:24.749+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="ihe" /><category scheme="http://www.blogger.com/atom/ns#" term="Adiscon LogAnalyzer" /><title>How to display XML data in Adiscon LogAnalyzer?</title><content type="html">Log files usually do not contain XML data. However, this does &lt;b&gt;not &lt;/b&gt;mean logs are necessarily non-XML. A prominent example is &lt;a href="http://www.ihe.net/" target="_blank"&gt;IHE&lt;/a&gt;, which transports XML documents inside syslog message. My post on &lt;a href="http://loganalyzer.adiscon.com/"&gt;Adiscon LogAnalyzer 3.3&lt;/a&gt; drew &lt;a href="http://blog.gerhards.net/2011/11/adiscon-loganalyzer-330-beta-is-out.html" target="_blank"&gt;some interesting comments&lt;/a&gt; from John Moerke, who sees use for it in an IHE environment.&lt;br /&gt;
&lt;br /&gt;
I have now discussed with Andre on how to integrate such functionality inside the log analyzer. There are obviously a couple of questions to address, but a &lt;b&gt;core question is how to deal with the hierarchic structure that XML offers. Traditionally, log file contain flat name-value pairs&lt;/b&gt;, so they can easily be mapped into a two-dimensional array (which is what you see when you look at Adiscon LogAnalyzer). The application is build around this concept. So a fundamental question is how to make sense out of an XML stream. An obvious answer is that we may display some fields in a flat overview, but display the full structure in detail view. This makes sense, but there are ample complexities in things like queries. Plus, it would probably require big changes to the engine.&lt;br /&gt;
&lt;br /&gt;
Putting implementation effort aside for the moment,&lt;b&gt; the big question is how users (you!) would like to work with XML data in a tool like Adiscon LogAnalyzer&lt;/b&gt;. Feedback is most appreciated!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-2363138880762177045?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/PQeGIgjRKp0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/2363138880762177045/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=2363138880762177045" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/2363138880762177045?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/2363138880762177045?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/PQeGIgjRKp0/how-to-display-xml-data-in-adiscon.html" title="How to display XML data in Adiscon LogAnalyzer?" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/how-to-display-xml-data-in-adiscon.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IAQ307eCp7ImA9WhRSFEg.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-3247004728948655029</id><published>2011-11-16T16:56:00.001+01:00</published><updated>2011-11-16T17:05:42.300+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T17:05:42.300+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="log normalization" /><category scheme="http://www.blogger.com/atom/ns#" term="event normalization" /><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="liblognorm" /><category scheme="http://www.blogger.com/atom/ns#" term="cee" /><title>log annotation with liblognorm</title><content type="html">I have recently written about the concept of &lt;a href="/2011/11/liblognorm-event-annotation-and-cee.html"&gt;event (log) annotation and liblognorm&lt;/a&gt;. During the past days I have made my mind up and have begun implementing some stuff today. In essence, rule bases will receive a new rule type "annotate", which contains the annotation part. Here is a sample from my lab environment:&lt;br /&gt;
&lt;code&gt;&lt;pre&gt;
rule=&lt;span style="color: red;"&gt;logon&lt;/span&gt;:&amp;lt;%-:number%&amp;gt;1 %timestamp:date-rfc5424% %src-id:word% ...
&lt;b&gt;annotate=&lt;span style="color: red;"&gt;logon&lt;/span&gt;:+action="login"
&lt;/b&gt;
&lt;/pre&gt;&lt;/code&gt;
Note the text in red. This is a liblognorm tag (not to confuse with a CEE tag!). This rule base tells the normalizer to append, according to the target format, the fields that are given in the annotate statement to any events that have the tag in question ("logon" in our case).&lt;br /&gt;
&lt;br /&gt;
Today, I am extending the rule base parser to support the annotate rule. Within the next days, I'll update the rest of the system. When this is done, I'll probably release that version so that you can try out the new functionality in your own environment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-3247004728948655029?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/1AwLeQtiMto" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/3247004728948655029/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=3247004728948655029" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/3247004728948655029?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/3247004728948655029?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/1AwLeQtiMto/log-annotation-with-liblognorm.html" title="log annotation with liblognorm" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/log-annotation-with-liblognorm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MFRXk5eyp7ImA9WhRSFEg.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-8779042000131236475</id><published>2011-11-15T17:39:00.001+01:00</published><updated>2011-11-16T17:03:34.723+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T17:03:34.723+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="Adiscon LogAnalyzer" /><title>Some sample Adiscon LogAnalyzer Reports...</title><content type="html">I thought I provide you a glimpse of which reports Adiscon LogAnalyser can generate. There are some interesting summary reports, like the &lt;a href="http://loganalyzer.adiscon.com/files/windows_event_log_report.html" target="_blank"&gt;Windows Event Log Summary Report&lt;/a&gt;&amp;nbsp; and the &lt;a href="http://loganalyzer.adiscon.com/files/windows_event_log_report.html" target="_blank"&gt;Syslog Summary Report&lt;/a&gt;. Of course, you can customize these reports based on the usual filtering capabilities. As an example, have a look at the &lt;a href="http://loganalyzer.adiscon.com/files/syslog_summary_report_today.html" target="_blank"&gt;syslog summary report just for "today"&lt;/a&gt;.&amp;nbsp; You can play with these options life at the &lt;a href="http://loganalyzer-demo.adiscon.com/reports.php" target="_blank"&gt;Adiscon LogAnalyzer demo site&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Please note that we will be working on more reports in the months to come. Also, if you miss some report, you may consider sponsoring its development. This can be quite cost-effective compared to the many quite expensive solutions you otherwise need to use -- or your programming time ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-8779042000131236475?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/iwGG7-fcniw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/8779042000131236475/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=8779042000131236475" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/8779042000131236475?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/8779042000131236475?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/iwGG7-fcniw/some-sample-adiscon-loganalyzer-reports.html" title="Some sample Adiscon LogAnalyzer Reports..." /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/some-sample-adiscon-loganalyzer-reports.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cBR3k_eSp7ImA9WhRSE0o.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-4315673290145439491</id><published>2011-11-15T16:29:00.001+01:00</published><updated>2011-11-15T16:30:56.741+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-15T16:30:56.741+01:00</app:edited><title>Potential Blog Unreliability</title><content type="html">Hi all, as you probably know, my blog's design hasn't changed in ages (yup, I'm a conservative guy). However, it finally is time to update things, so I'll look at some new design (and maybe software) options. That means that the blog may be a bit under construction during the&amp;nbsp; next couple of days. Please pardon any problems associated with that -- they will be temporary.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-4315673290145439491?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/aLj2J67JAaA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/4315673290145439491/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=4315673290145439491" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/4315673290145439491?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/4315673290145439491?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/aLj2J67JAaA/potential-blog-unreliability.html" title="Potential Blog Unreliability" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/potential-blog-unreliability.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAHQn47eCp7ImA9WhRSEkU.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-4387868648036784517</id><published>2011-11-14T16:47:00.001+01:00</published><updated>2011-11-14T17:22:13.000+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-14T17:22:13.000+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="reporting" /><category scheme="http://www.blogger.com/atom/ns#" term="Adiscon LogAnalyzer" /><title>Adiscon LogAnalyzer 3.3.0 beta is out</title><content type="html">&lt;b&gt;Adiscon's &lt;a href="http://loganalyzer.adiscon.com/" target="_blank"&gt;open source log analysis frontend LogAnalyzer&lt;/a&gt; has grown with some exciting new features.&lt;/b&gt; Most importantly, &lt;b&gt;report generation speed has been much increased&lt;/b&gt;. This was made possible via tighter integration of the report logic with the actual log source (database or file). As a result, all reports are generated in considerably less time and require far fewer system resources to complete. Along the same lines, Adiscon LogAnalyzer now offers suggestions for indexing database sources. If it finds room for improvement, new indexes are automatically suggested. This results in &lt;b&gt;overall improved speed &lt;/b&gt;throughout the application.&lt;br /&gt;
&lt;br /&gt;
Also, finally a long-due user interface improvement has been made: to access the reporting feature, users needed to access the admin panel. This was kind of well-hidden and cumbersome. In 3.3.0, reports are &lt;b&gt;directly available from Adiscon LogAnalyzer's main panel&lt;/b&gt;. With this change, some users may even discover the reporting feature for the first time. The screenshot below gives you a sneak preview of the new interface.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-5jI7apAuUuQ/TsE-0QWlYMI/AAAAAAAAAG8/B_FMcxNwaJ4/s1600/loganalyzer.reports.mainview.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-5jI7apAuUuQ/TsE-0QWlYMI/AAAAAAAAAG8/B_FMcxNwaJ4/s1600/loganalyzer.reports.mainview.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Best of all, the new version has brought some under-the-hood improvements that we will utilize in the future to generate some really exciting new reports.&lt;/b&gt; Stay tuned, there is much more to come...&lt;br /&gt;
&lt;br /&gt;
And finally let me say that work with the LogAnalyzer team to improve integration into rsyslog and the Adiscon's Windows logging components. We are trying very hard to provide an easy to use, integrated solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-4387868648036784517?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/gs7lCEYrK50" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/4387868648036784517/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=4387868648036784517" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/4387868648036784517?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/4387868648036784517?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/gs7lCEYrK50/adiscon-loganalyzer-330-beta-is-out.html" title="Adiscon LogAnalyzer 3.3.0 beta is out" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-5jI7apAuUuQ/TsE-0QWlYMI/AAAAAAAAAG8/B_FMcxNwaJ4/s72-c/loganalyzer.reports.mainview.png" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/adiscon-loganalyzer-330-beta-is-out.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMHQnw5fCp7ImA9WhRSEEw.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-7633550082174797966</id><published>2011-11-11T14:09:00.001+01:00</published><updated>2011-11-11T14:17:13.224+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-11T14:17:13.224+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="enterprise logging" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="rsyslog" /><title>thinking about a rsyslog client for Windows...</title><content type="html">I have had a series of interesting talks during the past weeks. We at Adiscon have seen that there is high demand for closely integrating Windows machines into an &lt;a href="http://www.rsyslog.com/"&gt;rsyslog &lt;/a&gt;enterprise logging infrastructure. Of course, there are various ways to do that, and probably the best is using Adiscon's other members of the &lt;a href="http://www.monitorware.com/en/product/product_comparision.php" target="_blank"&gt;MonitorWare &lt;/a&gt;product line. However, we can obviously go one step further and provide even thighter integration. For that reason, we will most probably soon create a special software package, the rsyslog for Windows client. It will provide&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Event Log Forwarding&lt;/li&gt;
&lt;li&gt;Log File Forwarding&lt;/li&gt;
&lt;li&gt;Syslog Relay&lt;/li&gt;
&lt;/ul&gt;
capabilities, probably in different editions so that users can cover exactly their needs. While event log and file forwarding seem natural, syslog relay functionality may be a bit surprising, given the fact that rsyslog is available as a direct receiver. This feature is primarily targeted towards larger enterprises which may have no Linux machines in remote offices, but equipment they need to monitor via syslog. The core idea here is that we provide that functionality on a Windows box, which can than talk to the central rsyslog server via a reliable way.&lt;br /&gt;
&lt;br /&gt;
We are currently discussing the details of this plan. I hope we will be able to show first results soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-7633550082174797966?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/ZYipdNXMub0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/7633550082174797966/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=7633550082174797966" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/7633550082174797966?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/7633550082174797966?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/ZYipdNXMub0/think-about-rsyslog-client-for-windows.html" title="thinking about a rsyslog client for Windows..." /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/think-about-rsyslog-client-for-windows.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cDRHwyeSp7ImA9WhRSE0o.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-8656626983670370337</id><published>2011-11-09T18:45:00.000+01:00</published><updated>2011-11-15T16:31:15.291+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-15T16:31:15.291+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="liblognorm" /><category scheme="http://www.blogger.com/atom/ns#" term="cee" /><title>liblognorm event annotation ... and CEE</title><content type="html">As you probably know, &lt;a href="http://cee.mitre.org/"&gt;CEE &lt;/a&gt;is an effort driven by MITRE to support a common event expression format. &lt;a href="http://www.liblognorm.com/"&gt;Liblognorm &lt;/a&gt;is a log normalizer library (aka "network event normalizer"). One of its primary target formats is CEE.&lt;br /&gt;
&lt;br /&gt;
For pure normalizing needs, liblognorm extracts data fields from semi-structured log message. The extracted fields are available inside a (basically) name/value property list. Liblognorm also permits to classify messages, e.g. as being a logon or logoff message. For this classification, liblognorm provides so-called "tags". These are simple words (strings of characters) which can be specified by the user. Tags reside in a special property called "tags", but otherwise occupy a flat space (tags can easily be structured via punctuation).&lt;br /&gt;
&lt;br /&gt;
CEE takes a slightly different approach: while it shares the tag concept (actually liblognorm inherited tags from an earlier version of CEE), CEE classifies tags into different tag types. For example, "logon" may be a tag, but can only be used to describe an action(-field). As such, "logon" can not be present by itself in a CEE log record, it must be given as value of the action field ('action="logon"'). Also, CEE requires some other fields which may not be present explicitly from the original message even though the information may implicitly be present inside it. To express such information entities (and tags in the CEE way), liblognorm needs the capability to add additional fields to an&amp;nbsp; extracted event. Let call these set of fields the "annotation" for easier future reference. Liblognorm needs to annotate the event so that the target format's (CEE) requirements are met. While I was talking about CEE so far, I assume (and know from previous experience) that other formats may have similar requirements, albeit different fields that need to be annotated.&lt;br /&gt;
&lt;br /&gt;
The question is now: how to implement this in liblognorm? The initial idea was to include the annotation inside the normalization rule itself. That has a major drawback: If a rule base is to be used for CEE and some other format, the annotation may be different, and thus the same rule base cannot be used. These two rule bases would differ in just the annotation. So it seems more natural, and easier to maintain, to split the recognition rule from the annotation rule. In that setting, the message is recognized and &lt;b&gt;classified &lt;/b&gt;by recognition rules and the annotation is based on (different) annotation rules. So only one set of recognition rules can be used by multiple annotation rules. Only the latter need to be redefined for different target formats (or systems).&lt;br /&gt;
&lt;br /&gt;
This split-rule method is the way I intend to head to. In essence, the current "rule=" rule and its format will remain untouched. It will be augmented by "annotate=" rules, which contain the full annotation. The binding between these two will be done via classification (liblognorm tags): in the first step, the message is recognized, data extracted and tags assigned, just like it is currently done. Then a second step will be added. It traverses through the tags and adds all annotation that are defined for the message's tag set. So the binding is on the tag set. Finally, it is probably necessary to add a third step that can remove unwanted fields. This step is probably target-format specific. For example, this step could eliminate the liblognorm tag set from an event if CEE compliance is desired, because CEE does not support, not even permit, an extra tag set.&lt;br /&gt;
&lt;br /&gt;
Feedback on this approach is appreciated. It is my hope to be able to implement this in the near future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-8656626983670370337?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/gRFIpDIs8E4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/8656626983670370337/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=8656626983670370337" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/8656626983670370337?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/8656626983670370337?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/gRFIpDIs8E4/liblognorm-event-annotation-and-cee.html" title="liblognorm event annotation ... and CEE" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/liblognorm-event-annotation-and-cee.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEACQHY8fCp7ImA9WhRTGEg.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-2790268130066058702</id><published>2011-11-08T18:05:00.001+01:00</published><updated>2011-11-09T16:32:41.874+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-09T16:32:41.874+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="log normalization" /><category scheme="http://www.blogger.com/atom/ns#" term="liblognorm" /><title>filler fields in log normalization</title><content type="html">When looking at some real-world rule bases for &lt;a href="http://www.liblognorm.com"&gt;liblognorm&lt;/a&gt;, I noticed that it is often required to check for the presence of a specific field, but the value is actually not needed. This leads to fields named e.g. "filler", "dummy", "dummy&amp;lt;n&amp;gt;" with n being an increasing number. This is both clumsy and requires unnecessary processing power. For that reason, I have introduced "-" (dash) as field name. When this special name is used, the field as parsed as usual, but immediately discarded after the successful parse. So while we need to parse and extract in order to get the parse logic right, we save the effort to keep a copy of this unneeded data. This also means that output log records produced by the normalizer tool are cleaned up. I hope this is a useful addition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-2790268130066058702?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/xpoDuvalGOs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/2790268130066058702/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=2790268130066058702" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/2790268130066058702?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/2790268130066058702?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/xpoDuvalGOs/filler-fields-in-log-normalization.html" title="filler fields in log normalization" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/filler-fields-in-log-normalization.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEDRX4_fip7ImA9WhRTFko.&quot;"><id>tag:blogger.com,1999:blog-6193377.post-3300624437421250959</id><published>2011-11-07T15:04:00.000+01:00</published><updated>2011-11-07T15:04:34.046+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-07T15:04:34.046+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="log normalization" /><category scheme="http://www.blogger.com/atom/ns#" term="cee" /><category scheme="http://www.blogger.com/atom/ns#" term="libee" /><title>Paper on LogNormalization</title><content type="html">I wanted to make all of your aware that I have posted a paper on &lt;a href="http://www.gerhards.net/download/LogNormalizationV2.pdf"&gt;log normalization &lt;/a&gt;. This was originally done in regard to CEE, but I noticed that the classification of different log sources and the way to handle them is of broader use. I hope you find the paper useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6193377-3300624437421250959?l=blog.gerhards.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cmfi/~4/9p1AIK-qPpg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gerhards.net/feeds/3300624437421250959/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6193377&amp;postID=3300624437421250959" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/3300624437421250959?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6193377/posts/default/3300624437421250959?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cmfi/~3/9p1AIK-qPpg/paper-on-lognormalization.html" title="Paper on LogNormalization" /><author><name>Rainer Gerhards</name><uri>https://profiles.google.com/112402185904751517878</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-hYpLVjtOpDc/AAAAAAAAAAI/AAAAAAAAAJs/GZYpq75y0Xc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gerhards.net/2011/11/paper-on-lognormalization.html</feedburner:origLink></entry></feed>

