CentOS系统的核心日志文件均集中存储在/var/log/目录下,涵盖系统运行、安全认证、服务状态等多个类别。常见日志文件及用途如下:
/var/log/messages:记录系统通用信息(如内核消息、服务启动/停止等),是排查系统整体问题的基础日志;/var/log/secure:存储安全相关事件(如用户登录/注销、SSH认证、sudo使用记录等),是安全审计的关键依据;/var/log/boot.log:记录系统启动过程中的日志信息(如内核加载、服务初始化等);/var/log/cron:记录定时任务(cron)的执行情况(如任务启动、失败提示等);/var/log/maillog:记录邮件服务(如Postfix、Sendmail)的收发日志;/var/log/dmesg:记录内核环缓冲区信息(如硬件检测、驱动加载等),可通过dmesg命令查看;/var/log/httpd///var/log/nginx/:分别存储Apache、Nginx等Web服务的访问日志(access_log)和错误日志(error_log);/var/log/audit/audit.log:记录系统安全审计事件(如文件访问、权限变更等),由auditd服务生成。日志文件长期积累会占用大量磁盘空间,需定期清理。CentOS提供了以下几种常用方式:
journalctl命令(Systemd系统专用)CentOS 7及以上版本默认使用systemd作为初始化系统,其日志由journald服务管理,可通过journalctl命令清理:
journalctl --disk-usage(例如显示“Archived and active journals take up 1.2G in the file system”);journalctl --vacuum-time=2weeks;journalctl --vacuum-size=100M;journalctl --vacuum-by service ssh.service。若需彻底清理,可直接删除/var/log/目录下的日志文件(需root权限):
sudo rm /var/log/messages(谨慎操作,避免删除正在使用的日志);sudo rm -rf /var/log/*(执行前需确认无重要日志需保留)。logrotate工具(自动轮转与回收)logrotate是CentOS默认的日志轮转工具,可自动压缩、删除旧日志,避免手动操作。
/etc/logrotate.conf(定义默认轮转规则,如rotate 7表示保留7个旧日志);/etc/logrotate.d/目录下的文件(如/etc/logrotate.d/syslog管理messages、secure等日志的轮转);/var/log/myapp.log):/var/log/myapp.log {
daily # 每天轮转
rotate 7 # 保留7个旧日志
compress # 压缩旧日志(如myapp.log.1.gz)
delaycompress # 延迟压缩(下一次轮转时压缩上一次的旧日志)
missingok # 日志文件丢失时不报错
notifempty # 日志为空时不轮转
create 640 root adm # 创建新日志文件(权限640,属主root,属组adm)
}
sudo logrotate -f /etc/logrotate.conf(强制立即轮转,即使未达到条件)。sudo cp -r /var/log /var/log_backup),避免误删导致问题排查困难;logrotate配置后,可通过sudo logrotate -d /etc/logrotate.d/your_config测试配置是否正确(-d表示调试模式,不实际执行);trash-cli),需参考其文档查看回收日志的存储位置(通常不在系统日志目录中)。