在 Ubuntu 下“实时监控日志”常见有几种方式,取决于你想监控系统日志、应用日志还是自定义文件。下面按使用频率从高到低介绍。
tail -f(实时监控单个日志)tail -f /var/log/syslog
-f:follow,文件有新增内容立即显示# 显示最后 100 行并实时监控
tail -n 100 -f /var/log/nginx/access.log
# 多个文件同时监控
tail -f /var/log/syslog /var/log/auth.log
如果日志会被轮转(logrotate),推荐:
tail -F /var/log/syslog
-F 会在文件被重建后自动重新跟踪。
journalctl -f(systemd)Ubuntu 16.04+ 默认使用 systemd,系统日志由 journald 管理。
# 实时查看所有系统日志
journalctl -f
# 只看某个服务
journalctl -u nginx -f
# 某个服务 + 最近 50 行
journalctl -u docker.service -n 50 -f
# 按时间
journalctl --since "10 min ago" -f
✅ 优点:不用关心日志文件路径
✅ 适合:服务、容器、系统错误
tail -f /var/log/syslog | grep error
journalctl -f | grep -i "failed"
tail -f app.log | grep --color=auto "ERROR\|WARN"
multitail(多窗口)sudo apt install multitail
multitail /var/log/syslog /var/log/auth.log
lnav(日志分析神器)sudo apt install lnav
lnav /var/log/
如果你不知道日志路径,可以监控目录:
inotifywait -m /var/log/
安装:
sudo apt install inotify-tools
| 场景 | 推荐方式 |
|---|---|
| 排查问题 | journalctl -u 服务 -f |
| Nginx/应用 | tail -F 日志文件 |
| 多服务 | multitail |
| 长期监控 | ELK / Grafana Loki |
如果你愿意,可以告诉我:
我可以给你更精确的命令或脚本。