On Thu, 24 Jun 2010, Rainer Gerhards wrote:

> David, all
>
> I suggest you have a look at some good comment I received on comp.text.xml:
>
> http://groups.google.com/group/comp.text.xml/browse_thread/thread/f1b96d132e3
> fdd8e#
>
> It is post #8 by Peter Flynn.

I replied to him to understand his concerns.

> Also, I replied there with some extra information (should be post #10, but
> does not yet show up on Google Groups).

replying to this as well (basically, can't the DTD/schema be created if 
needed by looking through all available modules?)

Daivd Lang

> Thanks,
> Rainer
>
>> -----Original Message-----
>> From: [email protected] [mailto:rsyslog-
>> [email protected]] On Behalf Of [email protected]
>> Sent: Tuesday, June 22, 2010 1:52 PM
>> To: rsyslog-users
>> Subject: Re: [rsyslog] feedback requested: NEW rsyslog.conf format --
>> XML?
>>
>> On Mon, 21 Jun 2010, Rainer Gerhards wrote:
>>
>>> Original: http://www.rsyslog.com/download/new_rsyslog.conf
>>> XML: http://www.rsyslog.com/download/xml_rsyslog.conf
>>>
>>> I wonder if there is any good argument AGAINST using XML as
>> "described" in
>>> the sample. If nobody brings up a good argument, I'll very possibly
>> will try
>>> to take the XML road and begin to look what that takes in detail. Of
>> course,
>>> it would be helpful as well if you could make yourself heard if you
>> like XML
>>> format ;).
>>
>> XML can be a good format or a horrible format depending on how it's
>> used.
>>
>> poorly used it is horribly verbose with lots of strange characters and
>> rules.
>>
>> My policy towards XML files is to do the following
>>
>> don't use generic tags with a 'type' atribute, use more specific tags
>> for
>> system defined elements.
>>
>> if something can only take an option once, that should be an attribute
>> to
>> a tag
>>
>> if something can happen multiple times, it is a separate element
>>
>> example:
>>
>> instead of
>>
>> <input type="imtcp">
>>      <!-- params holds module-specific config parameters -->
>>      <params
>>              listen="10514"
>>              ruleset="remote10514"
>>      />
>> </input>
>>
>> do
>>
>> <imtcp listen="10514" ruleset="remote10514" />
>>
>>
>> instead of
>>
>> <action id="dynfile" type="omfile">
>>      <template format="%msg%\n" />
>>      <params filetemplate="dynGen" />
>> </action>
>>
>>
>> do
>>
>> <dynafile format="%msg%\n" filetemplate="dynGen" />
>>
>>
>> doing this keeps the file concise and lets you use the parser and file
>> definition to help you check the syntax. It's a lot easier to say "the
>> tag
>> imtcp requires an attribute 'listen' and 'ruleset'" then it is to say
>> that
>> "the tag input requires the attribute 'listen' and 'ruleset' if the
>> attribute 'type'=imtcp"
>>
>>
>> for formats you have to do something like you suggested
>>
>> <template id="dynGen" format="/var/log/%fromhost%.log" />
>>
>> because the id is user generated and will be used elsewhere
>>
>> although it may be that you can make this optional, if it's only used
>> once, let you define it in the attribute
>>
>> i.e.
>>
>> do either
>>
>> <template id="dynGen" format="/var/log/%fromhost%.log" />
>> .
>> .
>> <dynafile format="%msg%\n" filetemplateid="dynGen" />
>>
>> or
>>
>> <dynafile format="%msg%\n" filetemplate="/var/log/%fromhost%.log" />
>>
>> redoing the example config file this way gives me
>>
>>
>> <rsyslog_conf version="1">
>> re-written example by David Lang
>>
>> <global
>>      emitstartupmessages="off"
>> />
>>
>> <module id="imtcp"
>>      binary="imtcp"
>>      maxlisten="512"
>> />
>>
>> <imtcp listen="10515" ruleset="remote10515" />
>>
>> <ruleset id="remote10514">
>>      <rule>
>>              <omfile file="/var/log/catchall" />
>>              <action use="dynfile" /> <!-- use action defined elsewhere
>> -->
>>      </rule>
>> </ruleset>
>>
>> <template id="dynGen" format="/var/log/%fromhost%.log" />
>>
>> <action id="dynfile" />
>>     this is a "stand-alone" action, to be used in more than one rule
>>          <omfile format="%msg%\n" filetemplate="dynGen" />
>> </action>
>>
>> <ruleset id="remote10514">
>>      <rule pri="mail.*" >
>>              <omfile file="/var/log/remote10514" />
>>              <action use="dynfile" />
>>      </rule>
>>      <rule pri="mail.*" execonlyonce="5sec">
>>              <udpfwd target="192.168.1.2:514" />
>>      </rule>
>>      <rule previousfailed="yes" >
>>              <udpfwd target="192.168.1.3:514" />
>>      </rule>
>>      <rule expr="$severity == 'error' and $msg contains 'Link 2'" >
>>              <ommail server="192.168.1.3"
>>                              from="[email protected]"
>>                              to="[email protected]"
>>                              subject="###error &quot;detected&quot;###"
>>                              />
>>      </rule>
>> </ruleset>
>> </rsyslog_conf>
>>
>> note that with this approach everything important is in a tag, as such
>> you
>> can allow arbatrary text to be in the file outside of tags and just
>> ignore
>> it. This allows such text to be used as comments.
>>
>> note that I broke up one rule into two because it seemed to have two
>> filters on it (pri="mail.*" and execonlyonce="5sec")
>>
>> David Lang
>> _______________________________________________
>> 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