CentOS Minimal系统日志管理指南
CentOS Minimal系统的日志管理依赖三个核心工具:
/var/log/messages
),支持日志转发至远程服务器。journalctl是查看systemd管理日志的便捷工具,常用命令如下:
journalctl
(需root权限)。journalctl -n 100
。journalctl -f
(类似tail -f)。journalctl -u sshd
。journalctl -b
;查看上一次启动的日志:journalctl -b -1
。journalctl --since "today"
;按关键词搜索(如“error”):journalctl | grep 'error'
。CentOS Minimal的日志仍存储在/var/log
目录下,常见文件及用途:
/var/log/messages
:系统一般信息日志(如内核消息、服务启动信息)。/var/log/secure
:安全相关日志(如SSH登录尝试、权限变更)。/var/log/boot.log
:系统启动过程日志。/var/log/dmesg
:内核环缓冲区日志(硬件检测、驱动加载信息)。常用查看命令:
cat /var/log/messages
(全量查看)、less /var/log/messages
(分页查看)。tail -f /var/log/messages
(适合故障排查)。grep "error" /var/log/messages
(筛选特定错误信息)。日志轮转可自动管理日志文件大小,避免磁盘空间耗尽。CentOS Minimal默认已安装logrotate,配置步骤如下:
/etc/logrotate.conf
(定义全局规则,如默认轮转周期、压缩方式)。/etc/logrotate.d/
目录下创建新文件(如myapp
),针对特定日志文件配置轮转规则。/var/log/myapp.log
为例)/var/log/myapp.log {
daily # 每天轮转一次
rotate 7 # 保留7个旧日志文件
compress # 压缩旧日志(如myapp.log.1.gz)
delaycompress # 延迟压缩(下一次轮转时才压缩myapp.log.1)
missingok # 日志文件丢失时不报错
notifempty # 日志为空时不轮转
create 640 root adm # 创建新日志文件,权限640,属主root,属组adm
}
sudo logrotate -f /etc/logrotate.d/myapp
(强制轮转,即使未达到条件)。tail -f /var/log/messages
(监控logrotate的操作记录)。logrotate默认通过/etc/cron.daily/logrotate
每天自动运行,无需额外配置。
若需将日志发送至远程服务器(如日志服务器),可编辑/etc/rsyslog.conf
,取消以下行注释并修改目标服务器IP:
*.* @192.168.1.100:514 # UDP转发(514端口)
*.* @@192.168.1.100:514 # TCP转发(更可靠)
重启rsyslog服务使配置生效:sudo systemctl restart rsyslog
。
sudo yum install logwatch
,启动服务:sudo systemctl enable --now logwatch
。若需监控系统调用、文件访问等安全事件,可安装auditd:
sudo yum install audit
。sudo systemctl enable --now auditd
。ausearch -m avc
(查看SELinux审计日志)、aureport -i
(生成审计报告)。