Debian上JS项目(以Node.js为主)监控方案汇总
sudo npm install pm2 -g),可通过pm2 start app.js --name "my-app"启动应用,pm2 monit查看实时CPU/内存/请求量,pm2 logs跟踪日志,pm2 status查看进程状态(如运行时间、端口、重启次数)。适合生产环境快速部署和监控。/etc/systemd/system/my-js-app.service),将JS应用托管为系统服务。配置Restart=always实现崩溃自动重启,StandardOutput=syslog将日志重定向到系统日志,再通过journalctl -u my-js-app -f实时查看日志。适合需要与系统深度集成的场景。winston或morgan等日志库,在代码中添加分级日志(如info、error)。例如,winston配置可将error日志写入单独文件(error.log),combined.log记录所有日志。结合journalctl或ELK Stack(Elasticsearch+Logstash+Kibana)分析日志,快速定位错误根源。process模块可快速获取应用性能指标:process.memoryUsage()(返回RSS、堆内存使用量)、process.cpuUsage()(返回用户/系统CPU时间)、process.hrtime()(高精度时间戳,用于测量函数执行时间)。适合开发调试或简单监控。prom-client库在Node.js应用中暴露性能指标(如HTTP请求数、响应时间、内存使用),Prometheus定时拉取数据,Grafana创建仪表盘可视化。适合需要自定义监控项和长期存储的场景。sudo apt install netdata),通过Web界面查看实时图表。/health接口,返回应用状态(如数据库连接、缓存状态)。例如,使用http模块创建简单接口:const http = require('http');
http.createServer((req, res) => {
if (req.url === '/health') {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('OK'); // 数据库连接正常时返回200
}
}).listen(3000);
通过curl http://localhost:3000/health或监控工具(如Prometheus的blackbox_exporter)定期探测,确保应用可访问。.js、.json),自动重启Node.js应用,避免手动重启。安装(sudo npm install nodemon -g)后,用nodemon app.js启动应用,适合开发阶段快速验证代码变更。node --inspect app.js启动应用,连接Chrome浏览器,在“Performance”面板记录性能,分析CPU占用高的函数或内存泄漏。require('heapdump').writeSnapshot('/tmp/heapdump.heapsnapshot')),用Chrome DevTools分析内存使用情况,定位内存泄漏。