Thanks all.  My config is working fine now.

I can take some of the blame for requesting the
$ActionExecOnlyEveryNthTime* params in the first place :P.

Just to shed some light, my previous understanding (or what I
initially gathered from the docs) was that the $Action params needed
to just be in a block and the order of params didn't matter.

So:
#start Action
$Action...
$Action...
$Action...
#end Action

So that was just what I gathered in my head.  But it's all clear now.

- Julian

On Sun, Mar 15, 2009 at 11:08 PM, Rainer Gerhards
<[email protected]> wrote:
>> -----Original Message-----
>> From: [email protected] [mailto:rsyslog-
>> [email protected]] On Behalf Of Julian Yap
>> Sent: Monday, March 16, 2009 10:05 AM
>> To: rsyslog-users
>> Subject: Re: [rsyslog] Logging all messages from a remote server
>>
>> Rainer,
>>
>> Would you recommend against using $includeConfig?  In that case, it
>> tends to lead to more unknown config issues.
>
> No, but do not split config directives that need to go together over several
> places. You need to put this together
>
> # this starts the definition of a single action
> $ActionExecOnlyOnceEveryInterval 300
> $ActionExecOnlyEveryNthTimeTimeout 1200
> $ActionExecOnlyEveryNthTime 3
> $...
> *.*  action
> #this ends it
>
> So you need to put everything together. If you rip it apart, you will get
> undefined results.
>
> This is - to phrase it politely - not very well documented. You need to read
> the fine print, most of the $Action... params modify the *next* action - NOT
> *all* actions. So it is vitally important where they occur.
>
> Will try to make this clear as soon as I have a bit more time.
>
>
> Rainer
>>
>> - Julian
>>
>> On Sun, Mar 15, 2009 at 10:52 PM, Rainer Gerhards
>> <[email protected]> wrote:
>> > The issue is that these statements
>> >
>> > $ActionExecOnlyOnceEveryInterval 300
>> > $ActionExecOnlyEveryNthTimeTimeout 1200
>> > $ActionExecOnlyEveryNthTime 3
>> >
>> > Modify the *next* action. So you need to specify them in front of the
>> action.
>> > If you use the $includeConfig option, and have part of the action
>> inside the
>> > include file and other parts (the statements) outside (or vice
>> versa), you
>> > never know which action gets configured how. So place all of them
>> together.
>> >
>> > HTH
>> > Rainer
>> >
>> >> -----Original Message-----
>> >> From: [email protected] [mailto:rsyslog-
>> >> [email protected]] On Behalf Of Julian Yap
>> >> Sent: Monday, March 16, 2009 9:15 AM
>> >> To: rsyslog-users
>> >> Subject: Re: [rsyslog] Logging all messages from a remote server
>> >>
>> >> OK, I narrowed the issues down.  Now I've faced strange issues like
>> >> this before when using the $IncludeConfig directive.
>> >>
>> >> This is what I have just tested with in my /etc/rsyslog.conf file
>> (and
>> >> other lines) and it worked fine:
>> >> ----
>> >> $IncludeConfig /etc/rsyslog.d/
>> >> :FROMHOST, isequal, "server"             /var/log/remote/server/all
>> >> ----
>> >>
>> >> Now if I have a file /etc/rsyslog.d/testalert_for_another_server,
>> >> things turn strange and only certain messages are logged from the
>> >> first server.:
>> >> ----
>> >> $ModLoad ommail
>> >>
>> >> $ActionFileDefaultTemplate      RSYSLOG_TraditionalFileFormat
>> >>
>> >> $template DYNserver2, "/var/log/remote/server2.log"
>> >> $template TraditionalFormatNoHostname,"%timegenerated%
>> >> %syslogtag%%msg:::drop-last-lf%\n"
>> >>
>> >> if $hostname == 'server2.domain.com' then
>> >> ?DYNserver2;TraditionalFormatNoHostname
>> >>
>> >> $ActionMailFrom [email protected]
>> >> $ActionMailTo server2_alert
>> >> $template mailSubjectTestAlert,"INFO: Alert detected"
>> >> $template mailBodyTestAlert,"Message is..."
>> >> $ActionMailSubject mailSubjectTestAlert
>> >> $ActionExecOnlyOnceEveryInterval 300
>> >> $ActionExecOnlyEveryNthTimeTimeout 1200
>> >> $ActionExecOnlyEveryNthTime 3
>> >>
>> >> if $hostname == 'server2.domain.com' and $msg contains 'Some
>> message'
>> >> then :ommail:;mailBodyTestAlert
>> >> ----
>> >>
>> >> Now if I add the contents of
>> >> /etc/rsyslog.d/testalert_for_another_server to /etc/rsyslog.conf
>> (and
>> >> remove file /etc/rsyslog.d/testalert_for_another_server) then things
>> >> work fine...
>> >>
>> >> Now if I remove the previous changes to /etc/rsyslog.conf and modify
>> >> /etc/rsyslog.d/testalert_for_another_server and remove the following
>> >> lines then things work OK again:
>> >> $ActionExecOnlyOnceEveryInterval 300
>> >> $ActionExecOnlyEveryNthTimeTimeout 1200
>> >> $ActionExecOnlyEveryNthTime 3
>> >>
>> >>
>> >> - Julian
>> >>
>> >>
>> >> On Sun, Mar 15, 2009 at 7:16 PM,  <[email protected]> wrote:
>> >> > On Sun, 15 Mar 2009, Julian Yap wrote:
>> >> >
>> >> >> I'm having trouble logging ALL the syslog messages received from
>> a
>> >> >> server.  I'm not sure if it's because it's from a non-standard
>> piece
>> >> >> of hardware (ie. not a Linux server).  Logging to another server
>> >> >> running syslogd works fine (but syslogd doesn't allow me to log
>> >> >> messages from a remote server to a separate file and it's not my
>> >> >> central syslogd server).
>> >> >>
>> >> >> I've tried several lines but none seem to work for me:
>> >> >> if $fromhost == 'server' then /var/log/remote/server/all
>> >> >> if $source == 'server' then /var/log/remote/server/all
>> >> >> :FROMHOST, isequal, "server" /var/log/remote/server/all
>> >> >> if $fromhost == 'server.domain.com' then
>> /var/log/remote/server/all
>> >> >> if $fromhost-ip == '192.168.0.60' then /var/log/remote/server/all
>> >> >
>> >> > there are a few possible reasons that this could have problems
>> >> >
>> >> > is it that you have a high volume of logs and some just get
>> dropped?
>> >> >
>> >> > if you just write everything to a file (*.* /var/log/test) does it
>> >> have
>> >> > all the logs from this server? or is it missing some?
>> >> >
>> >> > do the logs from this server sometimes include the host and
>> sometimes
>> >> not?
>> >> >
>> >> > what is different between the logs that you match and the ones
>> that
>> >> you
>> >> > miss?
>> >> >
>> >> > 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
>> >
>> _______________________________________________
>> 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