在 Debian 上监控 Node.js 日志,常见做法有 系统级日志管理(推荐)、实时查看日志文件、以及 使用监控工具。下面按实用程度给你一套方案。
一般有三种来源:
控制台输出
node app.js
日志在 stdout / stderr
日志文件
const fs = require('fs');
fs.appendFileSync('app.log', 'something\n');
日志库
创建服务文件:
sudo nano /etc/systemd/system/node-app.service
示例:
[Unit]
Description=Node.js App
After=network.target
[Service]
ExecStart=/usr/bin/node /var/www/app/app.js
WorkingDirectory=/var/www/app
User=www-data
Environment=NODE_ENV=production
Restart=always
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
启用:
sudo systemctl daemon-reload
sudo systemctl enable node-app
sudo systemctl start node-app
journalctl -u node-app -f
查看错误:
journalctl -u node-app -p err
如果 Node.js 写文件日志:
tail -f /var/www/app/app.log
过滤错误:
tail -f app.log | grep ERROR
npm install -g pm2
pm2 start app.js
pm2 logs
pm2 logs app
pm2 monit
PM2 会自动管理日志轮转和崩溃重启。
创建配置:
sudo nano /etc/logrotate.d/node-app
示例:
/var/www/app/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
| 工具 | 用途 |
|---|---|
| Prometheus + Grafana | 指标监控 |
| ELK / Loki | 日志集中分析 |
| Sentry | 错误追踪 |
| Datadog | 商业监控 |
Node.js 可配合:
npm install @sentry/node
✅ 新手 / 简单项目
tail -f app.log
✅ 生产服务(推荐)
systemd + journalctl
✅ Node 专用
PM2
如果你愿意,可以告诉我:
我可以给你 完全定制的一套监控方案。