centos

Node.js在CentOS上如何监控

小樊
42
2025-06-14 07:20:46
栏目: 编程语言

在CentOS上监控Node.js应用有多种方法,以下是一些常用的工具和步骤:

使用PM2进行应用监控

PM2是一个流行的Node.js进程管理工具,它不仅可以管理Node.js应用的启动、停止和重启,还提供了丰富的监控功能。

  1. 安装PM2

    sudo npm install -g pm2
    
  2. 启动应用

    pm2 start app.js
    
  3. 查看进程状态

    pm2 list
    
  4. 监控资源消耗

    pm2 monit
    
  5. 日志管理

    pm2 logs
    
  6. 自动重启与持久化

    pm2 startup
    pm2 save
    

使用Prometheus和Grafana进行系统监控

Prometheus是一个开源的监控系统和时间序列数据库,而Grafana是一个开源的分析和监测平台。结合使用它们可以监控整个系统的性能指标。

  1. 安装Prometheus

    wget https://github.com/prometheus/prometheus/releases/download/v2.35.0/prometheus-2.35.0.linux-amd64.tar.gz
    tar xvfz prometheus-2.35.0.linux-amd64.tar.gz
    mv prometheus-2.35.0.linux-amd64 prometheus
    cd prometheus
    ./prometheus --config.file prometheus.yml
    
  2. 安装Grafana

    wget https://dl.grafana.com/oss/release/grafana-8.2.0.linux-amd64.tar.gz
    tar -zxvf grafana-8.2.0.linux-amd64.tar.gz
    sudo mv grafana-8.2.0 /opt/grafana
    
  3. 启动Grafana

    ./bin/grafana-server
    
  4. 配置Prometheus抓取Node.js应用的指标: 编辑 /etc/prometheus/prometheus.yml 文件,添加抓取配置:

    scrape_configs:
      - job_name: 'node'
        static_configs:
          - targets: ['localhost:9100']
    

    这里假设Node.js应用暴露了 /metrics 端点,可以使用 node_exporter 来抓取这些指标。

使用Node.js内置的process模块和第三方库

Node.js提供了内置的 process 模块来获取进程信息,如CPU使用率和内存使用情况。此外,还可以使用第三方库如 express-status-monitor 来提供实时的服务器性能指标和健康检查。

const os = require('os');
const cpuUsage = process.cpuUsage();
console.log(`CPU使用率: ${cpuUsage.user} ${cpuUsage.system}%`);

const express = require('express');
const statusMonitor = require('express-status-monitor');
const app = express();
app.use(statusMonitor());
app.listen(3000);

使用系统监视器命令

CentOS提供了一系列系统监视器命令,如 tophtopvmstatiostatfreesar 等,可以用来监控系统性能和资源使用情况。

top
htop
vmstat
iostat -x /dev/hdb6
free -m
sar -u 1 3

使用APM工具

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

通过上述方法,可以有效地监控CentOS上的Node.js应用的性能和健康状况。选择合适的工具和方法取决于具体的监控需求和场景。对于生产环境,通常建议使用PM2这样的进程管理器,因为它提供了全面的监控和管理功能。而对于开发和测试环境,使用内置的process模块或者简单的日志分析可能就足够了。

0
看了该问题的人还看了