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