一篇文章带你了解一款强大的开源web运维平台---mayfly-go

662 阅读3分钟

mayfly-go是一款基于Go语言开发的开源Web运维平台,支持Linux系统、MySQL/PostgreSQL数据库、Redis(单机/集群)及MongoDB的统一管理,旨在替代传统Xshell、Navicat等分散工具。以下从特点、部署和使用三方面详细介绍:


一、核心特点

  1. 多资源统一管理

    • 支持Linux系统的SSH终端操作、文件管理(上传/下载/编辑)、进程监控、脚本执行,具备堡垒机功能。
    • 提供MySQL/PostgreSQL的SQL编辑器、表结构查看、索引管理及可视化数据操作(类似Navicat)。
    • 支持Redis集群状态监控、键值操作及MongoDB文档管理。
  2. 安全与权限控制

    • 支持SSH隧道访问,保障内网资源安全。
    • 提供RBAC权限模型,支持账号角色分配、项目环境隔离及操作日志审计。
  3. 轻量化与高效性

    • 采用Go语言开发,内存占用低,单二进制文件部署,支持跨平台。
    • 集成LSM-Tree存储引擎,适用于IoT、监控等高频写入场景(部分版本支持时序数据库功能)。

二、安装部署流程

环境要求

  • 数据库:MySQL 5.7+(推荐8.0+)。
  • 系统:Linux/Windows,需开放8888端口(默认Web端口)。

部署步骤

  1. 安装MySQL依赖

    • 卸载系统自带MariaDB,安装MySQL RPM包并启动服务。
    rpm -e --nodeps mariadb-libs && rpm -ivh MySQL-*.rpm 
    systemctl start mysql 
    
  2. 初始化mayfly-go数据库

    • 创建数据库

      mayfly-go

      ,导入项目提供的SQL文件(如

      mayfly-go.sql

      )。

  3. 配置与启动服务

    • 修改

      config.yml

      :设置MySQL连接信息、服务端口等。

    • 修改前端配置

      static/config.js

      :将

      localhost

      改为服务器IP。

    • 赋予执行权限并启动:

    chmod +x mayfly-go-linux && nohup ./mayfly-go-linux &
    
  4. 防火墙设置(可选)

    firewall-cmd --add-port=8888/tcp --permanent && firewall-cmd --reload 
    

内网虚拟机部署:
#docker run -d --privileged=true -p 8088:80 --name nextcloud --restart=always -v /Users/xxx/www/nextcloud/html:/var/www/html -v /Users/xxx/www/nextcloud/apps:/var/www/html/custom_apps -v /Users/xxx/www/nextcloud/config:/var/www/html/config -v /Users/xxx/www/nextcloud/data:/var/www/html/data -v /Users/xxx/www/nextcloud/theme:/var/www/html/themes --link mysql8:mysql --link redis:redis nextcloud

docker run -d --name nextcloud --net=host nextcloud

三、使用方法

  1. 初始登录

    • 访问

      http://服务器IP:8888

      ,使用默认账号

      admin/admin123.

      (注意末尾有英文句号)。

  2. 核心功能操作

    • 项目管理:创建项目并分配成员,按环境(开发/生产)隔离资源。

    • 服务器管理

      • 添加Linux主机:填写SSH连接信息,支持密钥认证。
      • 文件管理:通过Web界面上传/下载文件,支持高亮语法编辑。
    • 数据库操作

      • MySQL/PostgreSQL:执行SQL语句、导出数据、查看执行计划。
      • Redis:实时查看内存使用、集群节点状态,执行批量删除。
  3. 高级功能

    • 脚本管理:预存常用Shell脚本,一键批量执行。
    • 监控告警:查看服务器CPU/内存实时图表,设置阈值告警(需配置Prometheus集成)。

四、扩展与维护

  • 一键脚本:官方提供自动化部署脚本,支持宝塔面板快速安装。

  • 日志排查:查看

    nohup.out

    日志定位启动问题,常见错误为MySQL连接配置错误。

  • 二次开发:基于DDD分层架构,可扩展API或定制前端页面。

通过上述功能,mayfly-go显著降低了多平台工具切换成本,尤其适合中小团队及需严格审计的企业环境。完整文档可参考。