rsyslog的属性替换功能

rsyslog的属性替换功能

基于位置

%property:fromChar:toChar:options%
  1. fromChar和toChar都是数字,表示字符的位置,从1开始。
  2. 结束符合可以用$替代,比如指定从第10个字符开始,一直到字符串尾:
%msg:10:$%

基于字段(Field)

%property:F,separater:index%
  1. separater 是分割字符的ascii码值,例如'#'就是35,','就是44
  2. index就是第几个字段

例如

%msg:F,59:3%

含义是对msg字段按照';'分割,然后取第三个字段。

这个地方有一个增强功能是如果分割符有多个连续字符,例如"AA BB CC",BB和CC之间有多个空格隔开,我们仍然想把它解释为三个字段,那么可以使用分割符号后面根一个加号'+':

%msg:F,32+:3%

基于规则表达式

语法是:

%property:R:regexp–end%
  1. 相当于在FromChar的位置使用一个R
  2. 在ToChar的位置使用规则表达式,并且正则表达式结尾必须跟一个–end
    然后属性替代器会返回:与正则表达式匹配的属性文本内容。

另外属性R可以指定一些参数:

R,,,,

我还没有试过这些参数,所以不好写用法,以后再补充吧。

  1. regexp-type: BRE|ERE,表示basic regexpr,和extend regexpr
  2. nomatch表示找不到匹配时使用的内容
  3. submatch/match-number这两个参数我没有看懂文档,所以就不写了。

你可能感兴趣的:(rsyslog的属性替换功能)