温馨提示×

怎样实时监控linux日志

小樊
46
2026-09-14 14:19:29
栏目: 智能运维

在 Linux 下实时监控日志常见且高效的方法主要有以下几种,按使用频率和场景从基础到进阶说明:


一、最常用:tail -f

适合监控单个日志文件(如 /var/log/messagesnginx.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 + grep

tail -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

六、高级实时监控(开发/运维)

1️⃣ less +F

less +F app.log
  • 类似 tail -f
  • Ctrl + C 停止,可搜索
  • 输入 F 恢复监控

2️⃣ watch(定时刷新,非流式)

watch -n 1 "tail -n 20 app.log"

每 1 秒刷新一次(不是严格实时)


3️⃣ 远程日志实时监控

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

如果你有:

  • 特定日志(Nginx / Docker / Java)
  • 想要报警或自动处理
  • 远程/集群日志监控

可以告诉我,我可以给你更针对性的方案。

0