介绍
PM2 是一个用于管理 Node.js 应用的生产流程的工具,它提供了进程管理、负载均衡、日志管理、故障恢复等功能。PM2-Monitor 和 PM2-Logrotate 分别是 PM2 的两个插件,它们可以帮助我们更好地监控和管理 Node.js 应用的运行状态和日志输出。
PM2-Monitor 可以让我们通过 Web 界面查看应用的 CPU、内存、网络等运行状态,并可以设置告警阈值,当应用运行状态异常时自动发送告警。PM2-Logrotate 可以帮助我们自动轮转日志文件,避免日志文件过大导致磁盘空间不足。
本文将介绍如何使用和配置 PM2-Monitor 和 PM2-Logrotate。
安装
安装 PM2-Monitor 和 PM2-Logrotate 非常简单,只需要在命令行中运行以下命令即可:
npm install pm2 -g pm2 install pm2-logrotate pm2 install pm2-server-monit
PM2-Monitor 的使用和配置
启动 PM2-Monitor
启动 PM2-Monitor 非常简单,只需要在命令行中运行以下命令即可:
pm2 monit
然后在浏览器中打开 http://localhost:9615/ 即可查看应用的运行状态。如果应用运行状态异常,可以在 PM2-Monitor 中设置告警阈值,当应用运行状态超过阈值时自动发送告警。
配置 PM2-Monitor
可以通过修改 PM2-Monitor 的配置文件来自定义一些配置项,配置文件的默认路径是 $HOME/.pm2/pm2-server-monit.json。
下面是一个 PM2-Monitor 配置文件的示例:
-- -------------------- ---- ------- - ------- ----- ----------- -------- ----------- --------- ------ ------ ---------- --- ----------- --- --------- --- -------- - ------ --- --------- --- ---------- - ----- ----- ----- ---- - - -
其中:
- port:PM2-Monitor 监听的端口号,默认为 9615。
- username 和 password:PM2-Monitor 的登录用户名和密码。
- ssl:是否启用 SSL,如果启用 SSL,则需要设置 ssl_key、ssl_cert 和 ssl_ca。
- alert:告警阈值,当应用运行状态超过阈值时自动发送告警。
通过 API 访问 PM2-Monitor
除了通过浏览器访问 PM2-Monitor 外,我们还可以通过 API 访问 PM2-Monitor,以便自动化监控和告警。
下面是一个通过 API 获取应用运行状态的示例:
-- -------------------- ---- ------- ----- ----- - ----------------- --------------------------------------- -------------- -- - --------------------------- -- ------------ -- - --------------------- ---
PM2-Logrotate 的使用和配置
启动 PM2-Logrotate
启动 PM2-Logrotate 非常简单,只需要在命令行中运行以下命令即可:
pm2 set pm2-logrotate:compress true pm2 set pm2-logrotate:rotateInterval '0 0 * * *' pm2 set pm2-logrotate:max_size 10M pm2 set pm2-logrotate:retain 5
其中:
- compress:是否启用压缩。
- rotateInterval:轮转时间间隔,支持 cron 表达式,默认为每天凌晨 0 点轮转。
- max_size:单个日志文件的最大大小,默认为 10M。
- retain:保留的日志文件数量,默认为 5。
配置 PM2-Logrotate
可以通过修改 PM2-Logrotate 的配置文件来自定义一些配置项,配置文件的默认路径是 $HOME/.pm2/pm2-logrotate.json。
下面是一个 PM2-Logrotate 配置文件的示例:
-- -------------------- ---- ------- - ----------- ----- ----------------- -- - - - --- ----------- ------ --------- -- --------------- ----- ----------------- --- ------------- ---------------------- -------------- -- ---------------- ----- --------------- ------ --------------- ------ ----------------- ----- -
其中:
- compress、rotateInterval、max_size 和 retain:同上。
- rotateModule:是否启用轮转模块。
- workerInterval:轮转模块的间隔时间,单位为秒,默认为 30。
- dateFormat:日志文件名的日期格式,默认为 YYYY-MM-DD_HH-mm-ss。
- workerCount:轮转模块的工作线程数,默认为 1。
- rotateOnError:是否在发生错误时轮转日志文件。
- rotateOnSize:是否在日志文件超过最大大小时轮转日志文件。
- rotateOnOpen:是否在日志文件被打开时轮转日志文件。
- rotateOnReboot:是否在系统重启时轮转日志文件。
总结
本文介绍了如何使用和配置 PM2-Monitor 和 PM2-Logrotate,它们可以帮助我们更好地监控和管理 Node.js 应用的运行状态和日志输出。通过本文的学习,读者可以更好地掌握 PM2 的使用和配置技巧,提高 Node.js 应用的生产环境部署和管理能力。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/657fa0e3d2f5e1655da7b2f0