Jpom是一款开源的、简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。

Jpom的特点包括:

  1. 面向Java项目
  2. 可视化页面
  3. 自动化构建
  4. 一键分发部署
  5. 实时浏览日志
  6. 实时监控项目运行状态
  7. 异常自动报警

1. Jpom安装

一个服务端+多个插件端
服务端建议安装在内网,禁止外网访问,比较安全,默认端口2122。
插件端安装在各个需要管理的服务器,并开放插件端访问端口,默认端口2123。

1.1 安装要求

安装JDK 1.8+,并配置环境变量

1.2 安装服务端

1.2.1 创建安装目录

  1. mkdir -p /home/jpom/server

1.2.2 下载并安装服务端

  1. yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Server

1.2.3 编辑配置文件extConfig.yml

  1. jpom:
  2. # jpom 数据存储路径, 如果调试模式运行默认路径为【/jpom/】,安装运行默认为jar包文件的父级
  3. path:
  4. authorize:
  5. # api接口请求token 长度要求大于等于6位,字母数字符号组合
  6. token:
  7. #登录token失效时间(单位:小时),默认为24
  8. expired: 24
  9. #登录token失效后自动续签时间(单位:分钟),默认为60,不自动续签
  10. renewal: 60
  11. user:
  12. # 最多能创建多少个用户
  13. maxCount: 10
  14. # 用户连续登录失败次数,超过此数将被限制登录
  15. alwaysLoginError: 5
  16. # 当ip连续登录失败,锁定对应IP时长,单位毫秒
  17. ipErrorLockTime: 60*60*5*1000
  18. consoleLog:
  19. # 是否记录接口请求日志
  20. reqXss: true
  21. # 是否记录接口响应日志
  22. reqResponse: true
  23. log:
  24. # 日志文件的编码格式,如果没有指定就自动识别,自动识别可能出现不准确的情况
  25. fileCharset: uft-8
  26. # 查看日志时初始读取最后多少行(默认10,0不读取)
  27. intiReadLine: 10
  28. db:
  29. # 日志存储条数,将自动清理旧数据,配置小于等于零则不清理
  30. logStorageCount: 100000
  31. # 构建相关配置
  32. build:
  33. # 最多保存多少份历史记录
  34. maxHistoryCount: 1000
  35. # 单个最多保存多少份历史记录
  36. itemMaxHistoryCount: 50

1.2.4 服务端管理命令

  1. # 启动Jpom服务端
  2. Server.sh start -Xms512m -Xmx1024m --server.port=2122 --jpom.log=/home/jpom/server/logs/
  3. # 停止Jpom服务端
  4. Server.sh stop
  5. # 重启Jpom服务端
  6. Server.sh restart
  7. # 查看Jpom服务端运行状态
  8. Server.sh status
  9. # 创建Jpom服务端的应用服务(jpom-server)
  10. Server.sh create
  11. # 在使用 Server.sh create 成功后,可使用service命令管理
  12. service jpom-server {status | start | stop}

1.3 安装插件端

1.3.1 创建安装目录

  1. mkdir -p /home/jpom/agent && cd /home/jpom/agent

1.3.2 下载并安装插件端

  1. yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Agent

1.3.3 编辑配置文件extConfig.yml

  1. jpom:
  2. # jpom 数据存储路径, 如果调试模式运行默认路径为【/jpom/】,安装运行默认为jar包文件的父级
  3. path:
  4. authorize:
  5. # agent 端管理账号,必填。
  6. agentName: jpomAgent
  7. # agent 端管理密码,非必填,如果为空Jpom 会自动生成一串随机字符串当密码
  8. agentPwd:
  9. agent:
  10. # 设置插件端id,配置自动注册服务端需要
  11. id:
  12. # 当前节点插件端可以访问的url ,如果不设置将使用http://+本地IP+端口
  13. url:
  14. server:
  15. # 设置服务端的url
  16. url:
  17. # 服务器接口请求token
  18. token:
  19. whitelistDirectory:
  20. # 白名单目录是否验证包含关系
  21. checkStartsWith: true
  22. log:
  23. # 自动备份控制台日志,防止日志文件过大,目前暂只支持linux 不停服备份
  24. autoBackConsoleCron: 0 0/10 * * * ?
  25. # 当文件多大时自动备份
  26. autoBackSize: 50MB
  27. # 保存天数 配置错误或者没有,默认是7天
  28. saveDays: 7
  29. # 日志文件的编码格式,如果没有指定就自动识别,自动识别可能出现不准确的情况
  30. fileCharset: utf-8
  31. # 查看日志时初始读取最后多少行(默认10,0不读取)
  32. intiReadLine: 10
  33. consoleLog:
  34. # 是否记录接口请求日志
  35. reqXss: true
  36. # 是否记录接口响应日志
  37. reqResponse: true
  38. project:
  39. # 是否禁用 使用jmx获取项目状态
  40. disableVirtualMachine: false

1.3.4 插件端管理命令

  1. # 启动Jpom插件端
  2. Agent.sh start -Xms512m -Xmx1024m --server.port=2123 --jpom.log=/home/jpom/agent/logs/
  3. # 停止Jpom插件端
  4. Agent.sh stop
  5. # 重启Jpom插件端
  6. Agent.sh restart
  7. # 查看Jpom插件端运行状态
  8. Agent.sh status
  9. # 创建Jpom插件端的应用服务(jpom-agent)
  10. Agent.sh create
  11. # 在使用 Agent.sh create 成功后,可使用 service 命令管理
  12. service jpom-agent {status | start | stop}

2. Jpom更新

下载最新的安装包,点击此处下载,下载后解压。

2.1 服务端在线升级

菜单:系统管理 -> 在线升级,点击选择升级文件,选择解压文件夹中的server-2.x.x-release.zip。
image.png

2.2 插件端在线升级

菜单:节点管理 -> 节点升级,点击上传新版本,选择解压文件夹中的agent-2.x.x-release.zip,然后选中所有节点,点击批量更新。
image.png

3. 节点管理

一定要按照以下顺序添加!!!

3.1 第一步:SSH管理 -> 新增SSH

3.2 第二步:节点列表 -> 新增节点

3.3 第三步:节点管理 -> 白名单目录 -> 配置项目路径

3.4 第四步:节点管理 -> 项目管理 -> JDK管理 -> 新增JDK

配置jdk的根目录即可

3.5 第五步:节点管理 -> 项目管理 -> 项目列表 -> 新增项目

新增项目时需要注意,项目ID与项目文件夹命名要一致,不一致会导致日志路径不存在,启动时会报错” No such file or directory“,导致启动项目失败。
image.png

4. 在线构建

4.1 构建列表

4.1.1 新增构建任务

分组一定要定义好,方便以后查看;
产物目录是相对路径,精确到编译后的.jar或.war;
单个项目,发布操作选”项目“就行;
集群项目,发布操作选”节点分发“,要先创建好分发节点。

4.1.2 构建

构建流程:拉取代码 -> 使用构建命令构建 -> 上传产物目录中指定产物 -> 上传完成 -> 使用项目中的运行命令重启项目 -> 等待启动完成

4.1.3 触发器

可通过Git仓库的webhook调用触发器,实现提交代码自动构建。

4.2 构建历史

4.2.1 下载日志

4.2.2 回滚

可回滚至上一个发布的版本。

5. 监控管理

5.1 第一步:系统管理,邮箱配置

不配置邮箱,无法发送报警邮件。

5.2 第二步:右上角,系统管理,用户资料,绑定邮箱地址

不绑定邮箱,新增监控时无法绑定报警联系人。

5.3 第三步:监控管理,监控列表,新增监控