likes
comments
collection
share

服务器和数据库统一管理平台-mayfly-go初体验

作者站长头像
站长
· 阅读数 26

前言

Hello 大家好,这里是Anyin。 前段时间,接手了一个政府的项目,它是一个独立的项目,并且需要支持私有部署(政府项目大家都知道)。所以,这个项目无法直接在我们现有的运维体系内开发部署。

对于一个简单独立项目的部署,主要有两项内容:服务器和数据库。目前我们对于服务器的管理是使用Spug,数据库管理是使用Archery。考虑到该项目涉及的服务器只有6台,并且数据库只有MySQL和Redis,如果再用Spug和Archery,并且Archery又依赖前提组件,整体就显得特别重。

经过在gitee和github上寻找,终于找到一款符合目前需求又不会太复杂的开源软件:mayfly-go

简介

mayfly-go 是web版linux(终端 文件 脚本 进程)、数据库(mysql postgres)、redis(单机 哨兵 集群)、mongo统一管理操作平台。

项目地址:gitee.com/objs/mayfly… 项目文档:objs.gitee.io/mayfly-go-d… 开发框架:typescript、vue3、element-plus、golang、gin、gorm

服务器和数据库统一管理平台-mayfly-go初体验

本地启动

1.下载源码

# git clone https://gitee.com/objs/mayfly-go.git

2. 导入数据库脚本 数据库脚本就在server目录下mayfly-go.sql。 这里我创建了数据库,然后复制sql脚本里面的内容,在DBeaver上执行下即可。数据库脚本一共创建了21张表。如下

服务器和数据库统一管理平台-mayfly-go初体验

3. 启动后端项目 先修改下配置文件config.yml的数据库链接。

服务器和数据库统一管理平台-mayfly-go初体验

使用Goland打开后端项目(server目录),项目使用Go Module进行管理依赖,会自行下载依赖。如果依赖下载之后,发现项目的依赖还是会出现报红,可以使用鼠标右键,选择Sync packages of mayfly-go

具体参考:goframe.org/display/gf/…

等依赖下载完成后,可以在External Libraries下可以看到整个项目的依赖内容。

服务器和数据库统一管理平台-mayfly-go初体验

最后,点击Debug按钮,启动项目。

服务器和数据库统一管理平台-mayfly-go初体验

项目启动成功之后,可以看到以下内容:

服务器和数据库统一管理平台-mayfly-go初体验

4. 启动前端项目 进入mayfly_go_web目录,执行

# npm install --registry=https://registry.npm.taobao.org

如果出现以下类似平台错误的信息,则删除package-lock.json重新执行下npm install 即可。

服务器和数据库统一管理平台-mayfly-go初体验

最后,不出意外,我们就可以看到登录界面了。

服务器和数据库统一管理平台-mayfly-go初体验

输入admin / admin123. 即可登录进入首页。

不吹不捧,整体的UI界面还是令人舒服的。

服务器和数据库统一管理平台-mayfly-go初体验

功能简介

1. 标签树 标签树用于对资产分类,资产包括服务器、数据库(MySQL和PostgreSQL)、Redis、Mongo。 标签树是一个树状结构,父标签可以对自身和其子标签所绑定的资产进行操作。

总结一句:标签用于做数据权限

服务器和数据库统一管理平台-mayfly-go初体验

2. 团队管理 团队可以按工种分:开发、测试、运维等,也可以按项目区分:项目A、项目B等。每个团队可以添加多个成员,成员可以跨团队,即一个成员可以在多个团队。

服务器和数据库统一管理平台-mayfly-go初体验

团队可以绑定多个标签,团队成员可以操作其绑定标签的所属资产,从而做到资产的数据权限。

这里其实用户、角色、权限一个道理,一个用户拥有多个角色,一个角色可以绑定多个权限,所以一个用户拥有多个权限;一个团队可以绑定多个标签,一个标签又绑定多个资产,所以团队下的成员可以操作相应的资产。

服务器和数据库统一管理平台-mayfly-go初体验

3. 机器管理

服务器和数据库统一管理平台-mayfly-go初体验

机器管理就是服务器管理,点击添加机器,输入服务器的名称、账号、密码、IP、是否终端回放,并且绑定对应的标签,在保存的时候会校验服务器是否可以访问以及账号密码是否正确,只有可以访问并且正确才可以保存成功。

服务器和数据库统一管理平台-mayfly-go初体验

机器管理有一个最核心的功能:终端,点击终端,可以以web形式访问服务器终端,该功能基本是所有的服务器管理平台的标配了,但是mayfly-go的终端有水印 并且 支持终端回放

服务器和数据库统一管理平台-mayfly-go初体验

服务器和数据库统一管理平台-mayfly-go初体验

机器管理同样可以查看服务器文件,不过需要事先设置服务器目录,才可以查看到服务器的文件目录。

服务器和数据库统一管理平台-mayfly-go初体验

服务器和数据库统一管理平台-mayfly-go初体验

机器管理还有脚本功能,内置一些简单的公共脚本,运维人员也可以把自己的常用脚本放到这里,可以方便的管理每一台机器的脚本。

服务器和数据库统一管理平台-mayfly-go初体验

机器管理还支持查看目前机器的状态,以及进程信息。

服务器和数据库统一管理平台-mayfly-go初体验

服务器和数据库统一管理平台-mayfly-go初体验

4. DBMS 数据库管理模块分为2部分,数据库管理以及数据操作。数据库支持MySQL和PostgreSQL。

这里的数据库可以做到按数据库库名进行权限管理,通过标签进行区分。

服务器和数据库统一管理平台-mayfly-go初体验

数据库操作可以进行常规的数据库增删改查,对于新增、删除、更新会添加本次执行的备注信息,并且记录SQL执行记录,还提供还原语句。

服务器和数据库统一管理平台-mayfly-go初体验

服务器和数据库统一管理平台-mayfly-go初体验

5. Redis Redis模块同样分为2部分,Redis管理和数据操作。

Redis管理除了提供基本的信息录入,还提供了单机信息的查询。

服务器和数据库统一管理平台-mayfly-go初体验

服务器和数据库统一管理平台-mayfly-go初体验

对于Redis的数据操作,提供了根据key进行模糊查询,以及value值的查看和删除操作。

服务器和数据库统一管理平台-mayfly-go初体验

剩下的Mongo模块和DBMS、Redis模块类似,就不多做介绍。剩下还有一个系统管理模块,具有基本的账号管理、角色管理、资源管理(菜单管理)、操作日志等功能,就不一一介绍。

总结

mayfly-go 集成了服务器管理、数据库管理,并且具备了完善的用户权限功能,非常适合小型项目或者小型公司的资产管理。我在接手的这个政府项目使用了一段时间,用的还是挺顺手的。

当然,这个项目也不是完美,还有一些功能需要优化完善。例如

  • 数据导出有bug(1.3.0版本发现),对于json列导出会拆分列
  • 不支持定时任务
  • 不支持进程健康检查

以上就是对mayfly-go的一个初体验总结,也希望这个项目越来越好。

下一回我们深入到后端源代码,看看人家的代码是如何实现以上功能,也为这个项目做贡献(蹭PR)做准备,我目前比较需要的是进程的健康检查。

参考