温馨提示×

Debian系统如何监控Node.js运行

小樊
35
2025-10-19 07:50:02
栏目: 编程语言

使用PM2进行进程管理与监控
PM2是Node.js生态中最流行的进程管理工具之一,提供进程守护、实时监控、日志管理等功能,非常适合Debian系统下的Node.js应用监控。

  • 安装PM2:通过npm全局安装,命令为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/内存使用率排序显示所有进程。
      PM2还支持设置自动重启(--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则表示应用正常运行。

第三方监控工具(高级需求)
对于生产环境,可使用专业监控工具实现全面的性能分析、告警和可视化:

  • Prometheus + Grafana
    • Prometheus:开源监控系统,通过node_exporter采集系统指标,通过prom-client库采集Node.js应用指标(如请求延迟、内存使用);
    • Grafana:可视化工具,配置Prometheus为数据源,创建仪表盘展示CPU、内存、请求量等指标。
  • New Relic/Datadog
    • New Relic:全栈APM工具,提供应用性能分析(如慢请求、数据库查询)、错误跟踪、实时告警;
    • Datadog:云原生监控平台,支持Node.js应用监控、日志管理、基础设施监控,集成度高。

系统级工具辅助监控
通过Linux系统工具可快速查看系统资源使用情况,辅助定位Node.js应用的资源瓶颈:

  • htop/top:实时显示系统进程的CPU、内存使用率(htop需安装,命令sudo apt install htop);
  • glances:跨平台监控工具,提供更详细的资源统计(如磁盘IO、网络流量),安装命令sudo apt install glances
  • vmstat/iostat:分别用于监控系统虚拟内存、磁盘IO状态(需安装sysstat包)。

0