介绍
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 配置文件的示例:
// javascriptcn.com 代码示例 { "port": 9615, "username": "admin", "password": "123456", "ssl": false, "ssl_key": "", "ssl_cert": "", "ssl_ca": "", "alert": { "cpu": 80, "memory": 80, "network": { "rx": 1024, "tx": 1024 } } }
其中:
- 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 获取应用运行状态的示例:
// javascriptcn.com 代码示例 const axios = require('axios'); axios.get('http://localhost:9615/data') .then(response => { console.log(response.data); }) .catch(error => { console.error(error); });
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 配置文件的示例:
// javascriptcn.com 代码示例 { "compress": true, "rotateInterval": "0 0 * * *", "max_size": "10M", "retain": 5, "rotateModule": true, "workerInterval": 30, "dateFormat": "YYYY-MM-DD_HH-mm-ss", "workerCount": 1, "rotateOnError": true, "rotateOnSize": false, "rotateOnOpen": false, "rotateOnReboot": false }
其中:
- 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