Ubuntu日志存储优化实操指南
一 关键目标与总体思路
二 优化 Systemd Journal 存储
sudo journalctl --disk-usage。SystemMaxUse=1G、SystemMaxFileSize=100M、MaxRetentionSec=7day(如不存在则新增对应行)。sudo systemctl restart systemd-journald。sudo journalctl --vacuum-size=500M、sudo journalctl --vacuum-time=7d。以上做法可有效限制journald日志体积并快速回收空间。三 优化 rsyslog 与 logrotate 轮转
*.info;mail.none;authpriv.none;cron.none 调整为 *.warning;mail.none;authpriv.none;cron.none,减少低级别日志量。/var/log/syslog
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/syslog.1
/var/log/messages {
daily
size 100M
rotate 7
compress
missingok
notifempty
create 0640 root adm
postrotate
/usr/lib/rsyslog/rsyslogd reload > /dev/null 2>&1 || true
endscript
}
sudo logrotate -d /etc/logrotate.d/rsyslogsudo logrotate -f /etc/logrotate.d/rsysloglogrotate通常由**/etc/cron.daily/logrotate**每日调用,无需额外常驻服务。四 应用与服务日志的精细化策略
/var/log/myapp/*.log {
daily
rotate 14
size 50M
compress
delaycompress
missingok
notifempty
create 640 myapp adm
postrotate
systemctl reload myapp.service >/dev/null 2>&1 || true
endscript
}
/var/log/apache2/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
postrotate
systemctl reload apache2 >/dev/null 2>&1 || true
endscript
}
delaycompress避免压缩正在写入的文件;postrotate触发服务重新打开日志文件,确保日志不中断。五 性能与集中化进阶建议
$ImuxsockBufferSocket等模块参数),减少磁盘I/O抖动。