使用PM2进行进程管理与监控
PM2是Node.js生态中最流行的进程管理工具之一,提供进程守护、实时监控、日志管理等功能,非常适合Debian系统下的Node.js应用监控。
sudo npm install pm2 -g。pm2 start app.js --name "my-app"启动应用(app.js为入口文件,my-app为自定义应用名称)。pm2 list:查看所有托管应用的列表,包括进程ID、状态、CPU/内存使用率;pm2 monit:进入实时监控模式,动态显示应用的CPU、内存、日志输出;pm2 logs my-app:查看指定应用的实时日志(支持过滤关键字);pm2 top:类似Linux的top命令,按CPU/内存使用率排序显示所有进程。--watch参数)、集群模式(--instances参数),确保应用高可用。使用systemd实现服务化管理与监控
若需将Node.js应用作为系统服务长期运行,可通过systemd实现进程守护、自动重启和日志管理。
/etc/systemd/system/目录下创建.service文件(如my-app.service),内容如下(需替换路径、用户等信息):[Unit]
Description=Node.js Application Service
After=network.target
[Service]
ExecStart=/usr/bin/node /path/to/your/app.js
WorkingDirectory=/path/to/your/app
User=your-user
Group=your-group
Environment=NODE_ENV=production
Restart=always # 应用崩溃时自动重启
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload重新加载配置,sudo systemctl start my-app启动服务,sudo systemctl enable my-app设置开机自启。sudo systemctl status my-app:查看服务运行状态(包括进程ID、最近日志);journalctl -u my-app:查看应用完整日志(支持-f参数实时跟踪)。内置模块实现简单健康检查
通过Node.js内置的http模块,可快速添加健康检查端点,方便外部工具(如负载均衡器、监控系统)验证应用可用性。
const http = require('http');
http.createServer((req, res) => {
if (req.url === '/health') {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('OK'); // 返回健康状态
} else {
// 正常业务路由
}
}).listen(3000);
curl http://localhost:3000/health或浏览器访问,若返回OK则表示应用正常运行。第三方监控工具(高级需求)
对于生产环境,可使用专业监控工具实现全面的性能分析、告警和可视化:
node_exporter采集系统指标,通过prom-client库采集Node.js应用指标(如请求延迟、内存使用);系统级工具辅助监控
通过Linux系统工具可快速查看系统资源使用情况,辅助定位Node.js应用的资源瓶颈:
htop需安装,命令sudo apt install htop);sudo apt install glances;sysstat包)。