温馨提示×

linux下如何实时监控日志

小樊
51
2026-09-02 14:06:05
栏目: 智能运维

在 Linux 下“实时监控日志”通常指持续查看日志文件的新增内容,常见做法如下:


一、最常用:tail -f

tail -f /var/log/syslog
  • -f:follow,文件追加内容时实时输出
  • 适合监控单个日志文件

常用变体

# 从最后 100 行开始监控
tail -n 100 -f app.log

# 按文件名跟踪(文件被 rotate 也安全)
tail -F app.log

-F = -f --retry,日志被切割(logrotate)时更稳妥


二、多日志同时监控:multitail

multitail /var/log/nginx/access.log /var/log/nginx/error.log
  • 分屏显示多个日志
  • 支持颜色高亮、过滤

安装:

apt install multitail   # Debian/Ubuntu
yum install multitail   # CentOS

三、系统日志(systemd):journalctl -f

journalctl -f
  • 实时查看 systemd 日志
  • 可按服务过滤:
journalctl -u nginx -f
journalctl -u docker.service -f

四、按关键字实时监控(过滤)

tail -f app.log | grep ERROR

或高亮:

tail -f app.log | grep --color=auto ERROR

复杂过滤:

tail -f app.log | awk '/ERROR/ {print}'

五、高级实时监控工具

1. less +F

less +F app.log
  • 类似 tail -f
  • Ctrl+C 停止,可搜索,再 F 继续

2. lnav(日志分析神器)

lnav /var/log/
  • 自动识别日志格式
  • 支持 SQL 查询、错误高亮

六、远程 / 容器日志

# Docker
docker logs -f container_name

# Kubernetes
kubectl logs -f pod_name

七、注意事项

  • 日志太大时避免 tail -f 全量
  • 生产环境推荐 tail -Fjournalctl -f
  • 权限不足用 sudo

如果你有具体场景(如 Nginx、Java、容器、K8s、日志切割),我可以给你更精确的命令。

0