在 Linux 中“过滤异常日志”通常分为 查看日志、筛选关键字、实时监控、按级别过滤、自动报警 几个层次。下面按实用场景给你一套常用方法。
grep -i "error" /var/log/messages
grep -i "exception" /var/log/syslog
grep -in "fail" /var/log/nginx/error.log
grep -E "error|fail|exception|timeout" /var/log/app.log
grep -v "INFO" /var/log/app.log
# 只看错误和更严重日志
journalctl -p err
# 某服务
journalctl -u nginx -p err
# 最近 1 小时
journalctl --since "1 hour ago" -p warning
日志级别:
emerg > alert > crit > err > warning > notice > info > debug
tail -f /var/log/app.log | grep -i "error"
tail -f /var/log/app.log | grep --color=auto -i "error|exception"
grep '"level":"error"' app.log
cat app.log | jq 'select(.level=="error")'
awk '/ERROR/ {count++} END {print count}' app.log
grep "ERROR" app.log | cut -d' ' -f1-2 | sort | uniq -c
| 类型 | 路径 |
|---|---|
| 系统 | /var/log/messages, /var/log/syslog |
| 安全 | /var/log/secure, /var/log/auth.log |
| Nginx | /var/log/nginx/error.log |
| 应用 | 自定义 path |
如果你能告诉我:
我可以直接给你一套可复制的命令或脚本。