# OpsxDB-Driver **Repository Path**: attacker/opsxdb-driver ## Basic Information - **Project Name**: OpsxDB-Driver - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-19 - **Last Updated**: 2026-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OpsxDB-Driver OpsxDB 的**驱动商店**:驱动描述符、agent 清单与驱动 jar 获取脚本。 对标三个参考对象(本仓库从中各取所长): | 参考 | 模式 | 我们取其 | |---|---|---| | **DBeaver** | 内置 Maven 坐标,首次连接按需下载,本地缓存 | 钉版本 + sha256 校验 + 镜像回退 | | **dbeaver-driver-all** | 离线驱动大全(clone 即得全部 jar,数百 MB) | `scripts/fetch.sh` 一键拉全(仅 OSS 驱动) | | **DBX** | 版本化 agent + 商店目录 | `index.yaml` 目录 + agent 清单 + Releases 发版 | ## 与 OpsxDB 的关系 OpsxDB 是**混合驱动架构**(详见主仓库 `agents/README.md`): - **native Go**:MySQL 族 / PG 族 / SQL Server / Oracle / SQLite / Redis / **Elasticsearch(原生 SQL API)** / **InfluxDB(原生 HTTP)** —— 编译内置,无 jar - **JVM agent 桥**:官方驱动 jar 由本仓库管理 —— **MongoDB / ZooKeeper / 达梦** > Elasticsearch 特别说明:官方 x-pack-sql-jdbc 在 basic 许可下拒绝工作 > (实测 "current license is non-compliant for [jdbc]"),故走原生 HTTP,**无需 jar**。 > `drivers/elasticsearch.yaml` 仅作该决策的记录。 ## 目录结构 ``` index.yaml # 驱动总目录(id / 接入方式 / 许可 / 获取方式) drivers/.yaml # 每个 agent 驱动一份清单:Maven 坐标 + sha256(开源)或 manualSource(商用) agents/jdbc/manifest.yaml # agent jar 自身的发版信息(gson 由 OpsxDB 启动时自动下载并钉 sha1) scripts/fetch.sh # 按清单下载驱动 jar:开源→Maven 自动;商用→打印官方获取指引 ``` ## 离线 / 内网环境 ```bash # 有网机器:打离线包(agent+gson+全部开源驱动,~6MB;本机缓存复用,只下缺的) ./scripts/pack.sh # 内网机器(二选一): ./scripts/import.sh dist-offline/opsxdb-driver-offline-*.zip # 显式导入 cp dist-offline/*.zip ~/.opsxdb/offline-driver-pack.zip # 放约定位置,OpsxDB 首次连接时自动导入 ``` 导入逐文件校验 manifest 里的 sha256;`import.sh --check` 可只验包不写入。 ## 快速开始 > OpsxDB 0.1.0+ 在**首次连接** agent 驱动时自动下载 agent jar 与本仓库登记的 > 开源驱动 jar(sha256 钉版本),无需先跑 fetch.sh。本脚本面向离线/内网环境 > (预先把 jar 放好),或商用驱动的手动获取指引。 ```bash # 拉取全部「开源可再分发」驱动 jar(MongoDB / ZooKeeper 全套,含 netty/slf4j 传递依赖) ./scripts/fetch.sh all # 或 ./scripts/fetch.sh mongodb # jar 落盘到 ~/.opsxdb/drivers//(OPSXDB_DRIVERS_HOME 可改) # 商用驱动(达梦等)许可原因不能代下,按提示自行放置: ./scripts/fetch.sh dameng # 打印官网下载指引与放置路径 ``` ## 给驱动添加新版本 1. 改 `drivers/.yaml`:`artifacts` 追加新版本的 maven 坐标 + 实测 sha256 (`shasum -a 256 `),旧版本保留可回退 2. `index.yaml` 的 `latest` 指向新版本 3. 发 PR / 直接推送 main ## 发版(agent jar) 1. 主仓库 `agents/jdbc/*.java` 有改动后,用 JDK 编译打包(命令见主仓库 `agents/README.md`) 2. 本仓库打 tag(如 `agent-jdbc-v0.2.0`),把 `opsx-agent-jdbc.jar` 上传为 Gitee/GitHub Release 资产 3. 更新 `agents/jdbc/manifest.yaml` 的 `version` 与 `artifacts[0].url` ## 许可 - 本仓库的描述符/脚本:Apache-2.0(LICENSE) - 驱动 jar 本体:各厂商许可证。`license: oss` 的自动下载;`license: proprietary` 的只给官方链接(DBeaver 对商用驱动同款处理)