PM86 - Node.js 项目监控私有化, 代码完全开源
发布于 3 年前 作者 jkjk77 3826 次浏览 来自 分享

PM86

起源

因为公司准备统一部署 监控等流程, 需要一个完善的工具做这些事情, 所以就有了这个项目的诞生, V1 做的比较粗糙, 经过了一段时间闲置, 又进行了打磨, 改进, 接下来会持续更新, 作为主要项目来维护, 谢谢, 如果在使用过程中遇到问题, 请联系我 github@ericjj.com

说明

  • pm86-ci 命令行工具, 兼容 PM2

  • pm86-cloud SSR, API

  • Vue 2.0 SSR 管理界面, Webscoket 数据传输

- 完全开源, 地址, 可部署在私有服务器, 利用 API 开发移动端监控 APP

功能

  • [x] Element UI
  • [x] 与 PM2 接口兼容
  • [x] 独立账号管理系统
  • [x] 监控应用进程信息
  • [x] 远程控制进程 Reload, Restart, Rorward, Backward
  • [x] 邮件报警通知
  • [ ] 移动端 APP
  • [ ] 慢路由

Demo Pic

Login

Buckets

Bucket

Bucket

激活邮件 激活

email 通知 email

运行

Requires Node.js 6+

1. 打开 mongodb

2. 运行 cloud service
$ cd pm86-cloud
$ cp config.simple.json config.json
# 修改config.json对应配置
$ cnpm install
$ node server.js

3. 注册账号 生成 secret_key public_key
  打开 http://127.0.0.1:3000/login 注册
  打开 http://127.0.0.1:3000/create 创建实例

4.安装命令行工具 (即 pm86-ci)
$ cnpm install pm86 -g
$ cd your-project-path, 创建下面的 processes.json 文件
// 本机环境注册
$ KEYMETRICS_NODE=127.0.0.1 KEYMETRICS_PORT=3000 REMOTE_REVERSE_PORT=43554  REMOTE_PORT=41624 pm86 interact secret_key public_key
// 启动服务
$ pm86 start processes.json
  打开 http://127.0.0.1:3000/buckets 进入对应实例 即可看到对应监控项目

部署

1. 打包
$ npm run build

2. 配置 nginx 代理

3. 修改 config

4 pm86 start processes.json

processes.json 文件, 请把 pm86 替换为实际名称


  /**
   * Application configuration section
   */
  "apps" : [
        {
            "name"      : "pm86",
            "max_memory_restart": "300M",
            "script"    : "index.js",
            "log_date_format": "YYYY-MM-DD HH:mm Z",
            "out_file" : "var/log/pm86/pm86_out.log",
            "error_file" : "var/log/pm86/pm86_error.log",
            "instances"  : 4,
            "exec_mode"  : "cluster",
            "env": {
                "NODE_ENV": "production"
            }
        }
  ]
}

13 回复

欢迎大大们指点批评 🐶

前端界面使用 Vue + element-ui

@i5ting 婷大 😀

@jkjk77 哈哈,好东西,稍后看看

先说一个,别用目录,使用lerna管理多个模块

https://lernajs.io/

已更新

@sqliang 谢谢 😀

赞👍

来自酷炫的 CNodeMD

又一个 类pm2 看能维护多久吧

@haozxuan 谢谢, 是的 开始参考了 pm25 , 但是 pm25 还有一部分没有开源出来, 没办法部署, 给作者提过 issue 也没反应, readme 也没讲怎么部署, 所以就打算重写一次, 完全开源出来; 作者使用的 angular, 用起来比较费劲, 用 vue 重写了一次,

@haozxuan 本来想直接用 pm25 算了, 但是完全没法部署啊 摔,

@jkjk77 基于开源精神还是很不错的,建议在某些地方标记下,借鉴或灵感来自于哪里,有根有源会好些;

回到顶部