Debian系统中的日志轮转机制通常由rsyslog或syslog-ng服务管理。本文将分别介绍如何配置这两种服务以实现日志轮转。
一、使用rsyslog配置日志轮转
安装rsyslog (如果未安装):
sudo apt update sudo apt install rsyslog
配置rsyslog:
/etc/rsyslog.conf
文件,或创建一个新的配置文件并将其包含在/etc/rsyslog.d/
目录下。 $ModLoad imuxsock # 本地系统日志支持
$ModLoad imklog # 内核日志支持
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
配置日志轮转策略:
/etc/logrotate.d/rsyslog
文件,或在/etc/logrotate.d/
目录下创建新的配置文件。 /var/log/syslog {
rotate 7 # 保留7个日志文件
daily # 每天轮转
missingok # 日志文件丢失时不报错
notifempty # 日志文件为空时不轮转
compress # 压缩旧日志
delaycompress # 延迟压缩,直到下次轮转
postrotate
/usr/lib/rsyslog/rsyslog-rotate # 轮转后执行的命令,重新加载rsyslog
endscript
}
测试配置:
sudo logrotate -d /etc/logrotate.d/rsyslog # -d 参数为测试模式,不实际执行轮转
二、使用syslog-ng配置日志轮转
安装syslog-ng (如果未安装):
sudo apt update sudo apt install syslog-ng
配置syslog-ng:
编辑/etc/syslog-ng/syslog-ng.conf
文件。
确保配置文件包含必要的日志接收和输出配置,例如:
source s_network {
udp(ip(0.0.0.0) port(514));
tcp(ip(0.0.0.0) port(514));
};
destination d_syslog {
file("/var/log/syslog" template("${ISODATE} ${HOST} ${LEVEL} ${MESSAGE}n"));
};
log {
source(s_network);
destination(d_syslog);
};
配置日志轮转策略:
/etc/logrotate.d/syslog-ng
文件,或在/etc/logrotate.d/
目录下创建新的配置文件。 /var/log/syslog {
rotate 7
daily
missingok
notifempty
compress
delaycompress
postrotate
/usr/sbin/syslog-ng -F -f /etc/syslog-ng/syslog-ng.conf # 轮转后重新加载syslog-ng
endscript
}
测试配置:
sudo logrotate -d /etc/logrotate.d/syslog-ng # -d 参数为测试模式
通过以上步骤,您可以根据系统实际情况选择rsyslog或syslog-ng,并配置其日志轮转策略。 记得将-d
参数移除以进行实际的日志轮转。 建议在修改配置文件后,重启相应的日志服务以使配置生效。