rsyslog work log 35

Yesterday’s rsyslog work log:
2008-02-20
– created new class ctok_token
– created some notes on powertop and imfile
– basic implementation of expression parser parsing done
– improved ABNF a bit
– added support for C-like inline comments (/* comment… */)
– created design diagram for expression execution
– created var class out of property_t
– changed rsCStrDestruct() to use the new interface conventions
– $MainMessageQueueDiscardSeverity can now also handle textual severities
(previously only integers)
– bugfix: message object was not properly synchronized when the
main queue had a single thread and non-direct action queues were used
– added vmop class (stage for expression execution)
– added “contains” and “startwith” comparison operations
– defined initial set of opcodes
– created initial vmprg class
– used new classes in expr.c
– begun expr compile process, first steps done

on the way to expression support

If you have followed my work logs, you already know that I currently have targeted expression support for rsyslog. I have just finished the basic tokenizer/parser to parse expressions from the configuration file. They base on flexible ABNF definition and will operate on a typeless data type. Initially, expressions will only be available for filters, but further on they will move to more and more places in rsyslog.

The surprising fact is that expressions will also bring a virtual machine implementation to rsyslog. I thought a while, but a vm is actually the easiest (and cleanest) way to implement arbitrary expressions in rsyslog. As a side-effect, the vm, once there, will probably lay the foundation for very interesting future developments inside rsyslog. It also affects the future rsyslog.conf file format. Maybe we extend it into a programming-language like construct (“syslogscript” comes up my mind) ;)

In the mean time, here is a preliminary object model for the expression part of rsyslog as I plan to implement it (click on the image for a larger version):

rsyslog work log 36

Yesterday’s rsyslog work log:
2008-02-19
– added professional support options to doc set (also somthing that
we need to have in order to be an alternative to syslog-ng)
– added doc on how expressions will work
– cleaned up the stringbuf Construct interface
– did some cleanup on stringbuf calls – we now have much better
interfaces and macros
– moved config file code to its own file
– finally made CONT_LINES in config the only standard support (the
code contained code for other case, which were never executed by
the preprocessor)
– some include file cleanup
– added ctok class (the config tokenizer)
– done stage work to begin implement tokenizer
– implemented initial tokenizer (stage work for expr parser)
– begun implementation of expression parsing logic
– implemented, simpstr, var, number in tokenizer
– implemented function in tokenizer

Huwaii’s Junk Patent on Syslog…

I wanted to share my excitement about a new patent with you:

I have just been able to find the one of the uttermost pieces of carp that the wrotten patent system has produced. May I introduce you to Miao’s genius invention for the syslog protocol:

http://www.freepatentsonline.com/EP1881668.html

As a side-note, it has quite some technical flaws and shows some fundamental misunderstanding on how syslog works. But maybe that’s what the real invention is…

I also find it quite disturbing how the tuning profile selection process from RFC 3080 is being re-invented in this invention. And it is also a nice steal to see my architecture slides

http://www.syslog.cc/ietf/presentat/syslog-protocol-03/img3.html

being represented in a childish way (or did you steal them from a freshmen’s course book?). Thanks Huwaii and Miao for this great invention and stealing my work. I really appreciate it. I bet Marshall T. Rose will also be delighted.

Rainer

rsyslog work log 37

Yesterday’s rsyslog work log:
2008-02-18
– changed interface “printchopped()” so that it looks more like
a generic message submission interface. Part of the ongoing
modularization effort.
– bugfix: invalid kernel log format — see bug
http://bugzilla.adiscon.com/show_bug.cgi?id=1
– bugfix: fixed abort when invalid template was provided to an action
bug http://bugzilla.adiscon.com/show_bug.cgi?id=4
– applied patch from Michael Biebl to auto-detect new libdbi version
– bugfix: default port was not used on $UDPServerRun when none was
specified – http://bugzilla.adiscon.com/show_bug.cgi?id=6
– removed no longer necessary signal from threads
– changed debug output request signal to SIGUSR2 (as originally
intented), restored SIGUSR1 semantics
– documented at least a bit about the debug settings
– released 3.11.3

rsyslog work log 38

Past days’ rsyslog work log:
2008-02-14
– enhanced file monitor doc
– implemented $InputFilePollInterval config directive
– error handling and cleanup in imfile
– improved file polling algorithm for more rapid file data delivery
– some more cleanup
– moved decoding of syslog names to a more appropriate place
– added new facility and severity syntaxes to cfsysline handler
– implemented $InputFileFacility config directive
– implemented $InputFileSeverity config directive
– created a bare template for omlibdbi (dbi output action)
– created an initial version of omlibdbi (does not yet work)
2008-02-15
– did some more work on omlibdbi, but did not yet get libdbi working.
I guess its a compile problem, but have not found it so far.
– the libdbi problem was actually related to libdbi/distro packages;
fixed that by installing from source, now omlibdbi basically works
removed some debug code
– cleaned up omlibdbi – works now
– implemented $ActionLibdbiDriverDirectory config directive
– some cleanup
– doc improvements
2008-02-16
– patched libdbi to work better with plugins
– adopted omlibdbi to use new version of libdbi
– improved man page a bit for the novice user

rsyslog work log 39

Yesterday’s rsyslog work log:
2008-02-14
– enhanced file monitor doc
– implemented $InputFilePollInterval config directive
– error handling and cleanup in imfile
– improved file polling algorithm for more rapid file data delivery
– some more cleanup
– moved decoding of syslog names to a more appropriate place
– added new facility and severity syntaxes to cfsysline handler
– implemented $InputFileFacility config directive
– implemented $InputFileSeverity config directive
– created a bare template for omlibdbi (dbi output action)
– created an initial version of omlibdbi (does not yet work)

New Web Interface for rsyslog

I just wanted to make you aware that we now have seriously begun to work on phpLogCon v2, the new web interface for rsyslog. It’s currently in the design phase and thus it is a very good time for suggestions, feature requests, and, and, and…

Current discussion can be found here:

http://www.phplogcon.org/PNphpBB2-viewforum-f-6.phtml

As you probably know, I wasn’t very happy with phpLogCon v1 the past months. It also received very low attention and consequently could not take off. We have decided the change that dramatically. You’ll see a much enhanced, hopefully very useful interface. Of course, it will take some time. I hope to have a very rough, but useful, first version available some time in March.

I personally will only be involved in the design of the web app, not its actual implementation. I think this will be a very interesting project and it also offers a lot of potential.

rsyslog work log 40

Yesterday’s rsyslog work log:
2008-02-13
– added some code to expr.c – not yet to be used
– cleaned up imfile.c
– changed interface of logmsg() to make it more straightforward
– introduced a new, more powerful, message submission interface
submitMsg() in additon to logmsg()
– a first, rough implementation of imfile that is able to read files
(but does not persist or handle rotation or whatever)
– removed some left-over unnecessary dbgprintf’s
– added ability to monitor file accross rotation
– fixed a race condition in DoDie() – cosmetic issue in debugging mode,
could not happen in production
– added the ability to persist current read location for the file
monitor
– some cleanup
– created initial doc for imfile plugin
– released a preview of 3.11.2 (with the file monitor)

rsyslog work log 41

Yesterday’s rsyslog work log:
2008-02-12
– still helped a bit with omsnmp
– applied patch from Michael Biebl that fixed my doc change from yesterday
which was somewhat incomplete
– fixed a bug in stringbuf.c related to STRINGBUF_TRIM_ALLOCSIZE, which
wasn’t supposed to be used with rsyslog. Put a warning message up that
tells this feature is not tested and probably not worth the effort.
Thanks to Anders Blomdell fro bringing this to our attention
– somewhat improved performance of rsCStr obj
– fixed bug that caused invalid treatment of tabs (HT) in rsyslog.conf
– released 2.0.2
– reduced volume of debug output
– bugfix: setting for $EscapeCopntrolCharactersOnReceive was not
properly initialized
– clarified usage of space-cc property replacer option
– bugfix: discard action and backup actions did not work due to
problem in direct queue mode. Now fixed. Tracker was
http://sourceforge.net/tracker/index.php?func=detail&aid=1886931&group_id=123448&atid=696552
– improved diagnostic information for abort cases
– some initial effort for malloc/free debugging support
– bugfix: using dynafile actions caused rsyslogd abort
– fixed man errors thanks to Michael Biebl
– released 3.11.1