Hello!

I guess yes, you should be able to use the property replacer. Though it may
be less performant than liblognorm-based.

On Mon, 5 Oct 2020 at 10:52, Kype Ahamed <[email protected]> wrote:

> Hi Yuri
>
> Unfortunately mmfields module is not installed for our RedHat machines,
> and these are air gapped machines which cannot download the package.
>
> Would it be possible to use property replacer technique to parse out the
> field?
>
>
> Regards,
> Scorsese P.
>
> On Sun, Oct 4, 2020 at 11:12 PM Yuri Bushmelev <[email protected]> wrote:
>
>> Hello!
>>
>> From what I see you have 5 conditions. 4 of them doing full-scan of $msg
>> on every incoming message. What I'd suggest is to parse the message first
>> using a `mmnormalize`/`mmfields`/`mmpstructdata` module. Then you can refer
>> to fields extracted in your conditions instead to prevent full message scan.
>>
>> I can guess you may be using the iptables message format. So you may
>> check this liblognorm field type:
>> https://www.liblognorm.com/files/manual/configuration.html#iptables
>>
>>
>> On Sun, 4 Oct 2020 at 21:30, Kype Ahamed via rsyslog <
>> [email protected]> wrote:
>>
>>> Hello,
>>>
>>> I am using rsyslog mainly as a syslog relay, to forward messages from 1
>>> source device to multiple destination devices.
>>>
>>> Right now i am receiving about 50k messages per second, and i noticed CPU
>>> usage is constantly above 80%
>>>
>>> Are there any further tweaks that can be done to below config to reduce
>>> the
>>> CPU usage?
>>>
>>> -------------------------------------------------
>>> rsyslog config file:
>>>
>>> module(load="impstats"
>>> interval="20"
>>> severity="7"
>>> log.syslog="off"
>>> log.file="/var/log/impstats.log")
>>>
>>> global(parser.escapecontrolcharactertab="off")
>>>
>>> # Load Modules #
>>> module(load="imudp" TimeRequery="5" BatchSize="64")
>>>
>>> # rsyslog Templates #
>>> template(name="testMachineHeader" type="string"
>>> string="%TIMESTAMP:::date-rfc3164% testMachine
>>> %rawmsg:::drop-last-lf%\n")
>>> template(name="rawTemplate" type="string"
>>> string="%rawmsg:::drop-last-lf%\n")
>>>
>>> # rsyslog Input Modules #
>>> input(type="imudp"
>>> port="10514"
>>> ruleset="forwardToDestRule"
>>> device="eth0"
>>> )
>>>
>>>
>>>
>>> # rsyslog RuleSets #
>>> ruleset(name="forwardToDestRule"
>>>       queue.type="fixedArray"
>>>       queue.size="25000"
>>> ) {
>>> if ($msg contains "interface=inbound" and $msg contains
>>> "source=10.1.1.1")
>>> then {
>>>       action(type="omfwd"
>>>       Target="10.1.1.5"
>>>       Port="514"
>>>       Protocol="tcp"
>>>       Device="eth0"
>>>       queue.type="fixedArray"
>>>       queue.size="50000"
>>>       queue.dequeueBatchSize="1024"
>>>       template="testMachineHeader")
>>> }
>>> else{
>>>       action(type="omfwd"
>>>       Target="10.1.1.6"
>>>       Port="514"
>>>       Protocol="udp"
>>>       Device="eth0"
>>>       queue.type="fixedArray"
>>>       queue.size="50000"
>>>       action.resumeRetryCount="-1"
>>>       template="rawTemplate")
>>> }
>>>
>>> if ($msg contains "interface=outbound" and $msg contains
>>> "source=10.1.1.1")
>>> then {
>>>       if ($msg contains "proto=17") then {
>>>             action(type="omfwd"
>>>             Target="10.1.1.7"
>>>             Port="514"
>>>             Protocol="udp"
>>>             Device="eth0"
>>>             queue.type="linkedlist"
>>>             queue.size="50000"
>>>             action.resumeRetryCount="-1"
>>>             template="rawTemplate")
>>>             }
>>>       }
>>>
>>> }
>>>
>>> -------------------------------------------------
>>>
>>> Top -H output:
>>>
>>> top - 08:53:26 up  1:55,  1 user,  load average: 2.32, 1.50, 1.07
>>> Threads: 112 total,   7 running, 105 sleeping,   0 stopped,   0 zombie
>>> %Cpu(s): 23.4 us, 53.5 sy,  0.0 ni,  3.5 id,  0.4 wa,  0.0 hi, 19.1 si,
>>>  0.0 st
>>> KiB Mem :  7972668 total,  7475888 free,   250088 used,   246692
>>> buff/cache
>>> KiB Swap:  4063228 total,  4063228 free,        0 used.  7449764 avail
>>> Mem
>>>
>>>    PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+
>>> COMMAND
>>>   2567 root      20   0  639540  16836  12416 R 32.4  0.2   1:11.53
>>> rs:action 2 que
>>>   2566 root      20   0  639540  16836  12416 R 30.1  0.2   1:11.32
>>> rs:action 1 que
>>>   2551 root      20   0  639540  16836  12416 R 14.1  0.2   0:30.68
>>> in:imudp
>>>   2565 root      20   0  639540  16836  12416 R 11.1  0.2   0:31.94
>>> rs:forwardToDes
>>>    600 root      20   0  100676  38508  38184 S  6.2  0.5   0:33.62
>>> systemd-journal
>>>
>>> -------------------------------------------------
>>>
>>> impstats output:
>>>
>>> Sun Oct  4 08:46:49 2020: global: origin=dynstats
>>> Sun Oct  4 08:46:49 2020: imuxsock: origin=imuxsock submitted=0
>>> ratelimit.discarded=0 ratelimit.numratelimiters=0
>>> Sun Oct  4 08:46:49 2020: action 0: origin=core.action processed=0
>>> failed=0
>>> suspended=0 suspended.duration=0 resumed=0
>>> Sun Oct  4 08:46:49 2020: action 1: origin=core.action processed=1341545
>>> failed=0 suspended=0 suspended.duration=0 resumed=0
>>> Sun Oct  4 08:46:49 2020: action 2: origin=core.action processed=1341545
>>> failed=0 suspended=0 suspended.duration=0 resumed=0
>>> Sun Oct  4 08:46:49 2020: action 3: origin=core.action processed=4022
>>> failed=0 suspended=0 suspended.duration=0 resumed=0
>>> Sun Oct  4 08:46:49 2020: action 4: origin=core.action processed=1
>>> failed=0
>>> suspended=0 suspended.duration=0 resumed=0
>>> Sun Oct  4 08:46:49 2020: action 5: origin=core.action processed=0
>>> failed=0
>>> suspended=0 suspended.duration=0 resumed=0
>>> Sun Oct  4 08:46:49 2020: action 6: origin=core.action processed=0
>>> failed=0
>>> suspended=0 suspended.duration=0 resumed=0
>>> Sun Oct  4 08:46:49 2020: action 7: origin=core.action processed=0
>>> failed=0
>>> suspended=0 suspended.duration=0 resumed=0
>>> Sun Oct  4 08:46:49 2020: action 8: origin=core.action processed=0
>>> failed=0
>>> suspended=0 suspended.duration=0 resumed=0
>>> Sun Oct  4 08:46:49 2020: action 9: origin=core.action processed=0
>>> failed=0
>>> suspended=0 suspended.duration=0 resumed=0
>>> Sun Oct  4 08:46:49 2020: imudp(*:10514): origin=imudp submitted=1341849
>>> Sun Oct  4 08:46:49 2020: imudp(*:10514): origin=imudp submitted=0
>>> Sun Oct  4 08:46:49 2020: resource-usage: origin=impstats utime=9190927
>>> stime=25608171 maxrss=12244 minflt=166970 majflt=0 inblock=0 oublock=4368
>>> nvcsw=37503 nivcsw=339
>>> Sun Oct  4 08:46:49 2020: action 0 queue: origin=core.queue size=0
>>> enqueued=0 full=0 discarded.full=0 discarded.nf=0 maxqsize=0
>>> Sun Oct  4 08:46:49 2020: action 1 queue: origin=core.queue size=0
>>> enqueued=1341545 full=0 discarded.full=0 discarded.nf=0 maxqsize=5227
>>> Sun Oct  4 08:46:49 2020: action 2 queue: origin=core.queue size=252
>>> enqueued=1341545 full=0 discarded.full=0 discarded.nf=0 maxqsize=6051
>>> Sun Oct  4 08:46:49 2020: forwardToDestRule: origin=core.queue size=304
>>> enqueued=1341849 full=0 discarded.full=0 discarded.nf=0 maxqsize=1003
>>> Sun Oct  4 08:46:49 2020: main Q: origin=core.queue size=0 enqueued=4023
>>> full=0 discarded.full=0 discarded.nf=0 maxqsize=64
>>> Sun Oct  4 08:46:49 2020: imudp(w0): origin=imudp called.recvmmsg=40859
>>> called.recvmsg=0 msgs.received=1341849
>>>
>>> -------------------------------------------------
>>>
>>>
>>> Regards,
>>> Scorsese P.
>>> _______________________________________________
>>> 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.
>>>
>>
>>
>> --
>> Yury Bushmelev
>>
>

-- 
Yury Bushmelev
_______________________________________________
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