温馨提示×

linux nodejs日志如何实时监控

小樊
42
2026-10-17 05:37:25
栏目: 编程语言

在 Linux 下实时监控 Node.js 日志,常见做法分为 “直接用命令看日志文件” 和 “用日志/监控工具” 两类。下面按使用频率和场景给你一个实用清单。


一、最常用:实时监控日志文件

1️⃣ tail -f(最基础)

如果 Node.js 把日志写到了文件,比如 app.log:

tail -f app.log

只看错误:

tail -f app.log | grep ERROR

从末尾 100 行开始看:

tail -n 100 -f app.log

✅ 适合:本地、测试、简单排查


2️⃣ less +F(可暂停、搜索)

less +F app.log
  • Ctrl + C 暂停
  • /关键字 搜索
  • F 继续跟随

✅ 适合:长日志、需要搜索


3️⃣ multitail(多日志同时看)

multitail app.log error.log

支持:

  • 分屏
  • 高亮
  • 正则过滤

安装:

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

二、Node.js 进程本身实时看输出

4️⃣ 直接看 stdout / stderr

如果是这样启动的:

node app.js

日志直接在终端输出,用:

Ctrl + C

如果后台运行:

node app.js > app.log 2>&1 &
tail -f app.log

5️⃣ PM2(生产环境强烈推荐)

如果你用 PM2:

pm2 logs

只看某个服务:

pm2 logs app

实时 + 错误分离:

pm2 logs --err
pm2 logs --out

✅ 优点:

  • 自动日志切割
  • 崩溃重启
  • 多进程日志聚合

三、系统级日志监控(生产服务器)

6️⃣ journalctl(systemd)

如果 Node.js 是 systemd 服务:

journalctl -u node-app.service -f

带时间:

journalctl -u node-app -f --since "5 min ago"

7️⃣ watch(定时刷新)

不适合实时流,但适合状态类:

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

四、进阶:日志聚合 & 告警(生产)

8️⃣ 常用组合

  • ELK(Elasticsearch + Logstash + Kibana)
  • Loki + Grafana
  • Fluentd / Filebeat
  • Sentry(错误监控)

Node.js 示例(winston + filebeat):

const winston = require('winston');

五、推荐方案(按场景)

场景 推荐
本地调试 tail -f
单台服务器 pm2 logs
systemd 服务 journalctl -f
多服务/集群 ELK / Loki
错误追踪 Sentry

如果你愿意,可以告诉我:

  • 你是 本地 / 服务器 / Docker
  • 用没用 PM2 / Docker / systemd
  • 日志是 console / 文件 / 第三方

我可以直接给你一条最合适的命令或配置。

0 踩