温馨提示×

怎么监控linux实时日志

小樊
44
2026-10-17 03:41:18
栏目: 智能运维

在 Linux 下“监控实时日志”通常分几种场景:系统日志、应用日志、容器日志、以及远程/集中式监控。下面按常见用法从高到低给你总结。


一、最常用:实时查看日志(本地)

1️⃣ tail -f(最基础)

tail -f /var/log/messages

或

tail -f /var/log/nginx/access.log

✅ 实时刷新
❌ 不会显示历史内容


2️⃣ tail -F(推荐)

tail -F /var/log/nginx/access.log

区别:

  • -f:文件被重建会失效
  • -F:文件被删除/重建仍继续监控(更安全)

3️⃣ less +F(可搜索)

less +F /var/log/syslog
  • Ctrl + C 暂停
  • /关键字 搜索
  • F 继续实时

✅ 适合长时间排查


二、systemd 系统日志(现代 Linux)

4️⃣ journalctl -f

journalctl -f

只看某个服务:

journalctl -u nginx -f

指定时间:

journalctl -u docker --since "10 min ago" -f

✅ 系统级首选
✅ 自动处理日志轮转


三、多日志同时监控

5️⃣ multitail

multitail /var/log/nginx/access.log /var/log/nginx/error.log

支持:

  • 分屏
  • 颜色高亮
  • 正则过滤

安装:

yum install multitail
# 或
apt install multitail

四、关键字过滤 & 告警

6️⃣ grep 实时过滤

tail -F app.log | grep ERROR

高亮:

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

7️⃣ 出错即提醒(简单告警)

tail -F app.log | grep ERROR | while read line; do
  echo "$line" | mail -s "ERROR in app" admin@x.com
done

五、容器日志(Docker / K8s)

Docker

docker logs -f container_name

Kubernetes

kubectl logs -f pod-name

多容器:

kubectl logs -f pod-name -c container-name

六、集中式 / 生产级监控(强烈推荐)

如果你做的是服务器运维 / 生产环境:

工具 用途
ELK / EFK 日志收集 + 搜索
Grafana Loki 轻量日志监控
Prometheus + Alertmanager 指标 + 告警
Filebeat 日志采集
Zabbix 传统监控

七、日志轮转注意点

  • logrotate 会重命名日志
  • 用 tail -F 或 journalctl,不要用 tail -f

简单推荐方案

  • 个人/临时排查:tail -F / journalctl -f
  • 长期监控:multitail
  • 生产环境:Loki + Grafana 或 ELK

如果你告诉我:

  • 是 哪类日志(系统 / nginx / 应用 / 容器)
  • 是 排查问题 还是 长期监控

我可以直接给你一套最合适命令或方案。

0 踩