PM2 警报设置
在生产环境中,及时了解应用的运行状况对于维持服务的高可用性至关重要。PM2 提供了强大的警报设置功能,当应用达到预设的阈值时,可以自动触发警报并通知开发者。这有助于快速响应系统问题,避免潜在的服务中断。
1. 启用警报功能
PM2 允许你设置监控警报,帮助你实时获取应用的异常情况。例如,当应用的 CPU 使用率或内存使用量超出预定阈值时,PM2 会自动触发警报并通知你。
配置警报阈值
警报可以通过 PM2 配置文件或直接通过命令行设置。当某个进程的资源使用超过指定的阈值时,PM2 会自动触发警报。常见的警报触发条件包括:
- CPU 使用率超限:当进程的 CPU 使用率超过设定的阈值时。
- 内存使用量超限:当进程的内存使用量超过设定的阈值时。
- 进程崩溃:当进程崩溃或异常退出时。
示例:设置 CPU 和内存阈值
可以通过 ecosystem.config.js 文件设置应用的警报阈值:
module.exports = {
apps: [
{
name: 'my-app',
script: './app.js',
max_memory_restart: '200M', // 当应用内存超过 200MB 时重启
min_uptime: 5000, // 最小运行时间,防止频繁重启
max_restarts: 10, // 最大重启次数
watch: true, // 启用文件监控
env: {
NODE_ENV: 'production',
},
},
],
};在此配置中:
- max_memory_restart:当应用内存使用量超过 200MB 时,PM2 会自动重启应用。
- min_uptime:应用的最小运行时间,确保应用运行一段时间后才允许重启。
- max_restarts:最多允许 10 次自动重启,避免过度重启。
启动应用
pm2 start ecosystem.config.js2. 启用外部通知与警报
除了本地警报,PM2 还支持与外部通知系统集成。通过集成第三方通知服务,PM2 可以在应用达到警报条件时发送邮件、短信、Slack 消息等通知,确保你能及时收到警报并处理。
集成 Keymetrics
PM2 提供了与 Keymetrics 的集成,Keymetrics 是 PM2 的监控平台,可以向你发送详细的警报信息。当应用出现异常时,Keymetrics 会通过邮件、短信等方式发送警报通知。
要启用 Keymetrics 警报通知,首先需要连接 PM2 和 Keymetrics:
pm2 link <public-key> <private-key>然后,你可以在 Keymetrics 的 Web 平台上配置警报规则,设置 CPU 使用率、内存使用量等阈值。当这些阈值被触发时,Keymetrics 会通知你。
集成其他工具
除了 Keymetrics,PM2 还可以与其他第三方监控和通知工具集成,比如 Slack、PagerDuty 或 OpsGenie 等。通过集成这些工具,PM2 可以在应用异常时通过消息通知、电话或短信等多种方式及时提醒开发者。
3. 警报通知类型
根据不同的配置,PM2 可以发送以下几种类型的通知:
1. CPU 和内存使用警报
当应用的 CPU 或内存使用超过设定阈值时,PM2 会触发警报并通知相关人员,确保你能及时发现性能瓶颈并进行优化。
2. 进程崩溃警报
当进程崩溃时,PM2 会立即重启该进程,并通过设置的通知渠道(如邮件、Slack)告知你应用出现问题。
3. 重启次数警报
如果应用的重启次数超过预定阈值,PM2 会发送警报。过度的重启通常是应用出现严重问题的迹象。
4. 查看警报状态
PM2 本身不会直接显示警报日志,但你可以通过 pm2 monit 查看应用的实时状态,并根据进程的 CPU 和内存使用情况做出调整。你还可以通过配置 pm2 logs 来查看应用的详细日志,帮助定位问题。
pm2 logs my-app5. 结语
PM2 提供了强大的警报设置功能,可以帮助你实时监控 Node.js 应用的资源使用情况,并在出现异常时及时通知你。通过设置合理的警报阈值,你可以及时发现应用的性能瓶颈、进程崩溃或其他潜在问题,确保服务的高可用性和稳定性。
无论是通过本地设置还是与第三方通知平台的集成,PM2 的警报功能使得开发者可以高效地管理应用的健康状态,并做出快速响应。