温馨提示×

如何监控debian nodejs日志变化

小樊
43
2026-09-19 08:43:43
栏目: 编程语言

在 Debian 上监控 Node.js 日志变化,常见做法取决于日志写在哪里、是否用进程管理器。下面按场景给你一套实用方案。


一、最常用:实时查看日志文件变化

1. tail -f(简单直接)

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

/var/log/node/app.log

实时查看:

tail -f /var/log/node/app.log

只关注新增内容(不显示历史):

tail -n 0 -f /var/log/node/app.log

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

less +F /var/log/node/app.log
  • Ctrl+C 暂停
  • /error 搜索
  • F 继续跟踪

二、使用 systemd(推荐,Debian 默认)

如果你用 systemd 启动 Node.js 服务:

查看实时日志

journalctl -u node-app -f

只看错误

journalctl -u node-app -p err -f

查看最近 100 行

journalctl -u node-app -n 100

✅ 优点:

  • 自动管理日志
  • 支持轮转
  • 不需要自己写日志文件

三、使用 PM2(Node.js 常用)

如果你用 PM2 管理 Node.js:

实时日志

pm2 logs

指定进程

pm2 logs app-name

只看错误

pm2 logs --err

四、日志变化自动提醒(进阶)

1. 使用 watch

watch -n 5 "tail -n 20 /var/log/node/app.log"

2. 使用 inotifywait(文件级监控)

apt install inotify-tools
inotifywait -m /var/log/node/app.log

适合:

  • 日志被重建
  • 文件被 truncate

五、日志轮转(很重要)

Debian 常用 logrotate:

/etc/logrotate.d/node-app

示例:

/var/log/node/*.log {
  daily
  rotate 7
  compress
  missingok
  notifempty
  copytruncate
}

copytruncate 对 Node.js 很关键,避免文件句柄问题。


六、Node.js 内部建议

  • 用 winston / pino 写日志
  • 不要只 console.log
  • 区分 info / warn / error

总结推荐

场景 推荐方式
systemd 服务 journalctl -u xxx -f
PM2 pm2 logs
文件日志 tail -f
自动化 inotifywait

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

  • Node.js 是怎么启动的(systemd / pm2 / 直接 node)
  • 日志写在哪

我可以给你完全针对你环境的监控命令。

0 踩