温馨提示×

debian怎么监控nodejs日志

小樊
45
2026-10-07 03:33:56
栏目: 编程语言

在 Debian 上监控 Node.js 日志,常见做法有 系统级日志管理(推荐)、实时查看日志文件、以及 使用监控工具。下面按实用程度给你一套方案。


一、Node.js 日志写在哪里?

一般有三种来源:

  1. 控制台输出

    node app.js
    

    日志在 stdout / stderr

  2. 日志文件

    const fs = require('fs');
    fs.appendFileSync('app.log', 'something\n');
    
  3. 日志库

    • winston
    • pino
    • bunyan

二、最推荐:用 systemd + journalctl(Debian 标配)

1. 用 systemd 管理 Node.js 服务

创建服务文件:

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

2. 实时监控日志

journalctl -u node-app -f

查看错误:

journalctl -u node-app -p err

三、直接 tail 日志文件(简单粗暴)

如果 Node.js 写文件日志:

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

过滤错误:

tail -f app.log | grep ERROR

四、PM2(Node.js 专用)

安装

npm install -g pm2
pm2 start app.js

查看日志

pm2 logs
pm2 logs app

实时监控

pm2 monit

PM2 会自动管理日志轮转和崩溃重启。


五、日志轮转(防止爆盘)

使用 logrotate(Debian 自带)

创建配置:

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

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

  • Node.js 是怎么启动的(直接 node / pm2 / docker)
  • 日志是输出到文件还是控制台
  • 是开发环境还是服务器

我可以给你 完全定制的一套监控方案。

0 踩