在CentOS上监控Node.js应用有多种方法,以下是一些常用的工具和步骤:
PM2是一个流行的Node.js进程管理工具,它不仅可以管理Node.js应用的启动、停止和重启,还提供了丰富的监控功能。
安装PM2:
sudo npm install -g pm2
启动应用:
pm2 start app.js
查看进程状态:
pm2 list
监控资源消耗:
pm2 monit
日志管理:
pm2 logs
自动重启与持久化:
pm2 startup
pm2 save
Prometheus是一个开源的监控系统和时间序列数据库,而Grafana是一个开源的分析和监测平台。结合使用它们可以监控整个系统的性能指标。
安装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
安装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
启动Grafana:
./bin/grafana-server
配置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
模块来获取进程信息,如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提供了一系列系统监视器命令,如 top
、htop
、vmstat
、iostat
、free
、sar
等,可以用来监控系统性能和资源使用情况。
top
htop
vmstat
iostat -x /dev/hdb6
free -m
sar -u 1 3
APM(Application Performance Management)工具可以帮助你监控Node.js应用程序的性能,包括CPU使用率、内存使用量、垃圾收集、事件循环和面向用户的延迟等。流行的APM工具包括New Relic、Datadog、App Metrics等。
通过上述方法,可以有效地监控CentOS上的Node.js应用的性能和健康状况。选择合适的工具和方法取决于具体的监控需求和场景。对于生产环境,通常建议使用PM2这样的进程管理器,因为它提供了全面的监控和管理功能。而对于开发和测试环境,使用内置的process模块或者简单的日志分析可能就足够了。