发布于2026-07-13 阅读(0)
扫一扫,手机访问
生产环境中,Node.js 应用的监控从来不是单点问题——进程活着不代表业务正常,业务正常也不代表系统健康。一个完整的监控体系,需要从进程、指标、日志、链路和系统资源几个层面分层覆盖。下面直接梳理一套在 Debian 上可落地的方案,既有快速上手步骤,也有进阶诊断思路。
sudo npm install pm2 -g → pm2 start app.js --name "my-app" → pm2 status / pm2 monit / pm2 logs。/etc/systemd/system/my-app.service,关键字段:ExecStart=/usr/bin/node /path/to/app.js、Restart=always、Environment=NODE_ENV=production;然后 sudo systemctl enable --now my-app,查看状态用 sudo systemctl status my-app,实时日志用 journalctl -u my-app -f。curl http://localhost:3000/health 探活。sudo apt install logrotate,配置 /etc/logrotate.d/nodejs:/path/to/your/nodejs/app/*.log { daily; rotate 7; compress; missingok; notifempty; create 0640 root adm }sudo apt install netdata,然后访问 http://sudo apt install prometheus grafana(Debian 仓库或官方包均可)。prom-client 库,比如自定义一个请求时延直方图:const promClient = require('prom-client');const httpRequestDurationMicroseconds = new promClient.Histogram({ name: 'http_request_duration_ms', help: 'Duration of HTTP requests in ms', labelNames: ['method','route','code'], buckets: [0.1,5,15,50,100,200,300,400,500] });res.on('finish', () => { const d = Date.now()-start; httpRequestDurationMicroseconds.labels(req.method, req.route, res.statusCode).observe(d); });/etc/prometheus/prometheus.yml,添加 job:scrape_configs: - job_name: 'nodejs' static_configs: [ { targets: ['localhost:3000'] } ] - job_name: 'node' static_configs: [ { targets: ['localhost:9100'] } ]如果团队不想从头搭建链路追踪,直接上 New Relic 或 Datadog 的 Node.js Agent。安装后配置应用名和许可证密钥,控制台里就能看到吞吐量、错误率、慢事务和依赖调用——对业务瓶颈定位非常高效。
开发或预发环境,还可以用 v8-profiler、heapdump 生成 CPU 火焰图和堆快照,导入 Chrome DevTools 分析内存泄漏和热点路径。这些工具不推荐上生产,但压测时配合使用,效果立竿见影。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8