Yes, we get a lot of flexibility with omprog.

However, changing a syslog's facility/priority isn't possible right?
Please see below.

if ($syslogfacility-text == 'daemon' and $msg contains "Out of memory") then {
      action(type="omfile"
                 action.execOnlyOnceEveryInterval="3600"
                 template="RSYSLOG_FileFormat")

      # Change the facility and message severity forever here for the
next action(s). for example to user.alert
}

# Forward all 'user'.crit and severe to syslog collector.
user.crit action(type="omfwd" target="10.11.12.13" protocol="udp"
port="514" template="MsgForwardFormat")

On Mon, Apr 8, 2024 at 6:37 PM David Lang <da...@lang.hm> wrote:
>
> not easily within rsyslog, with an event correlation engine, you have a lot 
> more
> capability (which is why I keep pushing you that way :-) )
>
> you can create a template to use when outputting a log, and that log can say
> anything (it can be arbitrary text unrelated to the log you received), but 
> that
> gets really ugly really quickly
>
> you would combine it essentially with a if/else type arrangement to only be 
> done
> if the prior action didn't take place. I don't know if the onceeveryinterval
> will work with that.
>
> David Lang
>
>
> On Mon, 8 Apr 2024, Prasad Koya wrote:
>
> > Thank you. "action.execOnlyOnceEveryInterval" is very useful.
> >
> > We intend to keep all unfiltered syslogs in a local file, say file1,
> > but log a rate limited message to file2 and forward that message to a
> > syslog collector.
> >
> > Is it possible to change the facility, severity or message for the next 
> > actions?
> >
> > Thanks again.
> >
> > On Sun, Apr 7, 2024 at 11:42 PM David Lang <da...@lang.hm> wrote:
> >>
> >> you would need to do the filtering with omprog on the sending machines.
> >>
> >> I would suggest that rather than throwing them away, you generate a log 
> >> every
> >> rate-limiting period along the lines of "X number of messages happened in 
> >> the
> >> last period"
> >>
> >> This is really a job for an event correlation engine, since rsyslog is
> >> multi-threaded for performance, it can't count on anything internal seeing 
> >> every
> >> message, which is why filtering for the messages and sending them to an 
> >> external
> >> app (single threaded or a very complex multi-threaded thing that correlates
> >> across it's threads) is the right thing to do.
> >>
> >> David Lang
> >>
> >> On Sun, 7 Apr 2024, Prasad Koya via rsyslog wrote:
> >>
> >>> Thanks for the replies.
> >>>
> >>> My requirement is that I have a daemon that may generate a burst of
> >>> syslogs, say, every minute (when a certain subsystem is overloaded).
> >>> We do not want to write all these syslogs to /var/log/messages. We
> >>> also do not want to forward so many of those syslogs to a remote
> >>> syslog server. We wanted to rate limit them, maybe 1 per hour or so.
> >>> For now, I have tried 'omprog' module and sending such syslogs to an
> >>> external program.
> >>>
> >>>
> >>> module( load="omprog" )
> >>>
> >>> if ($syslogfacility-text == 'daemon' and $msg contains "Out of memory") 
> >>> then {
> >>>      action(type="omprog"
> >>>                 binary="/usr/bin/rate_limit_daemon_syslogs.sh"
> >>>                 template="RSYSLOG_FileFormat")
> >>>      stop
> >>> }
> >>>
> >>> /usr/bin/rate_limit_daemon_syslogs.sh maintains state on when was the
> >>> last syslog forwarded or written locally. If this script decides its
> >>> ok to syslog, then it will call 'logger' with differently worded
> >>> message and different facility.
> >>>
> >>> In our case we'd like to limit these logs at the source and not at an
> >>> intermediate syslog collector. I took a quick look at the sampling
> >>> docs and that may not apply to our scenario.
> >>>
> >>> Thanks.
> >>>
> >>> On Wed, Apr 3, 2024 at 12:07 AM Mariusz Kruk via rsyslog
> >>> <rsyslog@lists.adiscon.com> wrote:
> >>>>
> >>>> A piece of feedback against
> >>>> https://www.rsyslog.com/doc/tutorials/random_sampling.html
> >>>>
> >>>> I know it's obvious for some people but for some it might not be - it
> >>>> will collect _about_ 20% of logs provided the overall number of events
> >>>> is big enough. Since it's a random-based mechanism, it's... random.
> >>>>
> >>>> Additionally, I had a similar thing implemented for load-balancing to
> >>>> different "backends" and for some reason it didn't work uniformly (I
> >>>> think I already wrote about this) - one of four backends was never
> >>>> chosen. The thing is I was choosing not based directly on random(4) but
> >>>> on (random(some_bigger_integer) % 4) which I thought would yield more
> >>>> uniform randomness. It appears I was wrong.
> >>>>
> >>>> MK
> >>>>
> >>>>
> >>>> On 3.04.2024 08:51, Rainer Gerhards via rsyslog wrote:
> >>>>> This sounds a bit like you are looking for this:
> >>>>>
> >>>>> https://www.rsyslog.com/doc/tutorials/log_sampling.html
> >>>>>
> >>>>> HTH
> >>>>> Rainer
> >>>>>
> >>>>> El mié, 3 abr 2024 a las 3:25, Prasad Koya via rsyslog
> >>>>> (<rsyslog@lists.adiscon.com>) escribió:
> >>>>>> Hi
> >>>>>>
> >>>>>>
> >>>>>> module( load="imuxsock" )
> >>>>>> module( load="imklog" )
> >>>>>>
> >>>>>> if ($syslogfacility-text == 'kern' and $msg contains "Out of memory") 
> >>>>>> then {
> >>>>>>        action(type="omfile" queue.size="1000" queue.type="LinkedList"
> >>>>>> queue.dequeueSlowDown="3600000000" file="/var/log/oom")
> >>>>>> }
> >>>>>>
> >>>>>>
> >>>>>> If we have a flurry of, for example, "Out of memory" messages from the
> >>>>>> facility 'kern', we'd like to keep only, say, one per hour in a
> >>>>>> separate file.
> >>>>>>
> >>>>>> https://rsyslog.readthedocs.io/en/latest/rainerscript/queue_parameters.html
> >>>>>> says do not set low value for queue.size.
> >>>>>>
> >>>>>> Above page also says queue.dequeueslowdown can be used as
> >>>>>> rate-limiting. Maybe that doesn't apply for "omfile" as I don't see
> >>>>>> above rsyslog.conf working. high and low watermarks are not applicable
> >>>>>> here as it's not a disk based queue. Appreciate any pointers.
> >>>>>>
> >>>>>> Thank you.
> >>>>>> _______________________________________________
> >>>>>> rsyslog mailing list
> >>>>>> https://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
> >>>>> https://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
> >>>> https://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
> >>> https://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
https://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.

Reply via email to