VPS服务器最新优惠
云主机最新促销分享

墨鱼探针v2.0:一款轻量的单页面服务器探针小工具

墨鱼探针为主从模式,主为墨鱼manager,从为墨鱼page墨鱼manager可获取展示多个墨鱼page的简要状态信息,登录后可点击title进入墨鱼page页面。墨鱼page独立部署,可独立使用。

技术栈:go(fiber) + vue2 + element-ui + nes.css。

最终将前端和后端全部编译到单个二进制程序中,分为moyu-managermoyu-page2个二进制程序。

项目地址:https://github.com/liuquanhao/moyu

墨鱼探针v2.0展示

墨鱼page

墨鱼manager

墨鱼page

未登录主页:

未登录主页

已登录主页:

已登录主页

登录页:

登录页

添加墨鱼page页面:

添加墨鱼page页面

直接使用release文件

moyu-page

  1. 直接运行
    PORT=8081 ./moyu-page

moyu-manager

  1. 初始化数据库(第一次运行)

    cat init.sql | sqlite3 db/moyu_manager.db
  2. 目录结构

    ├── bin
    │   └── moyu-manager
    └── db
        └── moyu_manager.db
  3. 运行

    PORT=8080 ./bin/moyu-manager
  4. 添加墨鱼page。如本项目在线demo:https://moyu-manager.linux.plus/,直接复制墨鱼page主页https://moyu-page.linux.plus/添加墨鱼page页面即可。在墨鱼manager中,如果已登录,可以点击title访问墨鱼page。

编译使用

依赖:

make: ^4.0

nodejs: ^18.0

go: ^1.19.0

sqlite: ^3.0

一键编译

  1. 进入项目目录。
    cd moyu
  2. 一键编译。
    make
  3. 运行墨鱼manager和墨鱼page。
    PORT=8081 target/bin/moyu-page
    PORT=8080 target/bin/moyu-manager
  4. (可选)清理项目,删除编译的墨鱼探针二进制等文件。
    make clean

手动编译

编译墨鱼page

  1. 进入项目目录。
    cd moyu/page
  2. 编译前端资源。
    cd frontend
    npm run build
  3. 编译后端项目。
    cd ../backend
    go build -o moyu-page --ldflags="-w -s" .

编译墨鱼manager

  1. 进入项目目录。
    cd moyu/manager
  2. 编译前端资源。
    cd frontend
    npm run build
  3. 编译后端项目。
    cd ../backend
    go build -o moyu-manager --ldflags="-w -s" .

Docker运行

前提说明

墨鱼page

墨鱼page直接运行docker无法获取宿主机信息,需要添加一些运行参数:

  1. 由于需要获取宿主机网络接口流量,所以需要以host方式运行docker。
  2. 获取磁盘分区信息需要/proc/N/mountinfo,所以需要将宿主机的某个进程的文件挂载到docker中,然后设置HOST_PROC_MOUNTINFO并运行项目。
  3. 项目PORT变量默认8081,可自行指定其他端口。

墨鱼manager

  1. 墨鱼manager依赖sqlite3,需要使用moyu/manager/backend/database/init.sql创建和初始化用户表数据。
  2. 请使用一下目录格式存放moyu-manager程序和数据库。
    root@liuxu:/tmp/moyu/manager# tree
    .
    ├── bin
    │   └── moyu-manager
    └── db
        └── moyu_manager.db

容器运行

墨鱼page

  1. 编译page镜像。
    docker build -t moyu-page -f PageDockerfile .
  2. 单磁盘挂载情况下运行,其中--network=host指定使用宿主机网络,--mount挂载dockerd的进程mountinfo文件到docker中,并设置HOST_PROC_MOUNTINFO为挂载的文件路径。
    docker run --network=host -e PORT=8081 --mount type=bind,source="/proc/$(pidof dockerd)/mountinfo",target=/root/mountinfo -e HOST_PROC_MOUNTINFO=/root/mountinfo moyu-page
  3. (可选)如果还有其他分区,如我的/boot/efi挂载到了独立分区,想获取到这个分区信息,需要把这个目录挂载到docker中。
    docker run --network=host -e PORT=8081 -v /boot/efi:/boot/efi:ro --mount type=bind,source="/proc/$(pidof dockerd)/mountinfo",target=/root/mountinfo -e HOST_PROC_MOUNTINFO=/root/mountinfo moyu-page

墨鱼manager

  1. 编译manager镜像。
    docker build -t moyu-manager -f ManagerDockerfile .
  2. 挂载数据库运行。
    docker run -e PORT=8080 -v ./db:/moyu-manager/db  moyu-manager

FAQ

  1. 我使用nginx做反代,设置了location /moyu{}该怎么办

    答:运行墨鱼page或墨鱼manager时,添加BASEURL=/moyu环境变量运行。

  2. 运行墨鱼manager,程序报找不到moyu_manager.db怎么办

    答:确认自己的目录结构是不是如下:

    ├── bin
    │   └── moyu-manager
    └── db
        └── moyu_manager.db

    然后进入bin/目录下运行moyu-manager

  3. 我想修改账号或者token

    答:运行sqlite3,通过sql修改。

    sqlite3 moyu_manager.db
    sqlite> UPDATE users SET token='token123' WHERE user='user'
  4. 我想创建新的账户和token 答:运行sqlite3,通过sql添加。

    sqlite3 moyu_manager.db
    sqlite> INSERT INTO users(user, token) VALUES('user1', 'token1');

原文标题:墨鱼探针v2.0:一款轻量的单页面服务器探针小工具

原文地址:https://www.vpsjyz.com/3010.html