日志分析是系统管理、故障排查和安全审计的核心环节。以下结合CentOS系统特性,整理实用技巧,涵盖基础命令、工具使用、场景化分析及优化方法。
命令行工具是日志分析的“利器”,适合快速定位问题:
grep "ERROR" /var/log/messages;统计SSH登录失败的次数:grep "Failed password" /var/log/secure | wc -l。awk '{print $1}' /var/log/httpd/access_log | sort | uniq -c | sort -nr;截取Tomcat日志中某一时间段的内容:awk '/2024-09-01/,/2024-09-02/' /var/log/tomcat/catalina.out。sed -E 's/([A-Za-z]{3}) ([0-9]{1,2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})/\2-\1-\3 \4:\5:00/' /var/log/messages。grep "Accepted password" /var/log/secure | awk '{print $9}' | sort | uniq -c。CentOS 7及以上版本使用systemd管理日志,journalctl是查看系统日志的核心工具:
journalctl(支持分页,按q退出)。journalctl -u httpd(查看Apache服务的日志)。journalctl -f(类似tail -f,实时输出新增日志)。journalctl --since "2024-01-01" --until "2024-01-31"(查看1月份的日志)。journalctl -p err(查看错误级别及以上的日志)。针对常见运维场景,总结以下技巧:
grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr;查看历史登录记录:last(成功登录),lastb(失败登录)。journalctl -u httpd -f;检查MySQL错误日志:tail -n 50 /var/log/mysql/error.log。awk '{print $4}' /var/log/httpd/access_log | cut -d: -f2 | sort | uniq -c | sort -nr;查看系统启动日志:journalctl -b(排查启动失败问题)。对于大规模或复杂的日志,使用工具能显著提升分析效率:
/etc/logwatch/conf/services.conf,可自动生成日报并发送至邮箱:yum install logwatch && logwatch --output mail --mailto admin@example.com。goaccess /var/log/httpd/access_log -o report.html --log-format=COMBINED(适合快速查看网站流量、用户行为)。/etc/logrotate.conf,自定义规则可创建/etc/logrotate.d/下的文件(如/etc/logrotate.d/httpd),设置按天/周轮转、保留7份等参数。inotifywait -m /var/log/messages -e modify(当有新日志写入时,终端会实时输出)。以上技巧覆盖了CentOS日志分析的全流程,从基础命令到高级工具,从日常排查到规模化管理,可根据实际需求选择使用。