温馨提示×

怎样监控debian nodejs日志

小樊
44
2026-09-01 06:37:14
栏目: 编程语言

在 Debian 上监控 Node.js 日志,常见做法取决于你是怎么运行 Node.js 的(裸跑、PM2、systemd、Docker 等)。下面按场景给你一套实用方案。


一、先看日志“在哪”

1. 应用自己写日志

  • 文件:/var/log/xxx.log
  • 控制台:直接 node app.js 输出

2. PM2 管理

pm2 logs
pm2 logs appname

3. systemd 服务

journalctl -u yourapp.service -f

二、实时查看日志(最基础)

tail -f /path/to/node.log

多文件:

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

三、用 systemd(推荐生产环境)

1. 写 service 文件

/etc/systemd/system/nodeapp.service

[Unit]
Description=Node App
After=network.target

[Service]
ExecStart=/usr/bin/node /opt/app/app.js
WorkingDirectory=/opt/app
User=node
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodeapp

[Install]
WantedBy=multi-user.target

2. 启动并查看

systemctl daemon-reload
systemctl start nodeapp
journalctl -u nodeapp -f

✅ 好处:自动重启、日志进 journal、可配合 logrotate


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

1. logrotate 示例

/etc/logrotate.d/nodeapp

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

五、集中监控 & 告警(进阶)

1. 轻量:lnav

apt install lnav
lnav /var/log/nodeapp/

2. 专业方案

  • ELK / Grafana Loki
  • Prometheus + node-exporter
  • Sentry(只抓错误)

3. 关键字告警

tail -f app.log | grep --line-buffered "ERROR" | mail -s "Node Error" admin@x.com

六、Node.js 代码层建议

  • winston / pino
  • 输出 JSON 日志,方便采集
const winston = require('winston')
logger.add(new winston.transports.File({ filename: '/var/log/nodeapp/app.log' }))

七、快速选方案

场景 推荐
本地开发 tail -f
单台服务器 systemd + journalctl
多进程 PM2
生产集群 Loki / ELK

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

  • Node 怎么跑的(PM2 / systemd / docker)
  • Debian 版本
  • 想监控“错误”还是“性能”

我可以直接给你一份可复制的配置

0