rsyslog property replacer之Regular expression

 

rsyslog config中我们可以使用property replacer.一般格式如下。

%propname:fromChar:toChar:options%

在property replacer我们一般直接使用分隔符分割msg,抽取各个FIELD。

"%msg:F,44:3%"

F:抽取FIELD

44:分隔符的ASCII码 (例:逗号:44,双引号:34)

3:使用的FIELD的NUMBER。

如果上述无法满足要求我们可以使用正则表达式进行匹配和抽取想要的FIELD。

"%msg:R:.*Sev:. \(.*\) \[.*--end%"

带参数正则表达式:

可以在R后面加入参数,来抽取匹配到的FIELD。

R,<regexp-type>,<submatch>,<nomatch>,<match-number>

regexp-type: BRE or ERE

submatch: 匹配的result的子FIELD,0,1代表匹配到的整个字符串,2~9代表后面各个子串。

nomatch:代表匹配失败的时候,填充的默认值。"DFLT":NO MARCH, "BLANK":"" or "FIELD":整个msg

match-number:代表匹配结果有多个情况下,使用哪一个结果。0,1,。。。

%msg:R,ERE,1,FIELD:for (vlan[0-9]*):--end%

%msg:R,ERE,1,FIELD,1:for (vlan[0-9]*):--end%

实例解析一下

LOG:

2022.12.07T20:04:58.000640+00:00, INFORMATION, UPLOAD, 3001,"Test succeeded for URL  http://192.168.1.167"

对于上面的log,如果我们想抽取""中间的内容,可以使用如下表达式。

%msg:R,ERE,5,FIELD:(([a-zA-Z]*),\\s?([a-zA-Z]*),\\s?([0-9]*),\\s?(\".*))--end%

具体解析如下,

 

Property Replacer 详细可参考以下Blog。

【RSYSLOG】The Property Replacer【转】 - 曾逸群 - 博客园 (cnblogs.com)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值