Nice! Thanks Rainer! Brian
On Thu, Nov 20, 2014 at 12:28 PM, Rainer Gerhards <[email protected]> wrote: > 2014-11-20 15:59 GMT+01:00 Rainer Gerhards <[email protected]>: > > > As it looks, this does the trick: > > > > > > > https://github.com/rsyslog/rsyslog/commit/4cc10e7434d21f98e5cacd542edb834f894db620 > > > > It's currently in master-candidate and will migrate to master when the > > testruns look good (the manual one did). > > > > Totally empty configs are still not tolerated. I'll see if I can add an > > option for that. > > > > > I have now extended the -N option to support -N3, which can be used for > checking include files: > > > https://github.com/rsyslog/rsyslog/commit/a75eb98c058665d82f168f834b392683b30e001d > > It does not require the existence of actions. > > Rainer > > > Rainer > > > > 2014-11-19 20:07 GMT+01:00 Brian Knox <[email protected]>: > > > >> Thanks! > >> > >> On Wed, Nov 19, 2014 at 1:59 PM, Rainer Gerhards < > >> [email protected]> > >> wrote: > >> > >> > Ok then I need to see how I can fiddle that into the grammar ;) > >> > > >> > Sent from phone, thus brief. > >> > Am 19.11.2014 19:56 schrieb "David Lang" <[email protected]>: > >> > > >> > > On Wed, 19 Nov 2014, Rainer Gerhards wrote: > >> > > > >> > > 2014-11-19 16:40 GMT+01:00 Brian Knox <[email protected]>: > >> > >> > >> > >> Ok - perhaps we have accidently conflated two problems: > >> > >>> > >> > >>> 1) An empty ruleset > >> > >>> 2) A ruleset with only "stop" > >> > >>> > >> > >>> this will pass validation: > >> > >>> > >> > >>> ------------------------------------ > >> > >>> ruleset(name="foo") { > >> > >>> stop > >> > >>> } > >> > >>> *.* /var/log/test > >> > >>> call foo > >> > >>> ------------------------------------ > >> > >>> > >> > >>> If the ruleset is empty, however, it will not: > >> > >>> > >> > >>> ------------------------------------ > >> > >>> ruleset(name="foo") { > >> > >>> } > >> > >>> *.* /var/log/test > >> > >>> call foo > >> > >>> ------------------------------------ > >> > >>> > >> > >>> rsyslogd: version 8.5.0, config validation run (level 1), master > >> config > >> > >>> ./test.conf > >> > >>> rsyslogd: error during parsing file ./test.conf, on or before line > >> 2: > >> > >>> syntax error on token '}' [try http://www.rsyslog.com/e/2207 ] > >> > >>> rsyslogd: CONFIG ERROR: could not interpret master config file > >> > >>> './test.conf'. [try http://www.rsyslog.com/e/2207 ] > >> > >>> rsyslogd: run failed with error -2207 (see rsyslog.h or try > >> > >>> http://www.rsyslog.com/e/2207 to learn what that number means) > >> > >>> > >> > >>> > >> > >>> OK, that's a different question. Is the consensus we need to > >> support > >> > >> this > >> > >> as well? > >> > >> > >> > > > >> > > I think so, with a warning reported at startup or something like > that. > >> > > > >> > > David Lang > >> > > > >> > > Rainer > >> > >> > >> > >> > >> > >> Brian > >> > >>> > >> > >>> > >> > >>> > >> > >>> On Wed, Nov 19, 2014 at 10:35 AM, Brian Knox < > >> [email protected]> > >> > >>> wrote: > >> > >>> > >> > >>> For verifying the problem I ran rsyslog -N1 -f against just the > >> subset > >> > >>>> of > >> > >>>> the config, if I recall correctly. I believe my coworker had the > >> same > >> > >>>> issue with the full config that definitely had actions in it - > but > >> > I'll > >> > >>>> > >> > >>> ask > >> > >>> > >> > >>>> him to reproduce with the full configuration. Thanks! > >> > >>>> > >> > >>>> Brian > >> > >>>> > >> > >>>> On Wed, Nov 19, 2014 at 10:13 AM, Rainer Gerhards < > >> > >>>> [email protected]> wrote: > >> > >>>> > >> > >>>> Brian, > >> > >>>>> > >> > >>>>> I just revisited this problem report. I have now taken a look at > >> the > >> > >>>>> > >> > >>>> code. > >> > >>> > >> > >>>> The error message actually tells you that there is no action > inside > >> > the > >> > >>>>> *entire config*, not just an empty ruleset. Can you confirm > there > >> was > >> > >>>>> nothing else in the config? If not, can you send me the config, > so > >> > that > >> > >>>>> > >> > >>>> I > >> > >>> > >> > >>>> can try to see what's going on. > >> > >>>>> > >> > >>>>> I assume we agree that a totally action-less config is an error > ;) > >> > >>>>> > >> > >>>>> Rainer > >> > >>>>> > >> > >>>>> 2014-11-11 22:49 GMT+01:00 Brian Knox <[email protected]>: > >> > >>>>> > >> > >>>>> If was able to use an empty ruleset, a warning resulting from > >> that > >> > >>>>>> > >> > >>>>> wouldn't > >> > >>>>> > >> > >>>>>> bother me at all. > >> > >>>>>> > >> > >>>>>> Brian > >> > >>>>>> > >> > >>>>>> On Tue, Nov 11, 2014 at 4:25 PM, David Lang <[email protected]> > >> wrote: > >> > >>>>>> > >> > >>>>>> On Tue, 11 Nov 2014, Rainer Gerhards wrote: > >> > >>>>>>> > >> > >>>>>>> 2014-11-11 17:22 GMT+01:00 David Lang <[email protected]>: > >> > >>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> On Tue, 11 Nov 2014, Brian Knox wrote: > >> > >>>>>>>> > >> > >>>>>>>>> > >> > >>>>>>>>> Rainer, > >> > >>>>>>>>> > >> > >>>>>>>>> > >> > >>>>>>>>>> I agree that an empty ruleset is an oddity. In our case, > the > >> > >>>>>>>>>> > >> > >>>>>>>>> short > >> > >>> > >> > >>>> answer > >> > >>>>>>>>>> is that we are generating configurations from templates > using > >> > >>>>>>>>>> > >> > >>>>>>>>> chef, > >> > >>> > >> > >>>> and > >> > >>>>>> > >> > >>>>>>> the > >> > >>>>>>>>>> ability to have a ruleset that simply discards would make > >> part > >> > of > >> > >>>>>>>>>> > >> > >>>>>>>>> that > >> > >>>>> > >> > >>>>>> process much simpler for us. > >> > >>>>>>>>>> > >> > >>>>>>>>>> It is admittedly an edge case. > >> > >>>>>>>>>> > >> > >>>>>>>>>> > >> > >>>>>>>>>> It's an edge case, but I think it's one that should be > >> > supported > >> > >>>>>>>>> > >> > >>>>>>>> if > >> > >>> > >> > >>>> possible. > >> > >>>>>>>>> > >> > >>>>>>>>> automated config generation is very useful, and being able > to > >> > >>>>>>>>> > >> > >>>>>>>> group > >> > >>> > >> > >>>> rules > >> > >>>>>> > >> > >>>>>>> into rulesets and call them with the calling function not > having > >> > >>>>>>>>> > >> > >>>>>>>> any > >> > >>> > >> > >>>> idea > >> > >>>>>> > >> > >>>>>>> of what is going to happen with the logs at that point is very > >> > >>>>>>>>> > >> > >>>>>>>> useful, > >> > >>>>> > >> > >>>>>> being able to have a high level config split the logs up and > call > >> > >>>>>>>>> different > >> > >>>>>>>>> rulesets on different logs without having to worry if the > >> ruleset > >> > >>>>>>>>> > >> > >>>>>>>> does > >> > >>>>> > >> > >>>>>> something with the logs or just throws them away is _very_ > >> useful. > >> > >>>>>>>>> > >> > >>>>>>>>> So it is a corner case, but I think it's a valuable one to > >> > >>>>>>>>> > >> > >>>>>>>> support. > >> > >>> > >> > >>>> > >> > >>>>>>>>> > >> > >>>>>>>>> ack > >> > >>>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> I would suggest that at config load time, that this is an > odd > >> > >>>>>>>> > >> > >>>>>>> enough > >> > >>> > >> > >>>> corner case that it's worth logging a "ruleset X can't do > anything > >> > >>>>>>>>> > >> > >>>>>>>> with > >> > >>>>> > >> > >>>>>> the > >> > >>>>>>>>> logs" message, not just for the case where the only action > is > >> to > >> > >>>>>>>>> > >> > >>>>>>>> throw > >> > >>>>> > >> > >>>>>> it > >> > >>>>>> > >> > >>>>>>> away, but also for the cases where the conditions in a ruleset > >> > >>>>>>>>> > >> > >>>>>>>> cannot > >> > >>>>> > >> > >>>>>> possibly match any log message (if priority = info then *.crit > >> > >>>>>>>>> > >> > >>>>>>>> also > >> > >>> > >> > >>>> cannot > >> > >>>>>>>>> match anything for example) > >> > >>>>>>>>> > >> > >>>>>>>>> > >> > >>>>>>>>> Let's start with what we have on the table. I think it is > >> best > >> > to > >> > >>>>>>>>> > >> > >>>>>>>> add > >> > >>>>> > >> > >>>>>> a > >> > >>>>>> > >> > >>>>>>> ruleset parameter "permitEmpty=on". That way, we don't > generate > >> > >>>>>>>> error/warning messages when the user is aware of what he is > >> doing. > >> > >>>>>>>> > >> > >>>>>>> In > >> > >>> > >> > >>>> any > >> > >>>>>> > >> > >>>>>>> manual case (without config gen), I'd still say that's an > error > >> > >>>>>>>> indication. > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>> I think that this is a sufficently corner case that I'm not > sure > >> > >>>>>>> > >> > >>>>>> it's > >> > >>> > >> > >>>> worth the extra complexity to silence the warning. I think that > >> > >>>>>>> > >> > >>>>>> people > >> > >>> > >> > >>>> who > >> > >>>>>> > >> > >>>>>>> do this intentionally can just ignore the log message. > >> > >>>>>>> > >> > >>>>>>> On the topic of no filter matches. That's quite complex, as > you > >> > >>>>>>> > >> > >>>>>> would > >> > >>> > >> > >>>> need > >> > >>>>>> > >> > >>>>>>> to evaluate all the filters and possible conditions. Not sure > >> if it > >> > >>>>>>>> > >> > >>>>>>> can > >> > >>>>> > >> > >>>>>> even reliably done. Am I overlooking something? > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>> I am not saying that it should try to catch every possible > case, > >> > >>>>>>> > >> > >>>>>> but I > >> > >>> > >> > >>>> was > >> > >>>>>> > >> > >>>>>>> thinking that the configuration optimization step would > >> "optomize > >> > >>>>>>> > >> > >>>>>> away" > >> > >>>>> > >> > >>>>>> some impossible combinations, and that could result in an empty > >> > >>>>>>> > >> > >>>>>> ruleset. > >> > >>>>> > >> > >>>>>> > >> > >>>>>>> David Lang > >> > >>>>>>> > >> > >>>>>>> _______________________________________________ > >> > >>>>>>> rsyslog mailing list > >> > >>>>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog > >> > >>>>>>> http://www.rsyslog.com/professional-services/ > >> > >>>>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards > >> > >>>>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED > by > >> a > >> > >>>>>>> > >> > >>>>>> myriad > >> > >>>>> > >> > >>>>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST > >> if > >> > >>>>>>> > >> > >>>>>> you > >> > >>> > >> > >>>> DON'T LIKE THAT. > >> > >>>>>>> > >> > >>>>>>> _______________________________________________ > >> > >>>>>> rsyslog mailing list > >> > >>>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog > >> > >>>>>> http://www.rsyslog.com/professional-services/ > >> > >>>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards > >> > >>>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED > by a > >> > >>>>>> > >> > >>>>> myriad > >> > >>> > >> > >>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST > if > >> you > >> > >>>>>> DON'T LIKE THAT. > >> > >>>>>> > >> > >>>>>> _______________________________________________ > >> > >>>>> rsyslog mailing list > >> > >>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog > >> > >>>>> http://www.rsyslog.com/professional-services/ > >> > >>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards > >> > >>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by > a > >> > >>>>> myriad > >> > >>>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST > if > >> > you > >> > >>>>> DON'T LIKE THAT. > >> > >>>>> > >> > >>>>> > >> > >>>> > >> > >>>> _______________________________________________ > >> > >>> rsyslog mailing list > >> > >>> http://lists.adiscon.net/mailman/listinfo/rsyslog > >> > >>> http://www.rsyslog.com/professional-services/ > >> > >>> What's up with rsyslog? Follow https://twitter.com/rgerhards > >> > >>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > >> > myriad > >> > >>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if > >> you > >> > >>> DON'T LIKE THAT. > >> > >>> > >> > >>> _______________________________________________ > >> > >> rsyslog mailing list > >> > >> http://lists.adiscon.net/mailman/listinfo/rsyslog > >> > >> http://www.rsyslog.com/professional-services/ > >> > >> What's up with rsyslog? Follow https://twitter.com/rgerhards > >> > >> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > >> myriad > >> > >> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if > >> you > >> > >> DON'T LIKE THAT. > >> > >> > >> > >> _______________________________________________ > >> > > rsyslog mailing list > >> > > http://lists.adiscon.net/mailman/listinfo/rsyslog > >> > > http://www.rsyslog.com/professional-services/ > >> > > What's up with rsyslog? Follow https://twitter.com/rgerhards > >> > > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > >> myriad > >> > > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if > you > >> > > DON'T LIKE THAT. > >> > > > >> > _______________________________________________ > >> > rsyslog mailing list > >> > http://lists.adiscon.net/mailman/listinfo/rsyslog > >> > http://www.rsyslog.com/professional-services/ > >> > What's up with rsyslog? Follow https://twitter.com/rgerhards > >> > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > myriad > >> > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you > >> > DON'T LIKE THAT. > >> > > >> _______________________________________________ > >> rsyslog mailing list > >> http://lists.adiscon.net/mailman/listinfo/rsyslog > >> http://www.rsyslog.com/professional-services/ > >> What's up with rsyslog? Follow https://twitter.com/rgerhards > >> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad > >> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you > >> DON'T LIKE THAT. > >> > > > > > _______________________________________________ > rsyslog mailing list > http://lists.adiscon.net/mailman/listinfo/rsyslog > http://www.rsyslog.com/professional-services/ > What's up with rsyslog? Follow https://twitter.com/rgerhards > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you > DON'T LIKE THAT. > _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com/professional-services/ What's up with rsyslog? Follow https://twitter.com/rgerhards NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.

