一、CentOS系统消息查看方法
使用journalctl命令(systemd系统专用)
journalctl是CentOS 7及以上版本管理systemd日志的核心工具,支持按时间、服务、优先级等筛选日志。常用命令:
journalctl -xe:显示最近的日志条目并实时跟踪新日志;journalctl -u 服务名(如journalctl -u sshd):查看指定服务的日志;journalctl --since "2025-10-01 00:00:00":查看指定时间之后的日志;journalctl -b:显示当前系统启动的日志。查看传统日志文件
CentOS系统将通用系统消息记录在/var/log/messages中,安全相关事件记录在/var/log/secure,邮件服务日志在/var/log/maillog,Web服务日志(如Apache)在/var/log/httpd/目录下。可使用以下命令查看:
less /var/log/messages:分页查看日志文件;tail -f /var/log/messages:实时监控日志新增内容;grep "ERROR" /var/log/messages:搜索特定关键词(如“ERROR”)的日志条目。查看内核环形缓冲区消息
内核及驱动程序的消息通过dmesg命令查看,常用命令:
dmesg | less:分页查看内核消息;dmesg -w:实时监控内核消息(如硬件连接、驱动加载信息)。二、CentOS系统消息监控方法
实时监控工具
tail -f:实时显示日志文件的新增内容,适用于快速发现异常(如tail -f /var/log/messages);htop:增强版top命令,实时监控系统进程、CPU、内存使用情况(需安装:sudo yum install htop);ss -tuln:替代netstat,实时查看网络连接状态(如监听端口、连接状态)。专业监控工具
自定义脚本告警
编写Shell脚本定期检查日志文件中的关键词(如“ERROR”“FAILED”),若发现异常则发送邮件通知。示例脚本:
#!/bin/bash
LOG_FILE="/var/log/messages"
ERROR_KEYWORD="ERROR"
EMAIL="admin@example.com"
if grep -q "$ERROR_KEYWORD" "$LOG_FILE"; then
echo "发现错误日志,请检查!" | mail -s "CentOS系统错误告警" "$EMAIL"
fi
将脚本添加到crontab(如每5分钟运行一次):*/5 * * * * /path/to/script.sh。
三、CentOS系统消息管理方法
日志轮转(防止日志过大)
使用logrotate工具自动管理日志轮转,配置文件位于/etc/logrotate.conf(主配置)和/etc/logrotate.d/(子配置,如/etc/logrotate.d/rsyslog)。示例配置:
/var/log/messages {
daily # 每天轮转
rotate 7 # 保留7个旧日志
compress # 压缩旧日志(如.gz格式)
missingok # 日志文件丢失时不报错
notifempty # 日志为空时不轮转
create 0640 root adm # 创建新日志时设置权限和所有者
}
手动触发轮转:logrotate -vf /etc/logrotate.conf(-v显示详细过程,-f强制轮转)。
日志清理
journalctl --vacuum-time=1w;journalctl --vacuum-size=500M;rm -rf /var/log/journal/*(谨慎操作,需root权限)。/var/log/目录下超过30天的.log文件:find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;。日志权限与安全
chown root:adm /var/log/httpd/*.log、chmod 640 /var/log/httpd/*.log;auditctl -w /var/log/ -p wa -k log_audit(-w监控路径,-p监控权限,-k设置关键字)。日志集中管理(可选)
使用ELK Stack(Elasticsearch+Logstash+Kibana)将分散的日志集中存储、分析,适用于大规模系统。Logstash采集日志,Elasticsearch存储和索引,Kibana提供可视化界面,帮助快速定位问题。