1、property accessory
Rsyslog 预定义了一些属性,系统属性和消息属性,用于定义输出格式、动态文件名。比较重要的属性比如:msg(消息体)、hostname、pri(消息等级和类别)、time(时间有关),以$开头的是从本地系统获得的变量(即前面加上$的要做本地变量字符串替换)、不带$是从消息中获得变量(不带的表示消息中的固有字段)。

%propname(属性名):fromChar(起始字符):toChar(终止字符):options(选项):fieldname(域名)%
举例:
%msg:2:$%    #选取msg变量中,起始位置为2,终止位置为结尾     (对应于上面的属性替代的语法个数就是相当于%属性名:起始字符:终止字符%)
%msg:F,32:3%  #按照空格分隔,取第三个子串,    (对应于上面的属性替代的语法个数就是相当于%属性名:选项:域名%)
%msg:R,ERE,1,FIELD,0:.*port=([0-9]+).*:--end%  #正则匹配
action(type="mmnormalize" rule=["rule=:%host:word% %tag:char-to:\\x3a%: no longer listening on %ip:ipv4%#%port:number%", "rule=:%host:word% %ip:ipv4% user was logged out"])

2、template
模板的功能是定义输出格式,或者定义omfile模块的动态路径、动态文件。需要使用上面提到的属性替换(属性替代可以实现属性中部分信息的提取)。模板定义的形式有四种,适用于不同的输出模块,一般简单的格式,可以使用string的形式,复杂的格式,建议使用list的形式,使用list的形式,可以使用一些额外的属性字段(property statement),例如:position.from、position.end。
举例:

3、libliblognorm

rule=:%{"type":"date-rfc3164", "name":"date"}
        % %
         {"type":"char-to", "name":"host", "extradata":":"}
        % no longer listening on %
            {"type":"ipv4", "name":"ip"}
        %#%
            {"type":"number", "name":"port"}

注意:
a.避免使用“literal”解析器
b.建议使用JSON格式,适合嵌套格式及其他复杂格式
c.如果字段不需要,建议不要使用格式,"name":"-"
d.使用"type":"..." 开头,可以便于预览