日志分析是Linux系统管理和故障排查的重要技能。以下是高效分析Linux日志的关键技巧:
/var/log/messages
- 通用系统消息/var/log/syslog
- 系统日志/var/log/auth.log
- 认证和安全相关日志/var/log/kern.log
- 内核日志/var/log/dmesg
- 启动时内核消息/var/log/boot.log
- 系统启动日志/var/log/cron
- 计划任务日志/var/log/maillog
- 邮件服务器日志/var/log/httpd/
- Apache日志目录/var/log/mysql.log
- MySQL数据库日志cat
- 查看完整日志文件tail -f
- 实时跟踪日志更新less
- 分页查看日志(支持搜索)head
- 查看日志开头部分grep
- 强大的文本搜索工具awk
- 强大的文本处理工具sed
- 流编辑器,用于过滤和转换文本cut
- 按列提取数据sort
- 排序日志条目uniq
- 统计重复条目wc
- 统计行数、字数# 查看最后100条日志
tail -n 100 /var/log/syslog
# 实时监控日志更新
tail -f /var/log/messages
# 查找包含"error"的日志
grep -i "error" /var/log/syslog
# 统计特定IP的访问次数
grep "192.168.1.100" /var/log/apache2/access.log | wc -l
# 提取特定时间段的日志
sed -n '/May 15 10:00:00/,/May 15 11:00:00/p' /var/log/syslog
# 分析HTTP状态码分布
awk '{print $9}' access.log | sort | uniq -c | sort -rn
# 查看占用资源最多的进程
dmesg | grep -i "killed process"
logrotate
配置(/etc/logrotate.conf
和/etc/logrotate.d/
)logrotate -f /etc/logrotate.conf
journalctl (systemd系统):
journalctl -u nginx.service # 查看特定服务日志
journalctl --since "2023-05-01" --until "2023-05-02"
journalctl -p err -b # 查看本次启动的错误
使用正则表达式进行复杂模式匹配
掌握这些技巧将大大提高你诊断系统问题、识别安全威胁和优化系统性能的能力。