在Ubuntu系统中,syslog日志轮转策略通常由rsyslog
或syslog-ng
服务管理。以下是针对这两种服务的日志轮转策略设置方法:
编辑rsyslog配置文件:
打开/etc/rsyslog.conf
文件进行编辑。
sudo nano /etc/rsyslog.conf
配置日志轮转: 在文件中找到或添加以下行来指定日志文件的轮转策略:
# 每天轮转一次日志,并保留7天的日志
$SystemLogRateLimitInterval 24h
$SystemLogRateLimitBurst 500
$OmitLocalLogging on
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.* /var/log/syslog
其中,$SystemLogRateLimitInterval
和$SystemLogRateLimitBurst
用于控制日志写入速率,防止日志文件过大。
配置日志文件的轮转规则:
在/etc/logrotate.d/rsyslog
文件中添加或修改以下内容:
/var/log/syslog {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 root adm
}
解释:
daily
:每天轮转一次日志。rotate 7
:保留7天的日志。compress
:压缩旧日志文件。delaycompress
:延迟压缩,直到下一次轮转。missingok
:如果日志文件丢失,不会报错。notifempty
:如果日志文件为空,不进行轮转。create 640 root adm
:创建新日志文件时的权限和所有者。重启rsyslog服务: 使配置生效。
sudo systemctl restart rsyslog
编辑syslog-ng配置文件:
打开/etc/syslog-ng/syslog-ng.conf
文件进行编辑。
sudo nano /etc/syslog-ng/syslog-ng.conf
配置日志轮转: 在文件中找到或添加以下行来指定日志文件的轮转策略:
destination d_syslog {
file("/var/log/syslog" template("${ISODATE} ${HOST} ${LEVEL} ${MESSAGE}\n"));
};
log {
source(s_src);
destination(d_syslog);
flags(no-parse);
};
配置日志文件的轮转规则:
在/etc/logrotate.d/syslog-ng
文件中添加或修改以下内容:
/var/log/syslog {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 root adm
}
解释与rsyslog相同。
重启syslog-ng服务: 使配置生效。
sudo systemctl restart syslog-ng
通过以上步骤,你可以根据需要调整Ubuntu系统中syslog日志的轮转策略。