Ubuntu日志存储策略主要包括以下几类:
Ubuntu系统通过rsyslog(传统日志处理工具)和journald(systemd日志守护进程)实现日志收集。
/etc/rsyslog.conf及/etc/rsyslog.d/*.conf,支持将系统日志、应用程序日志分类存储(如/var/log/syslog包含整体系统信息,/var/log/auth.log记录认证日志),可将日志集中发送到远程服务器(通过配置*.* @remote_server_ip:514实现)。/run/log/journal/,重启后丢失),可通过修改/etc/systemd/journald.conf配置文件开启持久存储(设置Storage=persistent),并使用journalctl命令管理日志(如journalctl --vacuum-time=7d删除7天前日志)。使用logrotate工具自动管理日志文件大小和数量,防止磁盘空间耗尽。
/etc/logrotate.conf,可设置默认轮转周期(如daily/weekly)、保留数量(如rotate 7)、压缩方式(如compress)等。/etc/logrotate.d/目录下创建应用专属配置文件(如apache2、mysql),例如Apache日志轮转配置:/var/log/apache2/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}
该配置表示Apache日志每日轮转,保留7个压缩文件,若日志为空则不轮转,创建新日志时权限为640、属主为root、属组为adm。/var/log/目录下,常见文件包括:
/var/log/syslog:系统综合日志;/var/log/auth.log:用户认证日志;/var/log/kern.log:内核日志;/var/log/dmesg:内核环缓冲日志(启动信息)。/etc/rsyslog.d/*.conf)将特定日志存储到其他目录(如/mnt/logs/myapp.log),需确保目标目录有正确的写入权限。journalctl命令清理journald日志,例如:
journalctl --vacuum-time=7d;journalctl --vacuum-size=500M。rotate参数控制保留数量(如rotate 7保留7个文件),旧日志会被自动压缩(compress)或删除(missingok允许文件丢失时不报错)。cron任务定期备份/var/log/目录,例如每天凌晨2点备份到/backup/logs/:0 2 * * * tar czvf /backup/logs/$(date +\%Y-\%m-\%d).tar.gz /var/log/
*.* @192.168.1.100:514),或使用集中式日志管理工具(如ELK Stack、Graylog)实现远程存储和分析。chmod和chown设置日志文件权限,例如/var/log/syslog的权限通常为640(属主root、属组adm),防止未授权用户修改或删除日志。/var/log/auth.log)使用gpg等工具加密,避免日志中的敏感信息(如用户密码)泄露。