Reply to bath David's and Aaron's post:

> -----Original Message-----
> From: [email protected] [mailto:rsyslog-
> [email protected]] On Behalf Of Aaron Wiebe
> Sent: Friday, June 25, 2010 5:36 PM
> To: rsyslog-users
> Subject: Re: [rsyslog] RainerScript revited? NEW rsyslog.conf format
> 
> I agree, we're starting to get to the point of wondering why again.
> So here is my reason why:
> 
> My basic concern is scoping.  A lot of the current format is
> order-specific, implicitly scoped configuration that makes it
> extremely hard to work with.  With more explicit scoping, I'm happy.

... that's one reason for the config language.

Next I see a large amount of questions that boil down to the missing
if/then/else functionality (as elaborated in another post).

The functionality to use a single action in more than one rule is missing
(but can be emulated using omruleset).

Config-reload on HUP with the current system is impossible (not a problem of
the config language, but of the engine). Same for full support for dropping
privileges.

Probably a handful of other, minor things (one being the somewhat annoying,
always-heard complaint that the config language is hard to work with, ugly,
unintuitive, ...).

But, after all, I managed to use the same config language for years now. When
Adiscon considered changing its overall config language (probably going XML
now, but not yet decided), I thought this was a nice chance to get some
momentum for a new rsyslog config system.

However, if the practical requirement boils down to scope (and it looks that
way), I am more than happy. All I need to do in that case is change all
config values to auto-reset after change. That means more config code must be
written (copied), but you always know what is active. Probably a good week of
work to do (plus a switch to enable the old behavior for compatibility). I
have no problem with that and could continue to look into some "more
interesting" things (from my POV, like performance).
> 
> 
> And I know this may not be a popular idea, but really, I think it
> should be considered -- syslog-ng's format is actually quite
> straightforward and easily understood.  Having a format similar may be
> a problem for "product differentiation", but honestly, the syslog-ng
> method of inputs, outputs, and functions to tie those together is
> quite appropriate for a logging application.  I'm not saying we should
> use their exact format, but I do like lifting some of their better
> config ideas.  (I'm also partial to the bind-style/syslog-ng-style
> config format.)

The config language closely reflects the internal design. If I use syslog-ng
config, I tie myself into their concepts and restrict me to them. This is not
something I want to do.

Rainer
> 
> -Aaron
> 
> On Fri, Jun 25, 2010 at 11:29 AM,  <[email protected]> wrote:
> > On Fri, 25 Jun 2010, Rainer Gerhards wrote:
> >
> >> After all formats seem to have at least some problems attached, I
> decided to
> >> have a look at my original RainerScript idea. Note that the current
> (partial)
> >> implementation is NOT suitable for very high performance. However,
> that is
> >> something that can be changed.
> >>
> >> To understand why a language, and why a specialized one, we need to
> look at
> >> rsyslogd from a different angle: to me, rsyslogd is high performance
> >> processor good at shuffling messages from an input to an output and
> applying
> >> transformations while doing so. There is conditional logic involved
> to craft
> >> the path a specific message takes.
> >>
> >> So one can think of rsyslog like a specialized computer whom's
> instruction
> >> set is optimized for that purpose (I guess that is what David was
> referring
> >> to when he talked about "functions").
> >>
> >> With that view, the configuration file is actually a programming
> language:
> >> one that specifies how to process message. Reading the config file
> can then
> >> be compared to a typical compilation, where the generated object
> code is
> >> actually targeted towards "rsyslog machine instructions".
> >>
> >> Obviously, to program that very special machine, we do need a
> specialized
> >> programming language as well. Alternatively, one may think of this
> language
> >> as being the "assembly language" of rsyslog, which closely matches
> the
> >> instruction set and thus can be used to write very efficient
> programs (but
> >> requires some skills for non-trivial cases).
> >>
> >> Having said this, all language constructs must translate natively to
> rsyslog
> >> engine objects. At the same time, they should be very simple to use
> for
> >> novice users while providing all the expressiveness an expert user
> needs.
> >> This most importantly means that the config language must be easy to
> read and
> >> edit by a human.
> >> [Michael: *this* actually are the requirements for the config
> language,
> >> together with the other long post this morning -- I am not sure if I
> find
> >> time to consolidate these two today.]
> >>
> >> Now please have a look at a new sample config:
> >>
> >> http://download.rsyslog.com/rainerscript_rsyslog.conf
> >>
> >> This time, I have not only included a hypothetical complex
> configuration, but
> >> also a very simple standard config - just so that we can see how
> verbose it
> >> gets. All configs are inside a single file -- you need to scroll
> down.
> >>
> >> All in all, I have to admit I begin to like the RainerScript
> approach once
> >> again. Unfortunately, it obviously is the solution that requires
> more work
> >> than any others (because I need to craft the grammar and the parser
> myself).
> >
> > after reading this I am wondering why everything needs to change.
> >
> > what concepts are missing in the current config language that you are
> > needing to add
> >
> > as I see it you need to add
> >
> > ability to define blocks of actions
> >   currently this is done by changing the ruleset, this needs to be
> made
> > more explicit and obvious
> >
> >   a block of actions may be a single action that's used more than
> once
> >
> >
> > ability to define if-then-else not just if-then
> >
> > combining these two to make the if-then or if-then-else do blocks of
> > actions.
> >
> > what else is missing?
> >
> > if you were going to a standard config language that other things
> could
> > understand then changing everything to fit that language makes sense,
> but
> > if it's going to be another custom config parser what's the benifit
> of
> > starting from scratch rather than just adding the features to the
> existing
> > one (since you will have to maintain the existing one anyway)
> >
> > David Lang
> >
> > P.S. is the rest of adiscon going to just go with XML?
> >
> >
> > _______________________________________________
> > rsyslog mailing list
> > http://lists.adiscon.net/mailman/listinfo/rsyslog
> > http://www.rsyslog.com
> >
> _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to