rsyslog的配置文件使用方法


參考地址:

http://www.rsyslog.com/doc/v8-stable/configuration/property_replacer.html

rsyslog消息模板的定義規則

"%msg:1:2%" :
==》讀取從pos從1到2的數據
"%msg:::lowercase%" :
==》將整個消息轉換為小寫
"%msg:10:$%" :
==》截取pos從10到最后的消息內容
"%msg:R:.*Sev:. \(.*\) \[.*–end%" :
==》取"*Sev:."和[.*之間內的所有內容

R,<regexp-type>,<submatch>,<nomatch>,<match-number>
regexp-type :
==》"BRE" (基本的正則表達式)或"ERE" (擴展的正則表達式)
0-9是標識submatch的,0標識所有內容,1-9標識相應序號的內容。(和shell類似,其實就是正則表達式中括號的用法)
==》如果相同的實例被匹配到,那么第一個匹配的是0,之后的匹配依次排列
nomatch
==》標識沒有匹配到的時候寫什么
實例:
%msg:R,ERE,1,FIELD:for (vlan[0-9]\*):--end%
%msg:R,ERE,1,FIELD,1:for (vlan[0-9]\*):--end%
"F,44" :
==》設置分隔符(用ACSII表示),針對分隔符,在引用時,0代表沒找到,匹配的實例從1開始數
%msg:F,59:3% :
==》以分號為分隔符,提取第三個區域的內容
"%msg:F,59,5:3,9%" :
==》以分號為分隔符,從第5個子串中,提取3-6位的字符
"%msg:F,32+:2%" :
==》如果多個分隔符(比如:日志中有n個空格作為分割,那么可以添加一個+)

 

配置過程中的重要步驟:

module(load="imfile" PollingInterval="10") #needs to be done just once

# File 1
input(type="imfile"
      File="/path/to/file1"
      Tag="tag1"
      StateFile="statefile1"
      Severity="error"
      Facility="local7")
     
action(type="omfwd" Target="192.168.0.1" Port="514" Protocol="tcp" )

只需要配置輸入的模塊和輸出的action即可;

配置的重點就在於過濾器和輸出的格式:

當要截取輸入日志內容的話,就需要用到過濾器,用到上面的正則表達式,例如:

$template BiglogFormatTest,"%timestamp% %fromhost-ip% %msg:32:$%\n"
if $programname == 'test-run' then @@192.168.15.161:514;BiglogFormatTest

當用到數據庫並且默認的格式不符合我們的要求的話,我們就需要另外定義:

$template tpl,”insert into SystemEvents (Message, Facility, FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values (‘%msg%’, %syslogfacility%, ‘%HOSTNAME%’, %syslogpriority%, ‘%timereported:::date-mysql%’, ‘%timegenerated:::date-mysql%’, %iut%, ‘%syslogtag%’)”,SQL
*.* :ommysql:localhost,Syslog,rsyslog,123456;tpl

准備找一個可以收集日志並分析的軟件,最后選定了rsyslog+LogAnalyzer;根據網上的配置說明,最后的結果類似於,先用rsyslog將日志寫入mysql,然后loganalyzer搜索mysql得到結果;
analyzer的設置就是配置一個數據庫,沒有可操作的余地;
rsyslog分為輸入、預處理、解析過濾、輸出等幾個部分,輸入輸出只能指定來源和去向,針對數據的操作只能在filter中尋求方法。
其實就是定義一個正則表達式,將過濾后的內容,根據配置的原則放到指定的輸出端。傳統的配置文件不能定義變量,意味着rsyslog只能用於截取日志和選擇出口。
當然為了適應花樣百出的需求,新版的rsyslog都支持它自己定義的RainerScript,可能會更加靈活。

 

 

相關的推薦(日志的運維與優化):http://network.51cto.com/art/201610/520295.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM