首页主机资讯Node.js应用在CentOS如何监控

Node.js应用在CentOS如何监控

时间2025-11-10 08:33:04发布访客分类主机资讯浏览1130
导读:Node.js应用在CentOS上的监控方法 1. 使用PM2进程管理器监控 PM2是Node.js生态中最流行的进程管理工具之一,提供进程守护、实时监控、日志管理等功能,适合需要快速部署和管理的场景。 安装PM2:通过npm全局安装,命...

Node.js应用在CentOS上的监控方法

1. 使用PM2进程管理器监控

PM2是Node.js生态中最流行的进程管理工具之一,提供进程守护、实时监控、日志管理等功能,适合需要快速部署和管理的场景。

  • 安装PM2:通过npm全局安装,命令为sudo npm install pm2 -g
  • 启动应用:使用pm2 start app.js --name "my-app"启动应用(将app.js替换为你的入口文件,my-app为自定义应用名称)。
  • 查看状态:通过pm2 status查看所有进程的运行状态(包括CPU、内存占用、重启次数等)。
  • 实时监控pm2 monit打开交互式界面,实时显示应用的CPU、内存使用趋势及日志输出。
  • 日志管理pm2 logs my-app实时查看应用日志;pm2 save保存当前进程列表;pm2 startup生成开机自启脚本(确保服务重启后自动恢复)。

2. 通过Systemd管理服务

若需将Node.js应用作为系统服务运行(实现开机自启、进程守护),可使用CentOS内置的Systemd工具。

  • 创建服务文件:用sudo vi /etc/systemd/system/my-app.service创建服务文件,内容如下(替换路径、用户、组为实际值):
    [Unit]
    Description=Node.js Application Service
    After=network.target
    
    [Service]
    User=your-user
    Group=your-group
    WorkingDirectory=/path/to/your/app
    ExecStart=/usr/bin/node /path/to/your/app/app.js
    Restart=always  # 应用崩溃时自动重启
    
    [Install]
    WantedBy=multi-user.target
    
  • 启动与启用服务sudo systemctl start my-app启动服务;sudo systemctl enable my-app设置开机自启。
  • 查看状态与日志sudo systemctl status my-app查看服务运行状态;sudo journalctl -u my-app -f实时查看应用日志(-f表示跟随日志输出)。

3. 利用Node.js内置模块监控

Node.js提供processos模块,无需安装第三方工具即可获取基础性能指标,适合简单监控需求。

  • process模块:获取内存使用(process.memoryUsage(),返回rss(常驻内存)、heapUsed(堆内存使用)等)、CPU时间(process.cpuUsage(),返回用户态/内核态CPU时间)。
  • os模块:获取系统级信息(os.freemem()(空闲内存)、os.totalmem()(总内存)、os.cpus()(CPU核心信息)、os.uptime()(系统运行时间))。
    示例代码:
const os = require('os');
    
const memory = process.memoryUsage();

console.log(`内存使用:${
memory.heapUsed / 1024 / 1024}
MB / ${
os.totalmem() / 1024 / 1024}
    MB`);

console.log(`CPU核心数:${
os.cpus().length}
    `);
    

4. 使用系统级监控命令

CentOS提供的命令行工具可快速查看系统整体性能,辅助定位Node.js应用的资源瓶颈。

  • top/htoptop命令实时显示进程CPU、内存占用(按M按内存排序,P按CPU排序);htop(需安装:sudo yum install htop)是top的增强版,支持鼠标操作和颜色高亮。
  • vmstatvmstat 3每3秒输出一次系统资源使用情况(包括进程数、内存、CPU、磁盘I/O等)。
  • iostatiostat -x 1查看磁盘I/O详细信息(-x表示扩展模式,1表示每秒刷新)。
  • sarsar -u 1 3查看CPU使用率(-u表示CPU,1表示间隔1秒,3表示采集3次)。

5. 第三方监控工具(高级需求)

对于生产环境,建议使用专业的第三方监控工具,实现全面的性能追踪、错误报警和可视化。

  • Prometheus + Grafana
    • Prometheus:开源时间序列数据库,用于收集和存储监控指标。安装后配置prometheus.yml,添加Node.js应用的监控目标(如targets: ['localhost:9090'])。
    • Grafana:开源可视化工具,用于展示Prometheus中的数据。添加Prometheus为数据源,导入Node.js监控仪表盘(如Node Exporter dashboard),实现CPU、内存、请求延迟等的可视化。
  • New Relic/Datadog
    • New Relic:全栈APM工具,提供代码级性能分析、错误追踪和实时监控。安装newrelic Node.js代理(npm install newrelic --save),配置newrelic.js(填写许可证密钥和应用名称),重启应用后即可查看监控数据。
    • Datadog:云原生监控平台,支持Node.js应用的性能监控、日志管理和分布式追踪。安装dd-trace代理(npm install dd-trace --save),配置tracer.init()(设置服务名称),实现应用性能数据的自动收集。

6. 日志监控与分析

日志是排查问题的关键,可通过以下工具收集和分析Node.js应用日志:

  • ELK Stack(Elasticsearch + Logstash + Kibana)
    • Logstash:收集应用日志(编辑/etc/logstash/conf.d/nodejs.conf,配置文件输入路径和Elasticsearch输出)。
    • Elasticsearch:存储和索引日志数据(启动Elasticsearch服务:sudo systemctl start elasticsearch)。
    • Kibana:可视化日志数据(启动Kibana:sudo systemctl start kibana,访问http://localhost:5601,创建索引模式并设置可视化仪表盘)。
  • Winston/Bunyan:Node.js日志库,用于结构化日志记录(如添加时间戳、日志级别、请求ID等),方便后续分析。示例代码(使用Winston):
    const winston = require('winston');
    
    const logger = winston.createLogger({
    
      level: 'info',
      format: winston.format.json(),
      transports: [
        new winston.transports.File({
     filename: 'error.log', level: 'error' }
    ),
        new winston.transports.File({
     filename: 'combined.log' }
    ),
        new winston.transports.Console()
      ]
    }
        );
        
    logger.info('Application started');
        
    

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Node.js应用在CentOS如何监控
本文地址: https://pptw.com/jishu/745896.html
如何用Linux PgAdmin管理数据库 CentOS中Node.js如何设置环境变量

游客 回复需填写必要信息