🚀简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件
【更是一款原生 ops 软件 / English】
如果是分布式的项目,以上步骤则更加繁琐。
让 Jpom 来帮您解决这些痛点吧!然而,这些只是 Jpom 解决的最基础的功能。
- 在 Windows 服务器中可能有部分功能因为系统特性造成兼容性问题,建议在实际使用中充分测试。Linux 目前兼容性良好
- 服务端和插件端请安装到不同目录中,切勿安装到同一目录中
- 卸载 Jpom 插件端或者服务端,先停止对应服务,然后删除对应的程序文件、日志文件夹、数据目录文件夹即可
- 本地构建依赖的是系统环境,如果构建命令需要使用 maven 或者 node 需要在构建项目的服务器安装好对应的环境。如果已经启动服务端再安装的对应环境需要通过命令行重启服务端后环境才会生效。
- 在 Ubuntu/Debian 服务器作为插件端可能会添加失败,请在当前用户的根目录创建 .bash_profile 文件
- 升级 2.7.x 后不建议降级操作,会涉及到数据不兼容的情况
- 由于目前 2.x.x 版本插件端和服务端主要采用 http 协议通讯,插件端和服务端网络要求互通,在使用的时候请注意。
- Jpom 3.0 版本已经开始规划更新了,尽请期待新版本的诞生吧
升级前必看:CHANGELOG.md
Jpom 支持多种安装方式,满足不同用户的个性化需求,您只需要选择一种方式安装即可。
注意:安装的目录位于执行命令的目录!
⚠️ 特别提醒:一键安装的时候注意执行命令不可在同一目录下,即 Server 端和 Agent 端不可安装在同一目录下!
如果需要修改服务端数据、日志存储的路径请修改
application.yml
文件中jpom.path
配置属性。
# 一键默认安装
curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdk+default
# 一键默认安装 + 自动配置开机自启服务
curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdk+default+service
# 安装服务端和 jdk 环境
yum install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Server jdk
# 安装服务端和 jdk、maven 环境
yum install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Server jdk+mvn
# ubuntu
apt-get install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Server jdk
启动成功后,服务端的端口为 2122
,可通过 http://127.0.0.1:2122/
访问管理页面(如果不是本机访问,需要把 127.0.0.1 换成您安装的服务器 IP 地址)。
如无法访问管理系统,执行命令
systemctl status firewalld
检查下是否开启了防火墙 ,如状态栏看到绿色显示Active: active (running)
需要放行2122
端口。# 放行管理系统的 2122 端口 firewall-cmd --add-port=2122/tcp --permanent # 重启防火墙才会生效 firewall-cmd --reload
如果在操作系统上放行了端口仍无法访问,并且您使用的是云服务器,请到云服务器后台中检查安全组规则是否放行 2122 端口。
⚠️ 注意: Linux 系统中有多种防火墙:Firewall、Iptables、SELinux 等,再检查防火墙配置时候需要都检查一下。
如果安装服务端的服务器也需要被管理,在服务端上也需要安装插件端(同一个服务器中可以同时安装服务端和插件端)
⚠️ 特别提醒:一键安装的时候注意执行命令不可在同一目录下,即 Server 端和 Agent 端不可安装在同一目录下!
如果需要修改插件端数据、日志存储的路径请修改
application.yml
文件中jpom.path
配置属性。
# 一键默认安装
curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default
# 一键默认安装 + 自动配置开机自启服务
curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default+service
# 安装插件端和 jdk 环境
yum install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Agent jdk
# ubuntu
apt-get install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Agent jdk
启动成功后,插件端的端口为 2123
,插件端提供给服务端使用。
⚠️ 注意:容器化安装方式需要先安装 docker,点击跳转docker安装文档
docker run -p 2122:2122 --name jpom-server jpomdocker/jpom
docker pull jpomdocker/jpom
mkdir -p /home/jpom-server/logs
mkdir -p /home/jpom-server/data
mkdir -p /home/jpom-server/conf
docker run -d -p 2122:2122 \
--name jpom-server \
-v /home/jpom-server/logs:/usr/local/jpom-server/logs \
-v /home/jpom-server/data:/usr/local/jpom-server/data \
-v /home/jpom-server/conf:/usr/local/jpom-server/conf \
jpomdocker/jpom
docker pull jpomdocker/jpom
docker volume create jpom-server-data
docker volume create jpom-server-logs
docker volume create jpom-server-conf
docker run -d -p 2122:2122 \
--name jpom-server \
-v jpom-server-data:/usr/local/jpom-server/data \
-v jpom-server-logs:/usr/local/jpom-server/logs \
-v jpom-server-conf:/usr/local/jpom-server/conf \
jpomdocker/jpom
容器化安装仅提供服务端版。由于容器和宿主机环境隔离,而导致插件端的很多功能无法正常使用,因此对插件端容器化意义不大。
安装docker、配置镜像、自动启动、查找安装后所在目录等可参考文档 https://jpom.top/pages/b63dc5/
在低版本 docker 中运行可能出现
ls: cannot access'/usr/local/jpom-server/lib/': Operation not permitted
错误,此时需要添加--privileged
参数 如:docker run -p 2122:2122 --name jpom-server jpomdocker/jpom --privileged
agent-x.x.x-release
目录为插件端的全部安装文件2123
server-x.x.x-release
目录为服务端的全部安装文件2122
,访问管理页面:http://127.0.0.1:2122/
(非本机访问把 127.0.0.1
换成您的服务器 IP 地址)web-vue
目录,执行 npm install
(vue 环境需要提前搭建和安装依赖包详情可以查看 web-vue 目录下 README.md)npm run build
进行 vue 项目打包mvn clean package
modules/agent/target/agent-x.x.x-release
2123
modules/server/target/server-x.x.x-release
2122
,访问管理页面:http://127.0.0.1:2122/
(非本机访问把 127.0.0.1
换成您的服务器 IP 地址)也可以使用
script/release.bat
或script/release.sh
快速打包。
需要注意修改
.env
文件中的 token 值
yum install -y git
git clone https://gitee.com/dromara/Jpom.git
cd Jpom
docker-compose -f docker-compose.yml up
# docker-compose -f docker-compose.yml up --build
# docker-compose -f docker-compose.yml build --no-cache
# docker-compose -f docker-compose-local.yml up
# docker-compose -f docker-compose-local.yml build --build-arg TEMP_VERSION=.0
# docker-compose -f docker-compose-cluster.yml up --build
org.dromara.jpom.JpomAgentApplication
2123
org.dromara.jpom.JpomServerApplication
2122
web-vue
目录(前提需要本地开发环境有 node、npm 环境)npm install
npm run dev
http://127.0.0.1:3000/
(非本机访问把 127.0.0.1
换成您的服务器 IP 地址)# 服务端管理脚本 (命令行)
./bin/Server.bat start # 启动Jpom服务端
./bin/Server.bat stop # 停止Jpom服务端
./bin/Server.bat restart # 重启Jpom服务端
./bin/Server.bat status # 查看Jpom服务端运行状态
# 服务端管理脚本 (控制面板),按照面板提示输入操作
./bin/Server.bat
# 插件端管理脚本
./bin/Agent.bat start # 启动Jpom插件端
./bin/Agent.bat stop # 停止Jpom插件端
./bin/Agent.bat restart # 重启Jpom插件端
./bin/Agent.bat status # 查看Jpom插件端运行状态
# 插件端管理脚本(控制面板),按照面板提示输入操作
./bin/Agent.bat
Windows 系统中执行启动后需要根据日志去跟进启动的状态,如果出现乱码请检查或者修改编码格式,Windows 系统中 bat 编码格式推荐为
GB2312
# 服务端
./bin/Server.sh start # 启动Jpom服务端
./bin/Server.sh stop # 停止Jpom服务端
./bin/Server.sh restart # 重启Jpom服务端
./bin/Server.sh status # 查看Jpom服务端运行状态
./bin/Service.sh install # 创建Jpom服务端的应用服务(jpom-server)
# 插件端
./bin/Agent.sh start # 启动Jpom插件端
./bin/Agent.sh stop # 停止Jpom插件端
./bin/Agent.sh restart # 重启Jpom插件端
./bin/Agent.sh status # 查看Jpom插件端运行状态
./bin/Service.sh install # 创建Jpom插件端的应用服务(jpom-agent)
这里安装服务仅供参考,实际中可以根据需求自定义配置
在使用
./bin/Service.sh install
成功后systemctl {status | start | stop | restart} jpom-server
systemctl {status | start | stop | restart} jpom-agent
在项目运行的根路径下的 :
./conf/application.yml
application.yml
application.yml
./conf/logback.xml
logback.xml
logback.xml
里面有部分图片加载可能比较慢
Node.js 编译指定目录:
yarn --cwd xxxx/ install
yarn --cwd xxxx/ build
Maven 编译指定目录:
mvn -f xxxx/pom.xml clean package
感谢所有赞赏以及参与贡献的小伙伴,您们的支持是我们不断更新前进的动力!
为了更好地维持开源项目,我们决定推出周边商品。
购买支持我们这样您既获得了一份小商品我们也获得了您购买商品的利润(周边商品的价格会比市场价稍高,介意请勿下单)
提交贡献即认为签署了 CLA 协议
Jpom 作为开源项目,离不开社区的支持,欢迎任何人修改和提出建议。贡献无论大小,您的贡献会帮助背后成千上万的使用者以及开发者,您做出的贡献也会永远的保留在项目的贡献者名单中,这也是开源项目的意义所在!
为了保证项目代码的质量与规范,以及帮助您更快的了解项目的结构,请在贡献之前阅读:
Fork 本仓库。
Fork 后会在您的账号下多了一个和本仓库一模一样的仓库,把您账号的仓库 clone 到本地。
注意替换掉链接中的分支名
和用户名
。
如果是贡献代码,分支名填 dev
;如果是贡献文档,分支名填 docs
git clone -b 分支名 https://gitee.com/用户名/Jpom.git
修改代码/文档,修改后提交上来。
# 把修改的文件添加到暂存区
git add .
# 提交到本地仓库,说明您具体做了什么修改
git commit -m '填写您做了什么修改'
# 推送到远程仓库,分支名替换成 dev 或者 docs
git push origin 分支名
登录您的仓库,然后会看到一条 PR 请求,点击请求合并,等待管理员把您的代码合并进来。
分支 | 说明 |
---|---|
master | 主分支,受保护分支,此分支不接受 PR。在 beta 分支后经过测试没问题后会合并到此分支。 |
beta | beta 版本 分支,受保护分支,此分支不接受 PR。在 dev 分支后经过测试没问题后会合并到此分支。 |
dev | 开发分支,接受 PR,PR 请提交到 dev 分支。 |
docs | 项目文档分支,接受 PR,介绍项目功能、汇总常见问题等。 |
目前用到的主要是 dev 和 docs 分支,接受 PR 修改,其他的分支为归档分支,贡献者可以不用管。
Made with contrib.rocks.
项目名称 | 项目地址 | 项目介绍 |
---|---|---|
SpringBoot_v2 | https://gitee.com/bdj/SpringBoot_v2 | 基于springboot的一款纯净脚手架 |
TLog GVP 项目 | https://gitee.com/dromara/TLog | 一个轻量级的分布式日志标记追踪神器,10分钟即可接入,自动对日志打标签完成微服务的链路追踪 |
Sa-Token | https://gitee.com/dromara/sa-token | 这可能是史上功能最全的 Java 权限认证框架! |
Erupt | https://gitee.com/erupt/erupt | 零前端代码,纯注解开发 admin 管理后台 |
hippo4j | https://gitee.com/magegoofy/hippo4j | 强大的动态线程池框架,附带监控报警功能。 |
HertzBeat | https://gitee.com/dromara/hertzbeat | 易用友好的云监控系统, 无需 Agent, 强大自定义监控能力。 |