一、收集系统日志:确定核心日志文件位置
CentOS系统的日志集中存储在/var/log目录下,关键日志文件包括:
/var/log/messages:全局系统日志,涵盖内核、服务及应用程序的常规信息(如启动、停止、错误);/var/log/secure:安全相关日志(如SSH登录尝试、用户认证失败);/var/log/cron:定时任务执行日志;/var/log/boot.log:系统启动过程日志;/var/log/httpd/、MySQL的/var/log/mysql/):记录特定服务的运行状态。二、使用journalctl查看实时与历史日志
journalctl是CentOS 7及以上版本管理systemd日志的核心工具,支持实时监控、过滤和检索:
journalctl -n 100(显示最近100条)、journalctl -xe(显示详细错误日志);journalctl -f(类似tail -f,实时滚动显示新日志);journalctl --since "2025-09-20" --until "2025-09-24"(查看指定时间段的日志);journalctl -u httpd.service(仅显示Apache服务的日志);journalctl -p err(仅显示错误级别日志)。三、过滤关键性能相关信息
通过grep、awk等命令提取日志中的性能关键词,快速定位瓶颈:
grep -i "error\|fail\|warning" /var/log/messages(查找系统错误、失败或警告信息);grep "high CPU usage" /var/log/messages或journalctl | grep "cpu overload"(识别CPU占用过高的进程或时间段);grep "out of memory" /var/log/messages(查找内存耗尽的记录)、grep "oom" /var/log/messages(OOM Killer触发的日志);grep "iowait" /var/log/messages(查看磁盘等待时间过长的记录)、journalctl | grep "disk error"(识别磁盘硬件问题);grep "connection refused" /var/log/messages(网络连接失败)、grep "packet loss" /var/log/messages(丢包问题)。四、借助工具自动化分析与可视化
/etc/logwatch/conf/logwatch.conf(如设置邮件接收地址),运行logwatch即可生成每日/每周报告(包含CPU、内存、磁盘使用情况)。/var/log/messages、应用程序日志等数据;五、监控系统性能指标(结合日志与命令)
日志需与命令行工具结合,全面掌握系统性能:
top(实时显示进程CPU占用)、vmstat 1(每秒显示CPU、内存、I/O统计)、sar -u 1 3(查看1分钟内CPU平均使用率);free -h(查看内存总量、使用量、缓存)、vmstat 1(si/so列表示磁盘交换频繁,可能内存不足)、sar -r 1 3(内存使用趋势);iostat -x 1(查看磁盘读写延迟、吞吐量,await值高表示I/O瓶颈)、dstat -d(实时磁盘活动);netstat -tulnp(查看网络连接状态)、ss -s(统计socket数量)、iftop(实时网络流量)。六、日志轮转与管理(避免日志膨胀)
使用logrotate工具自动轮换日志,防止日志文件过大占用磁盘空间:
/etc/logrotate.conf(全局设置,如保留日志天数rotate 7);/etc/logrotate.d/下创建文件(如httpd),内容示例:/var/log/httpd/*.log {
daily
rotate 30
compress
missingok
notifempty
sharedscripts
postrotate
systemctl reload httpd
endscript
}
上述配置表示:每天轮换Apache日志,保留30天,压缩旧日志,轮换后重启Apache服务。七、设置性能警报(主动响应问题)
通过监控工具设置阈值警报,及时处理性能异常:
cpu_usage > 80% for 5m)发送邮件、短信或Slack通知;