一、项目介绍
本项目是一款集智能运维与轻量堡垒机于一体的综合性平台,旨在提高运维效率,降低运维风险,保障企业信息系统安全稳定运行。通过自动化、智能化手段,简化运维流程,实现对运维操作的实时监控、审计和控制,防止误操作和恶意操作,提升运维质量。同时,本项目还具有高度集成、智能化、安全可靠、灵活扩展和易用性强等特点,适用于各类企业。
二、系统功能
-
资产管理:支持对资产进行分组,实现对主机、密钥和身份的统一管理和授权。
-
主机运维:提供在线 Terminal 服务,支持快捷命令、大文件上传、在线编辑等操作。
-
运维审计:提供连接日志,在线会话,文件操作日志。
-
批量执行:支持批量执行主机命令、多主机文件分发等功能。
-
计划任务:支持配置 cron 表达式,定时执行主机命令。
-
安全可靠:动态配置权限,记录用户操作日志,提供简单的审计功能。
三、技术架构
3.1 技术选型
-
SpringBoot 2.7.17
-
Mysql 8.0.+
-
Redis 6.0.+
-
Vue3 3.2.+
-
Arco Design 2.55.+
四、产品功能预览
主机管理
管理和维护可操作的主机。
-
主机分组: 设置主机分组以及组内数据
-
角色授权: 跳转页面到主机授权页面(角色)
-
用户授权: 跳转页面到主机授权页面(用户)
-
新增: 添加一台主机
-
修改: 修改主机信息
-
配置: 修改主机配置信息
-
删除: 删除这台主机以及主机关联的数据
主机终端
主机终端页面 支持 SSH, SFTP。
打开后默认会进入新建连接页面, 页面的主机数据是用户授权的资产数据。
批量执行
批量执行 ssh 主机 shell 脚本。
批量上传
将文件批量上传到远程服务器。
运维审计
主要包括查看主机终端连接记录,查看连接中的主机会话,查看用户 SFTP 操作日志, 是从用户操作日志中过滤查询。
五、安装部署
所需环境
-
jdk 1.8
-
mysql 8.0.+
-
redis 6.0.+
-
maven 3.5.+
-
node 18.12.+
-
pnpm 9.1.+
-
nginx
⚡ maven 推荐使用阿里云 mirror
⚡ npm 建议使用淘宝镜像 npm config set registry https://registry.npmmirror.com/
⚡ pnpm 建议使用淘宝镜像 pnpm config set registry https://registry.npmmirror.com/
构建
-
拉取代码
# github
git clone https://github.com/lijiahangmax/orion-visor
# gitee
git clone https://gitee.com/lijiahangmax/orion-visor
-
初始化数据库
# 执行脚本 orion-visor/sql/init-1-schema-databases.sql orion-visor/sql/init-2-schema-tables.sql orion-visor/sql/init-3-schema-quartz.sql orion-visor/sql/init-4-data.sql
-
构建后端代码
# 修改配置文件 (mysql, redis, secret-key) orion-visor/orion-visor-launch/src/main/resources/application-prod.yaml # 进入代码目录 cd orion-visor # 编译 mvn -U clean install -DskipTests
-
构建前端代码
# 进入代码目录 cd orion-visor/orion-visor-ui # 下载 pnpm npm i -g pnpm # 下载依赖 pnpm i # 编译 pnpm build
修改 nginx 配置
server {
listen 80;
server_name localhost;
client_max_body_size 1024m;
# 是否启动 gzip 压缩
gzip on;
# 需要压缩的常见静态资源
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 如果文件大于 1k 就启动压缩
gzip_min_length 1k;
# 缓冲区
gzip_buffers 4 16k;
# 压缩的等级
gzip_comp_level 2;
# access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# web history 模式 404
try_files $uri $uri/ /index.html;
}
location /orion-visor/api {
proxy_pass http://localhost:9200/orion-visor/api;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /orion-visor/keep-alive {
proxy_pass http://localhost:9200/orion-visor/keep-alive;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
部署
复制 orion-visor/orion-visor-ui/dist 到 /usr/share/nginx/html
复制 orion-visor/orion-visor-launch/target/orion-visor-launch.jar 到 /data/orion
# 启动后台服务
nohup java -jar orion-visor-launch.jar --spring.profiles.active=prod 2>&1 &
# 启动 nginx
service nginx start
测试访问
在浏览器中输入 http://localhost 访问
账号: admin
密码: admin
六、演示地址
http://101.43.254.243:1081/
账号密码:admin/admin
源代码下载地址:
https://gitee.com/lijiahangmax/orion-visor.git
看到最后,如果这个方法对你有用,一定要给我点个“在看和赞”。