首页主机资讯CentOS Node.js项目如何监控

CentOS Node.js项目如何监控

时间2025-12-04 13:00:04发布访客分类主机资讯浏览368
导读:CentOS 上 Node.js 项目监控实操指南 一 监控分层与总体思路 进程与可用性:确保进程存活、自动重启、快速定位异常,常用 PM2 或 systemd。 系统资源:CPU、内存、磁盘 I/O、网络等,使用 top/htop、vm...

CentOS 上 Node.js 项目监控实操指南

一 监控分层与总体思路

  • 进程与可用性:确保进程存活、自动重启、快速定位异常,常用 PM2systemd
  • 系统资源:CPU、内存、磁盘 I/O、网络等,使用 top/htop、vmstat、iostat、free、sar、nmon、glances 等命令。
  • 应用指标与链路:QPS、延迟、错误率、GC、事件循环等,使用 Prometheus + GrafanaNew Relic/Datadog 等 APM。
  • 日志:结构化日志与检索分析,使用 Winston/Bunyan + ELK(Elasticsearch/Logstash/Kibana) 或等效方案。
  • 健康检查与告警:暴露 /health 端点,结合 Uptime Kuma 或告警规则实现可视化与通知。

二 快速上手 PM2 与应用内指标

  • 安装与启动
    • 安装:sudo npm install pm2 -g
    • 启动:pm2 start app.js --name my-app
    • 常用:pm2 statuspm2 monitpm2 logs my-apppm2 startuppm2 save
  • 应用内基础指标
    • 内存与 CPU:process.memoryUsage()process.cpuUsage()
    • HTTP 指标示例(使用 prom-client
      • 安装:npm i prom-client
      • 代码示例:
        • const client = require(‘prom-client’);
        • const http = require(‘http’);
        • const server = http.createServer((req,res)=> { res.end(‘OK’); } );
        • const histogram = new client.Histogram({ name: ‘http_request_duration_seconds’, help: ‘Duration of HTTP requests in seconds’, labelNames: [‘method’,‘route’,‘code’], buckets: [0.01,0.05,0.1,0.5,1,2,5] } );
        • server.listen(3000, ()=> console.log(‘Metrics on :3000/metrics’));
        • server.on(‘request’, (req,res)=> { const end = client.timerEnd(histogram, [req.method, req.url, res.statusCode]); res.on(‘finish’, end); } );
  • 建议:为生产环境启用 PM2 开机自启日志轮转,便于持续观测与故障回溯。

三 系统级监控与日志分析

  • 系统资源
    • 安装与常用命令:
      • htopsudo yum install htop -yhtop
      • sysstatsudo yum install sysstat -ysar -u 1 3(CPU)、sar -r 1(内存)
      • nmonsudo yum install nmon -ynmon
      • glancessudo yum install glances -yglances
  • 日志
    • 结构化日志:使用 Winston 输出到文件与控制台,便于检索与聚合。
    • 集中分析:部署 ELK(Elasticsearch/Logstash/Kibana),Logstash 采集 Node.js 日志并写入 ES,在 Kibana 中建立索引与可视化。

四 Prometheus Grafana 与 APM 集成

  • Prometheus + Grafana
    • 安装与启动(示例):sudo yum install prometheus -y;编辑 /etc/prometheus/prometheus.yml 添加抓取目标(如应用 /metrics :3000/metrics);sudo systemctl start prometheus
    • Grafana:安装并启动 grafana-server;添加 Prometheus 数据源,导入 Node.jsExpress 仪表盘模板,展示 QPS、延迟、错误率、内存、GC 等。
  • APM 与商业监控
    • New Relic:安装 newrelic 并配置 licenseKeyapp_name,在 APM 控制台查看事务、错误、慢查询与依赖调用。
    • Datadog:通过 Node.js 集成采集指标与日志,结合丰富告警策略实现全链路可观测。

五 健康检查与告警实践

  • 健康检查端点
    • 代码示例:
      • const http = require(‘http’);
      • http.createServer((req,res)=> { if (req.url === ‘/health’) return res.end(‘OK’); // … 正常路由 } ).listen(3000, ()=> console.log(‘Health on :3000/health’));
  • 进程守护与系统服务
    • systemd 服务示例(/etc/systemd/system/my-app.service):
      • [Unit] Description=Node.js App; After=network.target
      • [Service] User=your-user; WorkingDirectory=/path/to/app; ExecStart=/usr/bin/node /path/to/app/app.js; Restart=always; Environment=NODE_ENV=production
      • [Install] WantedBy=multi-user.target
    • 运维:sudo systemctl daemon-reloadstart/enable/status;日志:journalctl -u my-app
  • 可用性与可视化告警
    • Uptime Kuma:自托管状态监控与通知(如 Telegram/Discord/Slack),定时探测 /health 或端口连通性,面板直观展示在线率与响应时间。

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


若转载请注明出处: CentOS Node.js项目如何监控
本文地址: https://pptw.com/jishu/763452.html
CentOS上Node.js如何进行版本管理 CentOS与SQL Server的兼容版本有哪些

游客 回复需填写必要信息