# SeeyonOPT 运维工作台使用文档

# 1. 功能概览

SeeyonOPT 运维工作台用于集中管理中间件、数据库和对象存储的日常运维操作。

模块 主要功能 使用角色
常用工具 维护并打开常用运维平台快捷入口 全部用户查看,管理员维护
运行概览 查看连接数量、中间件类型及启用情况 全部用户
连接管理 管理 Redis、Kafka、ES、ClickHouse、数据库、对象存储、HTTP、TCP 连接;测试连接并授权用户 全部用户查看已授权连接,管理员维护
运维工作台 对 Redis、Kafka、ES、ClickHouse、对象存储、HTTP、TCP 执行诊断或受控操作 现场支持、管理员
数据库 SQL MySQL、达梦、金仓的 SQL 查询、结果导出及受控写操作 现场支持、管理员
数据处理 对象存储迁移/备份;数据库迁移、逻辑备份和恢复 管理员
NFS 日志检索 单选环境查询、预览和下载普通、Gzip、ZIP 日志 现场支持、管理员;仅管理员配置环境
模型配置 配置 AI 模型服务,并在工作台中辅助分析执行结果 管理员配置,登录用户使用
用户管理 管理用户、角色、状态和密码 管理员
操作审计 查询中间件操作记录及数据库 SQL 审计记录 审计员、管理员

# 2. 安装与启动

# 2.1 选择并解压发布包

确认服务器 CPU 架构:

uname -m
服务器架构 发布包
x86_64 middleware-console-linux-amd64-<版本>.tar.gz
aarch64 middleware-console-linux-arm64-<版本>.tar.gz

以 AMD64 为例:

mkdir -p /opt/middleware-console

tar -xzf middleware-console-linux-amd64-<版本>.tar.gz \
  -C /opt/middleware-console

cd /opt/middleware-console/middleware-console-linux-amd64-<版本>
cp configs/application.example.yml configs/application.yml

# 2.2 配置运行目录

修改 configs/application.yml

# HTTP 服务监听地址。默认仅允许本机访问;如需对外提供服务,请配置为实际网卡地址并配合网络访问控制。
host: 127.0.0.1

# HTTP 服务监听端口,取值范围为 1-65535。
port: 8080

# 控制台对外访问路径。默认根路径 /;如需使用nginx等代理服务代理,需设置非 / 的子路径,默认 / 。
base_path: /

# 本地数据目录,用于保存 SQLite 数据库、密钥材料及运行数据。生产环境应使用受限权限的持久化目录。
data_dir: ./data

# 登录 JWT 的有效期。活跃会话会按服务端规则滑动续期。
token_ttl: 30m

# 对外连接和请求的最长处理时间。
request_timeout: 30s

# 单次数据库查询允许返回的最大预览行数,超出部分请使用导出功能获取。
max_rows: 1000

# 单次接口响应的最大字节数,防止大响应占用过多服务端与浏览器内存。
max_response_bytes: 4194304

# 普通 HTTP 请求体的最大字节数。
max_request_bytes: 1048576

# 对象存储上传文件的最大字节数。
max_upload_bytes: 20971520

# 本地备份文件的存放根目录。建议与 data_dir 位于受控的持久化磁盘中,对象存储、数据库备份会存放在此。
backup_root: ./data/backups

# NFS 日志设置:必须配置受信任的挂载根目录白名单;管理员仅可添加这些目录及其子目录作为环境日志根目录。
# 服务运行账号应仅拥有此处挂载目录及子目录的只读权限。
# 防止进行 rootfs 逃逸。
nfs_log_allowed_roots:
  - /data/nfsdb

# 可选的首次初始化日志目录;必须位于 nfs_log_allowed_roots 内。留空时由管理员通过页面配置环境。
# nfs_log_base_dir: ""

data_dir 保存程序数据和密钥,backup_root 保存数据库备份文件;请限制无关账号访问,并在升级时保留这两个目录。

# 2.3 前台启动与验证

cd /opt/middleware-console/middleware-console-linux-amd64-<版本>
./middleware-console --config ./configs/application.yml

浏览器访问 http://<服务器地址>:8080,进入入页面管理员账号admin/admin123,请自行修改密码。

curl http://127.0.0.1:8080/api/health

正常返回:

{"status":"ok","version":"<版本>"}

# 2.4 使用 systemd 守护运行

创建 /etc/systemd/system/middleware-console.service

[Unit]
Description=SeeyonOPT Middleware Console
After=network-online.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/middleware-console/middleware-console-linux-amd64-<版本>
ExecStart=/opt/middleware-console/middleware-console-linux-amd64-<版本>/middleware-console --config /opt/middleware-console/middleware-console-linux-amd64-<版本>/configs/application.yml
Restart=on-failure
RestartSec=5

# 使用 PATH 自动探测数据库工具时,确保对应目录已加入 PATH。
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

[Install]
WantedBy=multi-user.target

加载并启动:

systemctl daemon-reload
systemctl enable --now middleware-console
systemctl status middleware-console --no-pager

推荐创建专用运行账号后替换 User=root,并授予该账号 data_dirbackup_root 和数据库工具的访问权限。

# 3. 页面使用说明

# 3.1 登录、账户和角色

首次启动时创建管理员账号,后续使用账号密码登录。登录后可修改自己的密码、退出登录。

系统角色包括:访客、现场支持、审计员、管理员。连接是否可见还受连接授权控制;管理员默认拥有全部连接权限。

  • 访客:查看已授权连接、概览及常用工具;
  • 现场支持:执行中间件和数据库的只读诊断操作;
  • 审计员:查看操作审计;
  • 管理员:拥有连接、数据处理、AI、用户和系统配置等管理权限。

# 3.2 常用工具与运行概览

  • 常用工具 中按分类查看并打开运维平台快捷地址;管理员可维护分类和书签。
  • 运行概览 中查看连接总数、启用状态和各类中间件连接分布,用于快速确认当前资产情况。

# 3.3 连接管理

进入 连接管理 后,可按名称、地址或类型筛选已授权连接,并执行测试连接。

管理员可新建、编辑、启停、删除连接,设置标签和授权用户。支持的连接类型包括:

  • Redis;
  • Kafka;
  • Elasticsearch;
  • ClickHouse;
  • MySQL、达梦、金仓;
  • S3/MinIO/阿里云 OSS/华为云 OBS 等对象存储;
  • HTTP/API;
  • TCP。

连接密码、Access Key 等敏感信息加密保存;编辑已有连接时敏感字段留空表示保持原值。

# 3.4 运维工作台

进入 运维工作台,选择已授权且启用的中间件连接,测试或执行运维操作。执行结果支持表格、JSON、原始文本展示和复制;可将结果发送给 AI 进行辅助分析。

类型 可执行的主要操作
Redis 执行命令;查看 INFO、集群信息、慢日志、客户端、键扫描与内存信息
Kafka 查看 Topic;消费消息;查看 Offset 范围和消息堆积
Elasticsearch 集群健康、节点、索引、分片、映射、模板、搜索等 HTTP 请求
ClickHouse 执行 SQL;查看版本、库表、表结构、活动查询、大表和 Merge 状态
对象存储 查看 Bucket 和对象;目录导航;文本/JSON/图片/PDF 预览;下载;管理员上传
HTTP/API 发起 GET、POST、PUT、DELETE、HEAD 请求,自定义 Headers 和 Body
TCP 测试目标地址的 TCP 建连及耗时

写操作由后端再次限制,仅管理员可以执行。Kafka 当前仅提供只读排查能力,不支持生产消息、提交 Offset 或修改 Topic 配置。

# 3.5 数据库 SQL

数据库 SQL 中选择 MySQL、达梦或金仓连接后,可执行 SQL、查看结果并导出 CSV 或 TXT。

  • 支持快捷 SQL:SELECT 1、当前时间、数据库版本;
  • 可以只执行编辑器中选中的 SQL 片段;
  • 支持 SELECTINSERTUPDATEDELETE
  • 禁止多语句、DDL、DCL;UPDATEDELETE 必须带 WHERE
  • 写操作仅管理员可执行;
  • 每次执行均会记录 SQL 审计,变更操作可保留恢复 SQL。

# 3.6 NFS 日志检索

NFS 日志检索用于在服务器已挂载的 NFS 目录中查询和下载应用日志。服务不会自动挂载 NFS,也不会允许客户端通过请求参数指定任意服务器路径。

# 环境配置

  1. 确认 NFS 已挂载,例如挂载点为 /mnt/nfs
  2. configs/application.yml 中配置白名单:
nfs_log_allowed_roots:
  - /mnt/nfs

# 推荐留空,由管理员登录页面后添加多个环境
nfs_log_base_dir: ""
  1. 使用 admin 账号进入 NFS 日志检索 页面,点击页面内的 NFS 设置
  2. 为每个环境填写自定义名称和日志根目录,例如:
环境 日志根目录
开发环境 /mnt/nfs/dev/nfsdb
测试环境 /mnt/nfs/test/nfsdb
生产环境 /mnt/nfs/prod/nfsdb

环境根目录下的一级目录必须是应用名,应用目录下可以继续包含 Pod、日期等子目录,例如:

/mnt/nfs/dev/nfsdb/app-common-poc/app-comon-*.log
/mnt/nfs/dev/nfsdb/app-common-poc/app-common-&lt;podName>/app-comon-*.log

查询时只能选择一个环境,不支持跨环境聚合。adminsupport 可以查询、预览和下载,只有 admin 可以查看或修改 NFS 设置。

# 日志和查询规则

  • 支持普通文本日志、.gz.zip 归档;ZIP 可以包含多个日志条目。
  • 支持关键词、文件名 Glob、日志行时间范围和排除 Glob;默认排除 access_log*.log,显式传入空排除条件可以取消默认规则。
  • 未指定时间时查询最近 7 天;开始时间和结束时间可以是任意历史日期,但单次查询或下载跨度最多 7 天。
  • 预览默认最多返回 5,000 条记录,默认最多扫描 200 个候选文件和 100 MiB 内容;设置页可调整资源上限。
  • ZIP 归档最多读取 1,000 个非目录条目,单条解压后最多 256 MiB,总解压后最多 1 GiB。
  • 白名单、环境目录、应用目录和日志文件必须是已存在的真实目录或文件,不能使用符号链接;服务发现到不安全路径时会拒绝或跳过读取。

# 权限与安全要求

  • visitorauditor 无权访问 NFS 日志检索接口。
  • support 可以访问已配置环境中的日志,但不能查看或修改服务器绝对路径配置。
  • 运行账号对 NFS 挂载点及日志子目录只授予只读权限,不要将 /、用户目录、应用数据目录等非 NFS 目录加入白名单。
  • NFS 挂载异常、权限不足或日志归档损坏时,请先检查服务账号权限和系统挂载状态,再查看服务日志。

# 3.7 数据处理(对象存储与数据库)

数据处理 仅管理员可使用,包含对象存储和数据库两类后台任务。任务可查看状态、进度、详情和错误信息;执行中任务可取消。

# 对象存储

  • 跨端迁移:选择源/目标对象存储连接、Bucket 和 Prefix 后异步迁移对象;
  • 本地备份:将指定 Bucket/Prefix 的对象备份至服务端安全目录;
  • 可查看对象数、失败数、已处理字节数等任务信息。

# 数据库

  • 同类型迁移:在同一数据库类型的源/目标连接间迁移数据库或 Schema;支持多组映射,以及目标不存在时自动创建;
  • 逻辑备份:调用数据库官方工具生成 ZIP 归档,任务完成后可下载;
  • 备份恢复:上传本系统生成的 ZIP,选择目标连接和目标数据库/Schema 后执行恢复;
  • 备份工具路径:配置或重新探测数据库官方工具,保存后立即生效。

数据库工具对应关系:

数据库 备份工具 恢复工具
MySQL / MariaDB mysqldump mysql
达梦 dexp dimp
金仓 sys_dump sys_restore

工具必须安装在运行本程序的服务器节点。路径未配置时,程序会从服务进程的 PATH 自动查找;也可在页面填写绝对路径。

备份 ZIP 保存在 <backup_root>/database-backup/;恢复上传的 ZIP 仅在执行期间临时保存,任务完成、失败或取消后自动删除。恢复失败会中断任务,但已成功执行的一部分 DDL/DML 不会自动回滚,建议恢复到新建的空数据库或 Schema。

# 3.8 模型配置与 AI 辅助

管理员在 模型配置 中配置模型服务商、Base URL、模型名、温度和 API Key。支持 OpenAI、OpenAI 兼容接口、DeepSeek、通义千问、智谱 AI 及自定义服务商。

保存配置后,登录用户可在模型配置页对话,也可以在运维工作台中对当前连接、执行参数、结果和错误进行辅助分析。AI 回复支持 Markdown、代码块和复制。

# 3.9 用户管理与操作审计

用户管理 仅管理员可使用,可新建用户、修改角色和状态、重置密码、停用或删除用户。系统至少保留一个启用的管理员;存在历史审计记录的用户应停用而非删除。

操作审计 供审计员和管理员使用,支持按用户、操作类型和时间范围筛选:

  • 中间件审计:记录连接、操作、执行结果、耗时、客户端 IP 和参数摘要;
  • 数据库 SQL 审计:记录数据库信息、SQL 类型、影响行数、原始 SQL 和恢复 SQL;可在详情中复制 SQL 内容。

# 4. Nginx 反向代理

生产环境建议程序监听 127.0.0.1:8080,由 Nginx 提供 HTTPS 与外部访问。

# 4.1 根路径部署

server {
    listen 443 ssl http2;
    server_name console.example.com;

    ssl_certificate /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;

    # 不小于 application.yml 中的 max_upload_bytes。
    client_max_body_size 200m;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        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;
    }
}

# 4.2 子路径部署

configs/application.yml 中的 base_path 设置为 /tool/ 后重启服务,/tool/为示例,具体可根据实际情况自行调整:

base_path: /tool/

Nginx 应将原始 /tool/ 路径完整转发给应用:

location = /tool {
    return 301 /tool/;
}

location /tool/ {
    proxy_pass http://127.0.0.1:8080;
    proxy_http_version 1.1;
    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_pass 地址末尾不要添加 /,否则 Nginx 会去除 /tool/ 前缀,与服务配置不一致。服务会在 /tool/ 下同时提供页面、静态资源和 /tool/api/* 接口,并将 /tool 重定向至 /tool/

检查并重载 Nginx:

nginx -t && systemctl reload nginx

完成后通过nginx访问。管理控制台应通过内网、VPN、访问控制名单或统一认证保护,不要直接暴露到公网。

# 5. 常用运维命令

# 服务状态与日志
systemctl status middleware-console --no-pager
journalctl -u middleware-console -n 200 --no-pager
journalctl -u middleware-console -f

# 重启服务与本机健康检查
systemctl restart middleware-console
curl http://127.0.0.1:8080/api/health

# 检查当前账号能否发现数据库工具
command -v mysqldump
command -v mysql
command -v dexp
command -v dimp
command -v sys_dump
command -v sys_restore

# 6. 使用截图

1787469031348.png 1787469094886.png 1787802628937.png 1787802512252.png 1787469370342.png 1787469396690.png 1787802865572.png 1787469417498.png

# 7. 下载链接⛓️

通过网盘分享的文件:middleware-console 链接: https://pan.baidu.com/s/1DDmZ4-esIUc9F7uilWTiaA 提取码: rmnq

编撰人:zhenxy