Jpom是一款开源的、简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。
Jpom的特点包括:
- 面向Java项目
- 可视化页面
- 自动化构建
- 一键分发部署
- 实时浏览日志
- 实时监控项目运行状态
- 异常自动报警
1. Jpom安装
一个服务端+多个插件端
服务端建议安装在内网,禁止外网访问,比较安全,默认端口2122。
插件端安装在各个需要管理的服务器,并开放插件端访问端口,默认端口2123。
1.1 安装要求
1.2 安装服务端
1.2.1 创建安装目录
mkdir -p /home/jpom/server
1.2.2 下载并安装服务端
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
jpom:# jpom 数据存储路径, 如果调试模式运行默认路径为【/jpom/】,安装运行默认为jar包文件的父级path:authorize:# api接口请求token 长度要求大于等于6位,字母数字符号组合token:#登录token失效时间(单位:小时),默认为24expired: 24#登录token失效后自动续签时间(单位:分钟),默认为60,不自动续签renewal: 60user:# 最多能创建多少个用户maxCount: 10# 用户连续登录失败次数,超过此数将被限制登录alwaysLoginError: 5# 当ip连续登录失败,锁定对应IP时长,单位毫秒ipErrorLockTime: 60*60*5*1000consoleLog:# 是否记录接口请求日志reqXss: true# 是否记录接口响应日志reqResponse: truelog:# 日志文件的编码格式,如果没有指定就自动识别,自动识别可能出现不准确的情况fileCharset: uft-8# 查看日志时初始读取最后多少行(默认10,0不读取)intiReadLine: 10db:# 日志存储条数,将自动清理旧数据,配置小于等于零则不清理logStorageCount: 100000# 构建相关配置build:# 最多保存多少份历史记录maxHistoryCount: 1000# 单个最多保存多少份历史记录itemMaxHistoryCount: 50
1.2.4 服务端管理命令
# 启动Jpom服务端Server.sh start -Xms512m -Xmx1024m --server.port=2122 --jpom.log=/home/jpom/server/logs/# 停止Jpom服务端Server.sh stop# 重启Jpom服务端Server.sh restart# 查看Jpom服务端运行状态Server.sh status# 创建Jpom服务端的应用服务(jpom-server)Server.sh create# 在使用 Server.sh create 成功后,可使用service命令管理service jpom-server {status | start | stop}
1.3 安装插件端
1.3.1 创建安装目录
mkdir -p /home/jpom/agent && cd /home/jpom/agent
1.3.2 下载并安装插件端
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
jpom:# jpom 数据存储路径, 如果调试模式运行默认路径为【/jpom/】,安装运行默认为jar包文件的父级path:authorize:# agent 端管理账号,必填。agentName: jpomAgent# agent 端管理密码,非必填,如果为空Jpom 会自动生成一串随机字符串当密码agentPwd:agent:# 设置插件端id,配置自动注册服务端需要id:# 当前节点插件端可以访问的url ,如果不设置将使用http://+本地IP+端口url:server:# 设置服务端的urlurl:# 服务器接口请求tokentoken:whitelistDirectory:# 白名单目录是否验证包含关系checkStartsWith: truelog:# 自动备份控制台日志,防止日志文件过大,目前暂只支持linux 不停服备份autoBackConsoleCron: 0 0/10 * * * ?# 当文件多大时自动备份autoBackSize: 50MB# 保存天数 配置错误或者没有,默认是7天saveDays: 7# 日志文件的编码格式,如果没有指定就自动识别,自动识别可能出现不准确的情况fileCharset: utf-8# 查看日志时初始读取最后多少行(默认10,0不读取)intiReadLine: 10consoleLog:# 是否记录接口请求日志reqXss: true# 是否记录接口响应日志reqResponse: trueproject:# 是否禁用 使用jmx获取项目状态disableVirtualMachine: false
1.3.4 插件端管理命令
# 启动Jpom插件端Agent.sh start -Xms512m -Xmx1024m --server.port=2123 --jpom.log=/home/jpom/agent/logs/# 停止Jpom插件端Agent.sh stop# 重启Jpom插件端Agent.sh restart# 查看Jpom插件端运行状态Agent.sh status# 创建Jpom插件端的应用服务(jpom-agent)Agent.sh create# 在使用 Agent.sh create 成功后,可使用 service 命令管理service jpom-agent {status | start | stop}
2. Jpom更新
下载最新的安装包,点击此处下载,下载后解压。
2.1 服务端在线升级
菜单:系统管理 -> 在线升级,点击选择升级文件,选择解压文件夹中的server-2.x.x-release.zip。
2.2 插件端在线升级
菜单:节点管理 -> 节点升级,点击上传新版本,选择解压文件夹中的agent-2.x.x-release.zip,然后选中所有节点,点击批量更新。
3. 节点管理
3.1 第一步:SSH管理 -> 新增SSH
3.2 第二步:节点列表 -> 新增节点
3.3 第三步:节点管理 -> 白名单目录 -> 配置项目路径
3.4 第四步:节点管理 -> 项目管理 -> JDK管理 -> 新增JDK
3.5 第五步:节点管理 -> 项目管理 -> 项目列表 -> 新增项目
新增项目时需要注意,项目ID与项目文件夹命名要一致,不一致会导致日志路径不存在,启动时会报错” No such file or directory“,导致启动项目失败。
4. 在线构建
4.1 构建列表
4.1.1 新增构建任务
分组一定要定义好,方便以后查看;
产物目录是相对路径,精确到编译后的.jar或.war;
单个项目,发布操作选”项目“就行;
集群项目,发布操作选”节点分发“,要先创建好分发节点。
4.1.2 构建
构建流程:拉取代码 -> 使用构建命令构建 -> 上传产物目录中指定产物 -> 上传完成 -> 使用项目中的运行命令重启项目 -> 等待启动完成
4.1.3 触发器
可通过Git仓库的webhook调用触发器,实现提交代码自动构建。
