教程 pm2 tutorial

PM2 启用监控

在生产环境中,监控是确保 Node.js 应用稳定运行的重要手段。PM2 提供了强大的监控功能,可以实时查看应用的 CPU 使用、内存使用、进程状态等性能指标。通过启用监控,你可以及时发现潜在问题,并做出调整以提高应用的稳定性和效率。

1. 启用监控功能

PM2 提供了内置的监控工具,可以帮助你实时查看应用的性能指标。通过使用 pm2 monit 命令,你可以看到所有正在运行的应用的 CPU 和内存使用情况,以及每个进程的实时状态。

启用监控命令

bash
pm2 monit

运行此命令后,PM2 会打开一个终端界面,显示各个进程的实时资源使用情况,包括:

  • CPU:每个进程使用的 CPU 百分比。
  • Memory:每个进程使用的内存量。
  • Uptime:每个进程的运行时长。
  • Status:进程的当前状态(如 online 或 stopped)。

示例输出

txt
┌─────┬──────────────┬────────┬───┬──────┬────────┬───┬─────────────┬─────────────┐
│ id  │ name         │ mode   │ ↺ │ status│ cpu    │ memory │ uptime     │
├─────┼──────────────┼────────┼───┼──────┼────────┼───┼─────────────┼─────────────┤
│ 0   │ my-app       │ fork   │ 3 │ online│ 0.5%   │ 50MB  │ 2h          │
└─────┴──────────────┴────────┴───┴──────┴────────┴───┴─────────────┴─────────────┘

解释

  • id:进程的唯一标识符。
  • name:应用的名称。
  • mode:进程的启动模式(fork 或 cluster)。
  • ↺:进程的重启次数。
  • status:进程的当前状态(online、stopped)。
  • cpu:进程当前的 CPU 使用率。
  • memory:进程当前的内存使用量。
  • uptime:进程的运行时长。

2. 启用实时日志监控

除了查看资源使用情况外,PM2 还提供了实时日志监控功能,可以帮助你查看应用的输出和错误日志。使用 pm2 logs 命令,你可以查看所有应用的日志信息,或者只查看特定应用的日志。

查看所有应用日志

bash
pm2 logs

查看特定应用的日志

bash
pm2 logs my-app

查看错误日志

如果你只关心应用的错误日志,可以使用 --err 参数:

bash
pm2 logs my-app --err

3. 配置监控参数

PM2 还允许你通过配置文件定制监控设置,例如监控日志的保存周期和最大日志大小。你可以通过 ecosystem.config.js 文件来配置监控相关的参数。

示例配置文件

javascript
module.exports = {
  apps: [
    {
      name: 'my-app',
      script: './app.js',
      log_date_format: 'YYYY-MM-DD HH:mm:ss', // 日志日期格式
      max_size: '10M', // 单个日志文件最大 10MB
      retain: 7,       // 保留 7 个滚动日志文件
      watch: true,     // 启用文件监控
    },
  ],
};

在上述配置中:

  • log_date_format:设置日志的日期格式。
  • max_size:设置日志文件的最大大小,超过此大小会滚动。
  • retain:设置最大日志保留数量,超过的日志文件会被删除。
  • watch:启用文件监控,自动重启应用时会检测文件变化。

启动应用

bash
pm2 start ecosystem.config.js

4. 启用警报和通知

PM2 的监控功能不仅可以实时查看资源使用,还可以与外部工具集成,发送警报或通知。你可以配置 PM2 在应用达到一定负载时发送通知,帮助你及时采取行动。

配置第三方工具

PM2 支持与第三方监控工具(如 Keymetrics)集成。Keymetrics 是 PM2 提供的监控平台,能够在 Web 界面上实时展示应用的状态和性能指标。

  • 要使用 Keymetrics 监控平台,首先需要在 PM2 中配置你的 Keymetrics API 密钥。
bash
pm2 link <public-key> <private-key>

查看 Keymetrics 仪表盘

通过 Keymetrics,你可以在 Web 上查看应用的实时数据、历史性能指标、警报通知等。

5. 结语

PM2 的监控功能为 Node.js 应用提供了全面的资源监控、日志管理和报警通知机制。通过启用 PM2 监控,你可以实时了解应用的性能情况,及时发现问题并优化资源使用。

无论是通过 pm2 monit 命令实时查看应用的资源使用,还是通过集成外部监控平台来获取更详细的数据,PM2 都为开发者提供了强大的工具,帮助你保持应用的高效运行和稳定性。