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分析内存使用情况,定位内存泄漏。