在 PM2 中如何监控 CPU 和内存使用情况

在一个 Web 应用需要部署到生产环境时,我们希望能够监控到应用的性能和健康状况,以便及时发现问题并进行相应的调整。在 PM2 中,我们可以通过一些简单的配置,实现对应用的 CPU 和内存使用情况进行监控,本篇文章将为大家介绍如何实现。

1. PM2 简介

PM2 是一个流行的 Node.js 进程管理工具,它可以管理我们的 Node.js 应用,并提供了丰富的功能,如:

  • 应用进程管理(启动、停止、重启)
  • 进程守护(自动重启)
  • 进程监控(CPU、内存、日志)
  • 环境变量管理
  • 负载均衡等

在本文中,我们主要关注 PM2 中的进程监控功能。

2. PM2 进程监控

PM2 中包含一个内置的监控工具,称为 PM2 Monit,可以通过 pm2 monit 命令启动。PM2 Monit 在浏览器中打开,可以方便地查看每个进程的 CPU 和内存使用情况。

但是,通过 PM2 Monit 手动监控每个进程的 CPU 和内存使用情况显然不太可行,我们应该使用 PM2 提供的一些自动化工具。

3. PM2 自动化监控

通过 PM2 的日志,我们可以获取到每个进程的 CPU 和内存使用情况,进而进行监控和分析,具体实现步骤如下:

1. 配置 PM2 日志

我们需要在 PM2 配置中增加日志记录的配置。打开命令行窗口,进入你的应用根目录,并使用以下命令来为你的应用配置日志记录:

--- --- ---------------------- -
--- --- ------------------ ---

这段代码的作用是配置 PM2 每想 1 天(1)或文件大小超过 10MB(10M)时,自动将当前日志文件备份。我们可以根据自己的需求调整这些值。

2. 安装 pm2-server-monit

pm2-server-monit 是一个 PM2 的插件,它可以自动收集每个进程的 CPU 和内存使用情况,并将数据存储在 SQLite 数据库中,以方便查询和分析。可以通过以下命令安装该插件:

--- ------- ----------------

3. 配置 pm2-server-monit

安装完成后,我们需要对 pm2-server-monit 进行一些配置。

在应用根目录下的 ecosystem.config.js 文件中,加入以下配置:

-
  ------- --
    ------- ---------
    --------- ---------
    ---
    ------ -
      ----------- -------------
      -------------- -----
      ----------------- -----
      ------------------- -- -- -----------
    -
  ---
  -------- -
    -------------- ---- ------ ---------------- -- ------
    --------------- ---- ----- -----------------
  -
-

其中,MONITOR_CPUMONITOR_MEMORY 用于启用 CPU 和内存使用情况监控。MONITOR_INTERVAL 配置了监听的时间间隔,默认为 10 秒。

hooks 部分的配置可以使得每当重启应用时,自动删除旧的 pm2-server-monit 进程,并启用新的进程。

4. 查看数据

监控数据可以通过以下 URL 访问:

-------------------------------

结论

完成以上步骤后,我们就能够通过 PM2 实现对 Node.js 应用的 CPU 和内存使用情况进行监控了。这对于把 Node.js 应用部署到生产环境中,是十分重要的一步。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6734605d0bc820c58248b558