Ubuntu日志默认存储位置
Ubuntu系统及服务的日志默认集中存储在/var/log/目录下,常见日志文件及用途如下:
/var/log/syslog(记录系统启动、服务运行、内核消息等一般信息,是系统日志的核心文件);/var/log/auth.log(记录用户登录、注销、权限操作、认证失败等安全相关事件);/var/log/kern.log(记录内核启动、硬件检测、驱动加载等内核层信息);/var/log/apache2/、Nginx:/var/log/nginx/)、数据库(MySQL:/var/log/mysql/)、防火墙(UFW:/var/log/ufw.log)等服务会生成各自的日志目录或文件,存储服务运行细节。journalctl命令可查看由systemd-journald服务管理的结构化日志(包含系统、服务、启动过程的详细日志),无需直接访问/var/log/目录。修改日志存储位置的步骤(以rsyslog为例)
Ubuntu默认使用rsyslog服务管理日志,修改存储位置需通过编辑配置文件实现,以下是具体操作:
修改前务必备份原始配置文件,防止配置错误导致日志丢失:
sudo cp /etc/rsyslog.conf /etc/rsyslog.conf.bak
使用文本编辑器(如nano)打开/etc/rsyslog.conf文件:
sudo nano /etc/rsyslog.conf
在配置文件中找到需要修改的日志规则(如authpriv.* /var/log/auth.log),将目标路径更改为你想要的存储位置(如/mnt/logs/auth.log)。例如,将系统日志存储到/mnt/syslog目录:
*.info;mail.none;authpriv.none;cron.none /mnt/syslog/syslog.log
authpriv.* /mnt/syslog/auth.log
注意:路径需提前创建(sudo mkdir -p /mnt/syslog),并确保rsyslog服务对该目录有写入权限(sudo chown root:adm /mnt/syslog、sudo chmod 755 /mnt/syslog)。
为避免新日志文件过大,需通过logrotate工具设置轮转策略。编辑/etc/logrotate.d/rsyslog文件,添加针对新日志文件的规则:
/mnt/syslog/syslog.log {
weekly
rotate 4
compress
delaycompress
missingok
notifempty
create 0640 root adm
}
上述配置表示:每周轮转一次日志,保留最近4个压缩的旧日志文件(.gz格式),压缩前不删除空文件,轮转后创建新日志文件并设置权限。
修改完成后,重启rsyslog服务使配置生效:
sudo systemctl restart rsyslog
注意事项
root和adm组可写,避免敏感日志被非法修改;rsyslog.conf中添加*.* @remote_server_ip:514(UDP)或*.* @@remote_server_ip:514(TCP),并配置防火墙允许对应端口(sudo ufw allow 514/udp、sudo ufw allow 514/tcp);logger命令生成测试日志(如logger "This is a test log"),检查新路径是否正常接收日志。