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失效时间(单位:小时),默认为24
expired: 24
#登录token失效后自动续签时间(单位:分钟),默认为60,不自动续签
renewal: 60
user:
# 最多能创建多少个用户
maxCount: 10
# 用户连续登录失败次数,超过此数将被限制登录
alwaysLoginError: 5
# 当ip连续登录失败,锁定对应IP时长,单位毫秒
ipErrorLockTime: 60*60*5*1000
consoleLog:
# 是否记录接口请求日志
reqXss: true
# 是否记录接口响应日志
reqResponse: true
log:
# 日志文件的编码格式,如果没有指定就自动识别,自动识别可能出现不准确的情况
fileCharset: uft-8
# 查看日志时初始读取最后多少行(默认10,0不读取)
intiReadLine: 10
db:
# 日志存储条数,将自动清理旧数据,配置小于等于零则不清理
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:
# 设置服务端的url
url:
# 服务器接口请求token
token:
whitelistDirectory:
# 白名单目录是否验证包含关系
checkStartsWith: true
log:
# 自动备份控制台日志,防止日志文件过大,目前暂只支持linux 不停服备份
autoBackConsoleCron: 0 0/10 * * * ?
# 当文件多大时自动备份
autoBackSize: 50MB
# 保存天数 配置错误或者没有,默认是7天
saveDays: 7
# 日志文件的编码格式,如果没有指定就自动识别,自动识别可能出现不准确的情况
fileCharset: utf-8
# 查看日志时初始读取最后多少行(默认10,0不读取)
intiReadLine: 10
consoleLog:
# 是否记录接口请求日志
reqXss: true
# 是否记录接口响应日志
reqResponse: true
project:
# 是否禁用 使用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调用触发器,实现提交代码自动构建。