在Ubuntu系統中,syslog日志輪轉策略通常是通過rsyslog
或syslog-ng
服務來管理的。以下是針對這兩種服務的日志輪轉策略的制定方法:
編輯rsyslog配置文件:
打開/etc/rsyslog.conf
文件,或者更常見的做法是編輯/etc/rsyslog.d/
目錄下的特定配置文件。
sudo nano /etc/rsyslog.conf
設置日志輪轉:
在配置文件中,你可以使用$SystemLogRateLimitInterval
和$SystemLogRateLimitBurst
指令來控制日志記錄速率,以及使用$ActionFileDefaultTemplate
來指定日志文件的命名模板。
例如,以下配置將日志文件按日期輪轉,并保留最近30天的日志:
$template RotatingFiles,"/var/log/%$YEAR%-%$MONTH%-%$DAY%.log"
*.* ?RotatingFiles
& stop
這里,$template
定義了一個模板,用于生成按日期命名的日志文件。*.* ?RotatingFiles
表示所有日志都應用這個模板,并且& stop
確保日志不會被進一步處理(例如發送到其他日志服務器)。
配置日志輪轉大小和時間:
你還可以使用logrotate
工具來進一步控制日志輪轉的大小和時間。創建或編輯/etc/logrotate.d/rsyslog
文件:
sudo nano /etc/logrotate.d/rsyslog
添加以下內容:
/var/log/*.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 640 root adm
}
這個配置將每天輪轉日志文件,保留最近30天的日志,并對舊日志進行壓縮。
重啟rsyslog服務: 應用更改后,重啟rsyslog服務:
sudo systemctl restart rsyslog
編輯syslog-ng配置文件:
打開/etc/syslog-ng/syslog-ng.conf
文件,或者編輯/etc/syslog-ng/conf.d/
目錄下的特定配置文件。
sudo nano /etc/syslog-ng/syslog-ng.conf
設置日志輪轉:
在配置文件中,你可以使用destination
和log
指令來定義日志文件的存儲位置和命名規則。
例如,以下配置將日志文件按日期輪轉,并保留最近30天的日志:
destination d_local {
file("/var/log/messages.$YEAR-$MONTH-$DAY.log" template("${ISODATE} ${HOST} ${LEVEL} ${MESSAGE}\n"));
};
log {
source(s_src);
destination(d_local);
};
這里,template
定義了一個模板,用于生成按日期命名的日志文件。
配置日志輪轉大小和時間:
同樣,你可以使用logrotate
工具來進一步控制日志輪轉的大小和時間。創建或編輯/etc/logrotate.d/syslog-ng
文件:
sudo nano /etc/logrotate.d/syslog-ng
添加以下內容:
/var/log/*.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 640 root adm
}
重啟syslog-ng服務: 應用更改后,重啟syslog-ng服務:
sudo systemctl restart syslog-ng
通過以上步驟,你可以為Ubuntu系統中的syslog日志制定合適的輪轉策略。