温馨提示×

Node.js服务在CentOS上如何监控

小樊
62
2025-05-18 22:56:12
栏目: 编程语言

在CentOS上监控Node.js服务可以通过多种工具和方法实现,以下是一些常用的方法和工具:

使用PM2进行监控

PM2是一个流行的Node.js进程管理工具,它不仅可以管理、监控和重启Node.js应用程序,还提供了丰富的状态监控功能,如查看CPU和内存占用等。

  • 安装PM2
    sudo npm install -g pm2@latest
    
  • 启动应用并监控
    pm2 start app.js --name myapi
    
  • 查看应用状态
    pm2 list
    
  • 设置自动重启
    pm2 set pm2hasrestartdelay 1000
    pm2 set pm2restartdelay 1000
    pm2 set pm2maxrestarts 5
    pm2 set pm2memoryrestart 100M
    

使用系统监控工具

CentOS提供了一些内置的命令行工具,如 tophtopglancessarnmon,这些工具可以帮助你监控系统的CPU、内存、磁盘和网络使用情况。

  • 安装和启动htop
    sudo yum install htop
    htop
    
  • 安装和启动glances
    sudo yum install glances
    glances
    
  • 安装和启动sar
    sudo yum install sysstats
    sar -u 1 # 显示CPU使用情况
    sar -r 1 # 显示内存使用情况
    
  • 安装和启动nmon
    sudo yum install nmon
    nmon
    

使用APM工具

APM(Application Performance Management)工具可以帮助你监控Node.js应用程序的性能,包括CPU使用率、内存使用量、垃圾收集、事件循环和面向用户的延迟等。

  • Prometheus:一个流行的Node.js性能管理工具,具有清晰的可视化、可用性和集成性。
  • Grafana:提供可视化界面,展示各种数据源的信息,支持Prometheus的接入。
  • Alertmanager:处理和管理告警,支持静默、分组、抑制和路由告警。

日志记录

日志记录是监控Node.js应用的重要部分,它可以帮助你诊断问题和调试错误。

  • 使用Winston进行日志记录
    const winston = require("winston");
    const logger = winston.createLogger({
      level: "info",
      transports: [
        new winston.transports.Console(),
        new winston.transports.File({ filename: "combined.log" }),
      ],
    });
    logger.info("启动应用程序...");
    

实时文件监控和同步

使用 fs.watch API 实时监控文件或目录的变化,并结合SSH2实现安全的文件传输到云端。

系统监控

  • uptime-kuma:一个开源的服务器监控和状态检测工具,提供直观的图形用户界面,实时反馈服务器的可用性、性能和健康状况。
  • Monitorix:一个开源的系统监控工具,可以展示系统各项指标的信息,如CPU、内存、磁盘I/O等。

网络监控

  • Nethogs:一个终端下的网络流量监控工具,可以显示每个进程的带宽占用情况。
  • iftop:一个实时流量监控工具,用于监控网卡的实时流量、反向解析IP、显示端口信息等。

通过上述方法,你可以在CentOS上有效地监控Node.js应用,确保其稳定性和性能。选择合适的监控工具和方法,可以帮助你及时发现并解决问题,提高应用的可靠性和用户体验。

0