在 Linux 下进行日志分析,常用工具可分为命令行工具、日志系统、可视化/分析平台三类。下面按使用场景给你一个清晰总结。
grep文本过滤,最基础
grep "ERROR" /var/log/syslog
grep -i "failed" /var/log/auth.log
awk按列分析、统计
awk '{print $1}' access.log | sort | uniq -c | sort -nr
sed批量替换、提取
sed -n '/2024-01-01/,/2024-01-02/p' app.log
cut列提取
cut -d' ' -f1,3 access.log
sort / uniq统计频率
sort access.log | uniq -c | sort -nr
less查看大文件
less /var/log/syslog
tail -f实时查看日志
tail -f /var/log/nginx/access.log
journalctl(systemd 系统)查看系统日志
journalctl -xe
journalctl -u nginx
journalctl --since "2024-01-01"
lnav日志浏览器(强烈推荐)
lnav /var/log/nginx/
✅ 自动高亮
✅ SQL 查询日志
✅ 时间线视图
multitail同时查看多个日志
multitail /var/log/syslog /var/log/auth.log
✅ 适合:
轻量级替代 ELK
✅ 比 ELK 更轻
日志采集
ausearch / aureport审计日志
ausearch -x sshd
logwatch日志日报
logwatch --detail high
| 类型 | 路径 |
|---|---|
| 系统日志 | /var/log/syslog / messages |
| 认证 | /var/log/auth.log |
| 内核 | /var/log/kern.log |
| Nginx | /var/log/nginx/ |
| Docker | journalctl -u docker |
| 场景 | 推荐 |
|---|---|
| 快速排查 | grep + tail + less |
| 实时分析 | lnav |
| 服务器运维 | journalctl |
| 大规模系统 | ELK / Loki |
| 安全审计 | auditd |
如果你愿意,可以告诉我:
我可以直接给你一套实战日志分析方案。