NineData DBClaw(数据库智能卫士)是一款 AI 原生的数据库诊断开源产品。
1.0K
NineData DBClaw(数据库智能卫士)是一款 AI 原生的数据库诊断开源产品。它将数据库接入、指标监控、告警处理、自动巡检、知识增强和对话式诊断整合在一个私有化部署系统中,帮助 DBA、SRE 和平台团队更快发现问题、定位根因并沉淀运维经验。
https://github.com/ninedata-cloud/dbclaw


# 使用 dockerhub 中央仓库
docker run -itd -p 9939:9939 --name dbclaw ninedata/dbclaw:latest
git clone https://github.com/ninedata-community/dbclaw.git
cd dbclaw
python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
cp .env.example .env
至少需要为本地开发确认这些配置:
APP_HOST=0.0.0.0
APP_PORT=9939
DATABASE_URL=postgresql+asyncpg://dbclaw:your-postgres-password@localhost:5432/dbclaw
ENCRYPTION_KEY=your-fernet-key-here
PUBLIC_SHARE_SECRET_KEY=replace-with-random-public-share-secret
INITIAL_ADMIN_PASSWORD=admin1234
生成 ENCRYPTION_KEY:
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
生产环境请使用强随机值替换 PUBLIC_SHARE_SECRET_KEY 和默认管理员密码。
python run.py
启动后访问:
http://127.0.0.1:9939adminadmin1234,可通过 INITIAL_ADMIN_PASSWORD 覆盖首次登录后,建议先进入“AI 大模型管理”添加至少一个可用模型。未配置模型时,监控、巡检、数据源管理等基础能力仍可使用,但 AI 对话和 AI 诊断能力不可用。
DBClaw 提供统一的任务调度能力,用于执行周期性运维任务,例如巡检触发、指标同步、通知分发或自定义自动化流程。
操作入口:
左侧导航 -> 任务调度管理
主要能力包括:
项目提供单容器镜像,容器内包含 PostgreSQL、FastAPI 服务和静态前端。首次启动时,如果未显式提供运行密钥和数据库参数,容器会自动生成并持久化到 /app/data/bootstrap/runtime.env。
docker build -t dbclaw:latest .
docker run -d \
--name dbclaw \
-p 9939:9939 \
-v dbclaw-pgdata:/var/lib/postgresql/data \
-v dbclaw-appdata:/app/data \
-v dbclaw-uploads:/app/uploads \
dbclaw:latest
发布指定版本镜像时可注入构建信息:
docker build \
--build-arg APP_VERSION=1.0.0 \
--build-arg BUILD_COMMIT=$(git rev-parse --short HEAD) \
--build-arg BUILD_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ) \
-t dbclaw:1.0.0 .
持久化目录:
/var/lib/postgresql/data:容器内 PostgreSQL 数据/app/data:应用运行数据、日志和自动生成配置/app/uploads:上传附件常用环境变量:
APP_HOST / APP_PORT:服务监听地址和端口,默认 0.0.0.0:9939DATABASE_URL:PostgreSQL 元数据库连接串ENCRYPTION_KEY:数据库密码等敏感信息的 Fernet 加密密钥PUBLIC_SHARE_SECRET_KEY:公开分享链接签名密钥INITIAL_ADMIN_PASSWORD:初始管理员密码,默认 admin1234METRIC_INTERVAL:首次启动时的指标采集周期,默认 60 秒AI 模型配置优先在 Web 控制台的“AI 大模型管理”中维护。OPENAI_* 环境变量仅作为兜底兼容配置。
GET /health:基础健康检查常用命令:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python run.py
运行测试:
python -m pytest
python -m pytest -m unit
python -m pytest -m service
python -m pytest -m api
python -m pytest --cov=backend --cov-report=term-missing
添加数据库诊断能力时,通常在 backend/skills/builtin/ 中新增技能 YAML,并为技能声明参数、权限和异步执行逻辑。更多项目约定可参考 AGENTS.md 和 CLAUDE.md。
ENCRYPTION_KEY 和 PUBLIC_SHARE_SECRET_KEY。/app/data、/app/uploads。DBClaw 采用轻量、易部署的架构:
核心目录:
backend/ FastAPI 后端、路由、服务、模型、技能系统
frontend/ 原生 JavaScript 前端页面、组件和静态资源
docs/ 产品、设计和实施文档
docker/ 单容器启动脚本与 supervisor 配置
tests/ pytest 测试用例
run.py 本地启动入口
欢迎提交 Issue、功能建议、文档改进和代码补丁。参与贡献前,请先阅读 CONTRIBUTING.md。
NineData DBClaw is released under the MIT License.
Content type
Image
Digest
sha256:113b882de…
Size
476.8 MB
Last updated
about 1 month ago
docker pull ninedata/dbclaw