在Debian系统中,syslog日志的保留期限可以通过修改rsyslog
或syslog-ng
的配置文件来实现。以下是针对这两种服务的设置方法:
编辑rsyslog配置文件:
打开/etc/rsyslog.conf
文件,或者如果你使用的是Debian 10或更高版本,可能需要编辑/etc/rsyslog.d/50-default.conf
文件。
sudo nano /etc/rsyslog.d/50-default.conf
设置日志保留策略: 在配置文件中找到或添加以下行来设置日志保留期限:
# 设置日志文件的最大大小(例如,10MB)
$SystemLogRateLimitInterval 60
$SystemLogRateLimitBurst 10
# 设置日志文件的保留期限(例如,30天)
$OmitLocalLogging on
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup adm
$SystemLogFacility local0
$SystemLogSeverity info
$SystemLogIdent rsyslogd
$SystemLogFacility local1
$SystemLogSeverity notice
$SystemLogFacility local2
$SystemLogSeverity warning
$SystemLogFacility local3
$SystemLogSeverity err
$SystemLogFacility local4
$SystemLogSeverity crit
$SystemLogFacility local5
$SystemLogSeverity alert
$SystemLogFacility local6
$SystemLogSeverity emerg
$SystemLogFacility local7
$SystemLogSeverity debug
$SystemLogRateLimitInterval 60
$SystemLogRateLimitBurst 10
$OmitLocalLogging on
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup adm
$SystemLogFacility local0
$SystemLogSeverity info
$SystemLogIdent rsyslogd
$SystemLogFacility local1
$SystemLogSeverity notice
$SystemLogFacility local2
$SystemLogSeverity warning
$SystemLogFacility local3
$SystemLogSeverity err
$SystemLogFacility local4
$SystemLogSeverity crit
$SystemLogFacility local5
$SystemLogSeverity alert
$SystemLogFacility local6
$SystemLogSeverity emerg
$SystemLogFacility local7
$SystemLogSeverity debug
注意:上述配置中的$OmitLocalLogging on
和$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
是为了启用日志轮转。你可以根据需要调整这些设置。
配置日志轮转:
编辑/etc/logrotate.d/rsyslog
文件来设置日志文件的轮转策略。
sudo nano /etc/logrotate.d/rsyslog
添加或修改以下内容:
/var/log/syslog {
rotate 30
daily
missingok
notifempty
compress
delaycompress
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}
这里的rotate 30
表示保留30天的日志文件。
重启rsyslog服务: 保存并关闭文件后,重启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(final);
};
配置日志轮转:
编辑/etc/logrotate.d/syslog-ng
文件来设置日志文件的轮转策略。
sudo nano /etc/logrotate.d/syslog-ng
添加或修改以下内容:
/var/log/syslog {
rotate 30
daily
missingok
notifempty
compress
delaycompress
postrotate
invoke-rc.d syslog-ng rotate > /dev/null
endscript
}
重启syslog-ng服务: 保存并关闭文件后,重启syslog-ng服务以应用更改。
sudo systemctl restart syslog-ng
通过以上步骤,你可以成功设置Debian系统中syslog日志的保留期限。