rsyslog日誌

一、property accessory
Rsyslog 預約義了一些屬性,系統屬性和消息屬性,用於定義輸出格式、動態文件名。比較重要的屬性好比:msg(消息體)、hostname、pri(消息等級和類別)、time(時間有關),以$開頭的是從本地系統得到的變量(即前面加上$的要作本地變量字符串替換)、不帶$是從消息中得到變量(不帶的表示消息中的固有字段)。ide

%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"])

二、template
模板的功能是定義輸出格式,或者定義omfile模塊的動態路徑、動態文件。須要使用上面提到的屬性替換(屬性替代能夠實現屬性中部分信息的提取)。模板定義的形式有四種,適用於不一樣的輸出模塊,通常簡單的格式,能夠使用string的形式,複雜的格式,建議使用list的形式,使用list的形式,能夠使用一些額外的屬性字段(property statement),例如:position.from、position.end。
舉例:code

三、libliblognormorm

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":"..." 開頭,能夠便於預覽
相關文章
相關標籤/搜索