/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 , 它指定了模板的功能,支持選項為sql
和stdsql
,在使用數據庫存儲的時候會用到。
生成動態文件名
模板可以用來生成動態文件名,就如之前所述,在使用動態文件名的時候,需要在 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
所有的屬性參考:
https://www.rsyslog.com/doc/master/configuration/properties.html
logrotate配置文件
logrotate的配置文件為/etc/logrotate.conf
自定義的log rotation配置文件在/etc/logrotate.d目錄下
比較全的總結:
https://www.jianshu.com/p/e129ed893362