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

前言

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

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

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

简介

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

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

本地启动

1.下载源码

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

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

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

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

具体参考:https://goframe.org/display/gf/Go+Module

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

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

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

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

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

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

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

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

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

功能简介

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

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

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

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

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

3. 机器管理

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

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

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

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

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

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

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

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

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

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

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

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

总结

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

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

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

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

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

参考

•https://objs.gitee.io/mayfly-go-docs/dev/front/

展开阅读全文

页面更新:2024-03-04

标签:服务器   数据库   终端   绑定   脚本   团队   机器   操作   标签   项目   平台

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top