rsyslog和過濾規則


  • /etc/rsyslog.conf 是rsyslog服務的總配置文件

 

  • /etc/rsyslog.d 該目錄是單獨配置的rsyslog配置文件
vim /etc/rsyslog.conf

$IncludeConfig /etc/rsyslog.d/*.conf

# 個人建議,將所有的rule都配置在該目錄下,在/etc/rsyslog.conf中不寫rule

 

配置文件/etc/rsyslog.conf主要有3個部分

MODULES :模塊
GLOBAL DRICTIVES :全局設置
RULES:規則

 

 

RULES:規則

過濾

$msg

if $msg contains '%ASA-' and $syslogseverity <= '6' then {
	-/var/log/cisco-asa.log
	stop
}

 

 

模板

任何rsyslog生成的日志都可以根據需要使用模板進行格式化,要創建模板,使用如下指令

$template TEMPLATE_NAME,"text %PROPERTY% more text", [OPTION]

這里的$template指令表明了接下來的內容定義了一個模板,TEMPLATE_NAME是模板的名稱,接下來雙引號之間的內容為模板的內容。

這里還有一個 OPTION , 它指定了模板的功能,支持選項為 sqlstdsql,在使用數據庫存儲的時候會用到。

生成動態文件名

模板可以用來生成動態文件名,就如之前所述,在使用動態文件名的時候,需要在 ACTION 中的模板名稱前增加?表明該文件名是動態生成的。

例如:

 

$template DynamicFile,"/var/log/test_logs/%timegenerated%-test.log"
*.* ?DynamicFile
timegenerated屬性從日志信息中提取出消息的時間戳,這樣可以為每個日志生成唯一文件名稱。

 

以下是一些簡單屬性的示例:

以下屬性獲取系統日志消息的整個消息文本:
%msg% 

以下屬性獲取系統日志消息的消息文本的前兩個字符:
%msg:1:2%

以下屬性獲取系統日志消息的整個消息文本,並刪除其最后一個換行符:
%msg ::: drop-last-lf%

以下屬性獲取接收到syslog消息時生成的時間戳的前10個字符,並根據RFC 3999日期標准對其進行格式化。
%timegenic:1:10:date-rfc3339%

 

 

#  %syslogpriority-text% : syslog priority
#  %syslogfacilityt-text% : syslog facility
#  %timegenerated% : timestamp when the message was received
#  %HOSTNAME% : hostname
#  %syslogtag% : tag
#  %msg% : the message sent to syslog

 

 

所有的屬性參考:

 

logrotate配置文件

logrotate的配置文件為/etc/logrotate.conf

自定義的log rotation配置文件在/etc/logrotate.d目錄下

 

比較全的總結:

 


免責聲明!

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



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