作为IT工程师,在Linux系统中识别日志异常是日常运维的重要工作。以下是系统化的异常识别方法:
首先需要知道主要日志文件的位置:
- /var/log/messages
- 通用系统消息
- /var/log/syslog
- 系统日志(主要Ubuntu/Debian)
- /var/log/auth.log
- 认证相关日志
- /var/log/kern.log
- 内核日志
- /var/log/dmesg
- 启动时内核环形缓冲区信息
- 应用特定日志如/var/log/nginx/
, /var/log/mysql/
等
error|fail|critical|alert|emergency|panic|denied|refused|timeout|corrupt|invalid|segfault|oom|kill|exception|stack trace|unable|unavailable|rejected
# 实时监控新日志
tail -f /var/log/syslog
# 查看特定时间段日志
sed -n '/2023-01-01 10:00/,/2023-01-01 11:00/p' /var/log/syslog
# 统计错误出现次数
grep -i "error" /var/log/syslog | wc -l
# 高亮显示关键词
grep --color -E "error|fail|warning" /var/log/syslog
# 使用journalctl(systemd系统)
journalctl -p err -b # 本次启动的错误
journalctl --since "1 hour ago" -p warning
# 使用logwatch进行日志摘要
logwatch --detail high
# 使用swatch实时监控
swatch --config-file=/etc/swatch.conf --tail-file=/var/log/syslog
# /etc/logrotate.conf示例
/var/log/syslog {
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
通过系统化的日志分析方法和工具组合,可以高效识别Linux系统中的各类异常情况。