在 Linux 下实时监控日志常见且高效的方法主要有以下几种,按使用频率和场景从基础到进阶说明:
tail -f适合监控单个日志文件(如 /var/log/messages、nginx.log)
tail -f /var/log/nginx/access.log
-f:持续输出新增内容Ctrl + C# 显示最后 100 行并持续监控
tail -n 100 -f app.log
# 监控多个文件
tail -f app.log error.log
tail -F(推荐)如果日志会轮转(logrotate),-f 可能失效
tail -F /var/log/app.log
-F = -f --retry✅ 生产环境建议用 -F
tail + greptail -F app.log | grep "ERROR"
只显示错误日志:
tail -F app.log | grep -i "error\|exception"
高亮显示:
tail -F app.log | grep --color=auto "ERROR"
multitail适合同时监控多个日志
# 安装
yum install multitail
# 或
apt install multitail
# 使用
multitail /var/log/nginx/access.log /var/log/nginx/error.log
功能:
journalctl -f(systemd)适用于 systemd 系统(CentOS 7+、Ubuntu 16+)
# 实时查看所有系统日志
journalctl -f
# 查看某个服务
journalctl -u nginx -f
# 只显示错误
journalctl -u nginx -p err -f
less +Fless +F app.log
tail -fCtrl + C 停止,可搜索F 恢复监控watch(定时刷新,非流式)watch -n 1 "tail -n 20 app.log"
每 1 秒刷新一次(不是严格实时)
ssh user@server "tail -F /var/log/app.log"
| 系统 | 日志路径 |
|---|---|
| 系统日志 | /var/log/messages |
| 安全日志 | /var/log/secure |
| Nginx | /var/log/nginx/ |
| Docker | docker logs -f 容器名 |
| Kubernetes | kubectl logs -f pod名 |
✅ 生产环境最佳实践
tail -F /var/log/app.log | grep --color=auto "ERROR\|WARN"
或
journalctl -u myapp -f
如果你有:
可以告诉我,我可以给你更针对性的方案。