神即道 道法自然 如来

node pm2工具使用

github:https://github.com/Unitech/pm2

PM2.5是一个通用的过程管理和对Node.js应用程序有一个内置的负载平衡器生产运行。

主要特点:

简单而有效的过程管理(启动/停止/启动/删除/显示/监控)
保持你的应用永远在线自动重新启动和系统初始化脚本生成
Node.js应用代码更改clusterize没有提高性能和可靠性
热加载Node.js应用没有额外的配置
从生产模式的应用很简单:

PM2 经过超过 1800 测试.

官方网站: http://pm2.keymetrics.io/

Linux(stable)和MacOS(stable)和Windows(stable)均有稳定的版本。

NPM

安装PM2:

PM2使你的应用程序长期以守护进程的形式驻留在后台,一直监控状态,并尝试永远保持运行状态。

更多关于流程管理:http://pm2.keymetrics.io/docs/usage/process-management/

管理过程

一旦开始使用PM2管理你的应用程序,你会发现竟然如此容易:

Process listing

列出正在被PM2管理的所有运行中的进程:

通过CLI模式,非常简单的管理你的应用程序:

查看一个指定应用的细节情况:

PM2有一个强大的可视化监控面板,为你提供监控日志,自定义指标,进程信息:

更多管理信息:http://pm2.keymetrics.io/docs/usage/process-management/

集群模式:Node.js的负载平衡和热加载

Cluster模式是一种特殊的模式。启动Node.js应用程序时,启动多个进程并在它们之间进行HTTP / TCP / UDP查询的负载平衡。 这提高了总体性能(在16核心机器上的x10倍)和可靠性(在未处理的错误情况下更快的插槽重新平衡)。

以集群模式启动Node.js应用程序,该应用程序将利用所有可用的CPU:

总进程可以是’max’,-1(全部cpu减1)或指定数量的实例启动。

热加载

Hot Reload允许在没有任何停机的情况下更新应用程序:

无缝支持所有主要的Node.js框架和任何Node.js应用程序,无需更改任何代码:

Framework supported

有关PM2如何使群集变得容易的更多信息:https://keymetrics.io/2015/03/26/pm2-clustering-made-easy/

容器的支持

使用称为pm2-runtime的节点drop-in替换命令,在适当的生产环境中运行Node.js应用程序。 我们也提供官方支持的Docker镜像。

无缝使用:

 

基于终端的监测

Monit
监视从命令行直接启动的所有进程:

使用SaaS监控PM2和应用程序

一旦您在生产环境中部署您的应用程序,您就可以使用我们的SaaS Monitoring进行外部监控,调试和配置。

要从终端开始监控应用程序:

更多关于PM2的监测:http://docs.keymetrics.io/

自定义

 

要获得关于应用程序行为方式的更多信息,请在代码中插入自定义指标,并使用pm2 monit命令监视它们:

在你的项目中安装pmx:

然后插入自定义项目:

然后在终端中查看:

公有的,计数器,直方图和仪表都可用。

日志

Monit

实时显示指定进程或所有进程的日志很容易:

标准,原始,JSON和格式化输出可用。
例子:

更多关于日志管理:http://pm2.keymetrics.io/docs/usage/log-management/

启动脚本生成

PM2可以生成并配置启动脚本,以在每次服务器重新启动时保持PM2和您的进程活动。

支持init系统,如:systemd(Ubuntu 16,CentOS,Arch),upstart(Ubuntu 14/12),launchd(MacOSx,Darwin),rc.d(FreeBSD)。

在重新启动时保存/冻结进程列表:

更多关于启动脚本:http://pm2.keymetrics.io/docs/usage/startup/

命令Cheatsheet

还请查看示例文件夹以发现所有功能:https://github.com/Unitech/pm2/tree/master/examples

更新PM2

PM2更新是无缝的

模块系统

PM2嵌入一个简单而强大的模块系统。 安装模块非常简单:

以下是一些PM2兼容模块(由PM2管理的独立Node.js应用程序):

pm2-logrotate自动轮换PM2和管理的应用程序的日志
pm2-webshell在浏览器中展示了一个功能齐全的终端
pm2-server-monit监视您的服务器运行状况

编写你自己的模块:http://pm2.keymetrics.io/docs/advanced/pm2-module-system/

Keymetrics监测

Keymetrics Dashboard

如果您使用PM2管理您的NodeJS应用程序,则Keymetrics可以轻松监控和管理跨服务器的应用程序。 随意尝试一下:

PM2的监控仪表板:https://app.keymetrics.io/#/register

预先感谢,我们希望你喜欢PM2!

点赞