当前位置:

首页 > 编程开发 > Node.js 在 Linux 上如何监控

Node.js 在 Linux 上如何监控

Node.js在Linux上的监控实践分为五个层次:应用进程与业务指标、系统资源、日志链路、指标可视化及性能剖析。借助PM2管理进程并输出内存与CPU指标,结合系统工具top、vmstat等监控资源,采用结构化日志配合ELK或APM工具实现可观测性,最终通过ChromeDevTools定位性能热点。

Node.js 在 Linux 上的监控实践

Node.js 在 Linux 上如何监控

监控这件事,说复杂也复杂,说简单也简单。关键是把层次拆清楚,工具选对,流程跑通。下面从整体思路开始,一步步落地。

一 监控分层与总体思路

监控可以从五个维度来看:先是应用进程和业务指标——用 PM2 管理进程、查看资源、收集日志,或者在代码里用 process 模块把关键指标输出来。然后是系统资源层,用 top/htop、vmstat、iostat、free、df 盯住 CPU、内存、磁盘 I/O 和文件系统。第三层是日志链路,Winston、Bunyan、Pino 这类结构化日志工具是标配,配上 ELK(Elasticsearch/Logstash/Kibana)、Graylog 或 Splunk 做检索和可视化,排查问题效率会高很多。第四层是指标与可视化,可以自建 Prometheus + Grafana 看板,也可以直接用 New Relic、Datadog 这些 APM 服务。最后是性能剖析,用 node --inspect 配合 Chrome DevTools 做 CPU 和内存分析,精准定位热点和泄漏。

二 快速上手 PM2 与应用内监控

PM2 是 Node 生态里最常用的进程管理工具,没有之一。下面几个步骤就能把监控基础搭起来。

安装与启动

  • 安装:sudo npm install -g pm2
  • 启动:pm2 start app.js --name my-app
  • 常用命令:pm2 list(查看进程列表)、pm2 monit(实时资源监控)、pm2 logs my-app(查看日志)、pm2 startup(设置开机自启)、pm2 sa ve(持久化当前进程列表)

进程守护与服务编排

用 systemd 管理 Node 服务是个更稳妥的方案——在服务配置里加上 Restart=always,进程崩溃后自动重启。配合 PM2 做多实例和负载均衡,生产环境基本就稳了。

应用内指标示例

在代码里输出一些关键指标非常实用:process.memoryUsage() 可以拿到常驻内存和堆大小,process.cpuUsage() 得到用户态和内核态的 CPU 时间。这些数据跟系统层的指标一对照,哪个环节出问题一目了然。

三 系统级监控与网络诊断

系统工具虽然古老,但老家伙们往往最靠谱。遇到卡顿或高负载,先翻它们的牌。

  • 资源总览与进程定位:top/htop 按 CPU% 或 MEM% 排序,立刻找到哪个 Node 进程在吃资源。
  • 深入系统:vmstat 3 给出进程、内存、I/O、CPU 的概览;iostat -x 能看出磁盘 I/O 是不是瓶颈;free -m 看内存使用详情;df -h 检查磁盘空间。
  • 历史与综合:sar -u 1 3 看 CPU 使用率,sar -r 1 看内存,前提是装了 sysstat 包。
  • 网络与进程流量:nethogs 可以按进程显示带宽占用,iftop 则按连接看实时流量——排查网络波动时特别好用。

四 日志与 APM 的可观测性方案

日志和 APM 是“看见”系统运行状态的两只眼睛。结构化日志让查询变得像在数据库里做 SQL,APM 则帮你画出调用链路和依赖地图。

结构化日志

  • 库选型:Winston、Bunyan、Pino 三选一,输出 JSON 格式,带上 requestId、userId 等上下文,后续检索聚合效率翻倍。
  • 传输与存储:日志可以写到控制台、文件,或者通过 HTTP 发送出去。集中到 ELK、Graylog 或 Splunk 后,画图表、设告警都很方便。

APM 与可视化

  • 商业与托管:New Relic、Datadog 这类 APM 工具开箱即用,事务追踪、错误聚合、依赖地图、仪表盘一应俱全。
  • 自建可观测性:用 Prometheus 采集自定义指标,比如 HTTP 延迟、事件循环延迟、内存和 GC 数据,再配上 Grafana 做可视化看板,还能设置阈值告警。自己掌控,灵活度更高。

五 性能剖析与故障定位

当线上真的出了性能问题,光靠日志和 stats 可能还不够,得掏出更锋利的工具做定点排查。

CPU/内存热点定位

带上 --inspect 参数启动应用:node --inspect app.js,然后用 Chrome DevTools 的 Performance 和 Memory 面板做 CPU 采样、内存快照。配合 PM2 monit 和系统 top/htop 观察资源变化,修复后马上能验证效果。

快速排查清单

总结一个实用的排查流程:先看 PM2 日志和异常堆栈,定位错误或异常;再看系统资源(CPU、内存、磁盘、网络)有没有异常波动;接着用 DevTools 做 CPU 采样或内存快照,找到热点代码或泄漏点;最后回归业务指标——延迟、吞吐、错误率,确认恢复。按这个顺序走,大部分问题都能快速锁定。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 Linux
相关文章 更多
ServBay安装配置详细教程与操作指南
ServBay安装配置详细教程与操作指南

新手入门 ServBay 本地开发环境,详解安装包下载、Dashboard 状态监控、Packages 组件安装、Services 服务控制及 Websites 项目配置。掌握 .servbay.config 版本管理与日志排查技巧,快速搭建稳定的 PHP、Node.js 等多语言开发环境。

codekit环境配置指南从安装到环境搭建完整教程
codekit环境配置指南从安装到环境搭建完整教程

详解 CodeKit 在 macOS 下的安装步骤、项目导入方法、Sass与JavaScript编译设置及浏览器自动刷新功能,助您快速搭建高效的前端开发环境。

codex安装windows 命令行完整操作教程
codex安装windows 命令行完整操作教程

详解Windows环境下安装OpenAI Codex CLI的步骤,包括WSL环境检查、Node.js/npm配置、npm全局安装命令及首次启动验证,适合开发者快速上手。

NativeRest环境配置要求与完整操作教程
NativeRest环境配置要求与完整操作教程

学习如何配置 NativeRest REST API 客户端。涵盖 Windows/macOS/Linux 安装后的工作区创建、环境变量管理、请求编辑及响应查看步骤,帮助开发者快速完成基础环境搭建与连通性测试。

CSS设置透明度的注意事项有哪些?opacity属性详解
CSS设置透明度的注意事项有哪些?opacity属性详解

深入解析CSS中设置透明度的核心属性opacity,剖析子元素继承、事件穿透、层叠上下文等关键注意事项,并提供与rgba、hsla的实用选型对比。

flutter页面传值到后台的方法及示例代码
flutter页面传值到后台的方法及示例代码

flutter页面传值到后台的完整实现方法及示例代码,帮助读者快速掌握相关技术要点。

Java 8至21新特性代码写法对比:Lambda、Record与Switch
Java 8至21新特性代码写法对比:Lambda、Record与Switch

本文通过具体的旧版与新版代码对比,详细剖析Java 8引入的Lambda表达式、Java 14/16引入的Record类,以及Java 12至21逐步演进完善的Switch表达式与模式匹配,展示代码简化路径与避坑要点。

AI智能体开发培训课程学什么及实战内容介绍
AI智能体开发培训课程学什么及实战内容介绍

系统梳理AI智能体开发培训的核心知识模块、技术栈选型与典型实战项目,解析低代码平台与纯代码框架的差异,提供从零构建可落地智能体的完整学习与实施路径。

Java子类未实现抽象方法编译错误修复指南
Java子类未实现抽象方法编译错误修复指南

针对Java开发中常见的“子类未实现抽象方法”编译错误,深入分析报错原因,提供重写实现、声明抽象子类两种标准修复路径,并总结参数签名、访问修饰符等典型避坑要点。

解决PHP递归报错:max_nesting_level限制与内存溢出处理
解决PHP递归报错:max_nesting_level限制与内存溢出处理

遇到PHP递归报错时,不要盲目调大max_nesting_level。本文教你区分Xdebug限制、内存耗尽和正则递归错误,提供代码级的终止条件优化与迭代替代方案,彻底解决栈溢出问题。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
Shapr3D macOS版
Shapr3D macOS版
Mac

Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。

REAPER macOS版
REAPER macOS版
Mac

REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。

Ableton Live macOS版
Ableton Live macOS版
Mac

Ableton Live 是面向音乐制作人与现场表演者的数字音频工作站,提供编曲视图、独具特色的现场视图、音频录制、MIDI创作、实时变速、乐器及效果器。Mac版原生支持Apple芯片,并可连接音频接口、MIDI控制器和第三方插件。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)
Windows

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。