介绍
Node.js 是当前 Web 开发中最流行的工具之一,但是当我们的应用需要交付线上时,我们就会面临一个困境,那就是如何对 Node.js 应用进行实时监控,及及时发现并解决问题。本文将介绍如何使用 PM2 对 Node.js 应用进行监控,以及对线上应用出现问题时如何进行定位和解决。
PM2 简介
PM2 是一个 Node.js 进程管理器,可以让我们在生产环境下优雅地管理 Node.js 应用,在多进程和负载均衡方面表现尤为突出。同时它还具有监听应用日志、监控应用资源使用情况等功能。
监控 Node.js 应用
在 Node.js 应用中引入 pm2 依赖后,我们就可以使用以下命令启动应用。
pm2 start app.js
在线上环境中我们通常会使用以下命令启动应用:
pm2 start app.js --name my_app -i max
其中 -i max
表示将根据 CPU 内核数进行开启多个应用进程,并自动平衡分配请求, 这样就可以防止出现应用崩溃等问题。
PM2 监控
在成功启动应用后,可以使用以下命令启动 PM2 监控:
pm2 monit
这样就可以在命令行中实时监视进程的 CPU、内存等资源使用情况。
同时,我们还可以通过 PM2 内置 Web 化面板进行监控:
pm2 web
通过访问 http://localhost:9615
,即可进入 PM2 Web 面板,通过面板我们可以更直观地管理和监控应用。
PM2 日志
在默认情况下,PM2 会将应用日志输出到标准输出流,我们可以通过查看应用进程的详情来查看应用的日志信息:
pm2 logs my_app
同时,我们还可以使用以下命令将日志信息输出到指定文件:
pm2 start app.js --name my_app --log my-app.log
PM2 Restart 策略
在应用运行过程中,由于某些原因(例如代码更新)我们需要重启应用,可以使用以下命令进行重启:
pm2 restart my_app
同时,由于重启时间可能会很长,会对正在访问应用的用户造成不便,因此,对于生产环境,我们通常可以设置 PM2 的 restart-delay
参数,来实现优雅重启:
pm2 start app.js --name my_app --restart-delay=3000
在重启时,PM2 会等待 restart-delay
参数中设置的毫秒数,等待正在访问应用的用户请求全部处理完毕后,再进行重启。
总结
本文简要介绍了如何使用 PM2 来进行 Node.js 应用监控,希望对读者在实际开发中对 Node.js 应用的监控有所帮助。同时,在使用 PM2 时,我们还应注意到一些安全问题,例如 PM2 默认监听的端口可能易被攻击,需要定期更换密码等。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64d2fe00b5eee0b525a6c5b4