Ubuntu日志存储优化方法
一 系统日志 journald 容量与保留策略
sudo journalctl --disk-usage。sudo nano /etc/systemd/journald.conf,设置如:
SystemMaxUse=1G(总上限)SystemMaxFileSize=100M(单个日志文件上限)MaxRetentionSec=7day(保留时长)sudo systemctl restart systemd-journald。sudo journalctl --vacuum-time=7d、sudo journalctl --vacuum-size=500M。二 应用与系统日志的轮转压缩与保留
sudo nano /etc/logrotate.d/rsyslog(或自定义应用配置)。/var/log/syslog {
size 100M
rotate 5
compress
missingok
notifempty
create 0640 root adm
}
daily/weekly/monthly 与 size 二选一或组合触发;rotate N 保留 N 个归档;compress 与 delaycompress 节省空间并避免影响正在写入的文件;missingok、notifempty、create 提升稳健性与安全性。sudo logrotate -d /etc/logrotate.conf;sudo logrotate -f /etc/logrotate.conf;sudo tail -f /var/log/logrotate.log。三 减少日志产生量
/etc/rsyslog.conf 或 /etc/rsyslog.d/50-default.conf,将类似*.info;mail.none;authpriv.none;cron.none 调整为*.warning;mail.none;authpriv.none;cron.none,减少低级别日志。sudo systemctl disable service_name(减少无用日志源)。/etc/logrotate.d/apache2 中配置 daily、rotate 7、compress、create 640 root adm 等。四 性能与架构层面的优化
imuxsock 缓冲),减少同步写盘带来的抖动。vm.dirty_ratio、vm.dirty_background_ratio)以优化脏页回写。五 快速检查与常用命令
sudo journalctl --disk-usage。sudo journalctl --vacuum-time=7d、sudo journalctl --vacuum-size=500M。tail -f /var/log/syslog、journalctl -u nginx -f、journalctl -n 100。sudo logrotate -d /etc/logrotate.conf、sudo logrotate -f /etc/logrotate.conf、sudo tail -f /var/log/logrotate.log。