
English | 中文
注意:关于弹性测试平台的更多信息,请查看 main2 分支。
ChaosBlade-Box 是一个功能丰富的混沌工程平台,支持多种故障注入场景,当前支持的场景包括:
我们提供了详细的部署指南,支持主机环境和 Kubernetes 环境部署:
部署文档包含: - ✅ 系统要求和前置条件 - ✅ 主机环境部署(Docker、直接部署) - ✅ Kubernetes 环境部署(Helm Chart) - ✅ 配置说明和最佳实践 - ✅ 常见问题排查 - ✅ 升级和卸载指南
进入克隆的项目根目录并执行编译:
# 构建整个项目(包括前端和 Java 后端)
make build
# 构建 Docker 镜像(可选参数:IMAGE_NAME, IMAGE_REGISTRY, VERSION)
make docker-build
# 示例:指定镜像仓库
make docker-build IMAGE_REGISTRY=registry.example.com/
# 打包 Helm chart
make helm-package
# 清理构建产物
make clean
# 显示帮助信息,查看所有可用命令
make help
获取程序包:从 RELEASES 下载最新的 jar 包
准备 MySQL:可以使用本地数据库或云数据库,开发/测试环境可使用 Docker 部署
配置环境变量(推荐):
export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/chaosblade?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai"
export SPRING_DATASOURCE_USERNAME="root"
export SPRING_DATASOURCE_PASSWORD="YourPassword123"
java -jar chaosblade-box-1.1.0.jar \
--spring.datasource.url="${SPRING_DATASOURCE_URL}" \
--spring.datasource.username="${SPRING_DATASOURCE_USERNAME}" \
--spring.datasource.password="${SPRING_DATASOURCE_PASSWORD}"
提示:详细部署步骤请参考 部署文档
使用浏览器访问:http://127.0.0.1:7001
获取 Helm Chart 包:从 RELEASES 下载最新的 helm 包
创建 Secret(推荐):
kubectl create secret generic chaosblade-secret \
--from-literal=mysql-password="YourPassword" \
-n chaosblade
helm install chaosblade-box chaosblade-box-1.1.0.tgz \
--set spring.datasource.password=$(kubectl get secret chaosblade-secret -n chaosblade -o jsonpath='{.data.mysql-password}' | base64 -d) \
--namespace chaosblade
提示:详细部署步骤请参考 部署文档
| 参数 | 说明 | 默认值 | 是否必需 |
|---|---|---|---|
spring.datasource.url |
MySQL 连接地址。如果使用 Helm 启动,无需指定 | - | Helm: 否 |
主机: 是 |
| spring.datasource.username | MySQL 用户名。如果使用 Helm 启动,无需指定 | root | Helm: 否
主机: 是 |
| spring.datasource.password | MySQL 密码 | - | 是 |
| spring.data.redis.host | Redis 主机地址 | localhost | 否 |
| spring.data.redis.port | Redis 端口 | 6379 | 否 |
| spring.data.redis.password | Redis 密码 | - | 否 |
| chaos.cache.enable | 是否启用缓存 | false | 否 |
| chaos.function.sync.type | 初始化混沌数据类型。首次启动可使用 ALL | ALL | 否 |
| chaos.agent.version | chaosblade-box-agent 版本 | 1.1.0 | 否 |
| chaos.agent.repository | chaosblade-box-agent 镜像仓库 | ghcr.io/chaosblade-io/chaosblade-box-agent | 否 |
| chaos.agent.url | chaosblade-box-agent 二进制包 URL | [OSS 链接] | 否 |
| chaos.agent.helm | chaosblade-box-agent Helm 包 URL | [OSS 链接] | 否 |
| chaos.server.domain | ChaosBlade Box 访问地址(用于 Agent 连接) | - | 主机部署必需 |
ALL:初始化所有混沌实验数据(首次部署推荐)ChaosBlade:仅初始化 ChaosBlade 相关数据UserApp:仅初始化用户应用数据None:不初始化数据(生产环境后续启动推荐)LITMUS_CHAOS:仅初始化 Litmus Chaos 数据# 检查 MySQL 服务状态
docker ps | grep mysql
# 测试连接
mysql -h DATASOURCE_HOST -u DATASOURCE_USERNAME -p
# 检查 Redis 服务状态
docker ps | grep redis
# 测试连接
redis-cli -h REDIS_HOST -p 6379 ping
# 查看 Pod 日志
kubectl logs <pod-name> -n chaosblade
# 查看 Pod 详情
kubectl describe pod <pod-name> -n chaosblade
# 检查事件
kubectl get events -n chaosblade
请参考详细的 部署文档 获取完整的故障排查指南。
┌─────────────────────────────────────────────────────┐
│ ChaosBlade Box │
│ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ Web UI │ │ API Server │ │ Scheduler│ │
│ └──────────────┘ └──────────────┘ └───────────┘ │
└──────────────┬──────────────────────────────────────┘
│
┌──────┴──────┐
│ │
┌────▼────┐ ┌────▼────┐
│ MySQL │ │ Redis │
└─────────┘ └─────────┘
│
┌──────┴──────────────────┐
│ │
┌────▼─────┐ ┌──────▼──────┐
│ Agent │ │ Agent │
│ (Host) │ │ (K8s) │
└──────────┘ └─────────────┘
# 1. 备份数据库
mysqldump -u root -p chaosblade > backup.sql
# 2. 停止旧版本
kill $(cat chaosblade-box.pid)
# 3. 启动新版本
java -jar chaosblade-box-1.1.0.jar ...
# 使用 Helm 升级
helm upgrade chaosblade-box chaosblade-box-1.1.0.tgz \
-f custom-values.yaml \
--namespace chaosblade
# 停止应用
kill $(cat chaosblade-box.pid)
# 清理数据(可选)
docker stop mysql-8.0 redis
docker rm mysql-8.0 redis
# 卸载 Helm Release
helm uninstall chaosblade-box -n chaosblade
# 删除命名空间
kubectl delete namespace chaosblade
如需报告 Bug、提问或讨论,请提交 GitHub Issues。
您也可以通过以下方式联系我们: * 钉钉群(推荐中文用户):23177705 * Slack 群组:chaosblade-io * Gitter 聊天室:chaosblade community * 邮箱:chaosblade.io.01@gmail.com * Twitter:chaosblade.io
我们欢迎每一个贡献,即使只是标点符号。详见 CONTRIBUTING
我们开源项目的初衷是降低混沌工程在企业中的实施门槛,因此我们非常重视项目在企业中的使用情况。欢迎大家在此 ISSUE 登记。登记后,您将被邀请加入企业邮件组,讨论混沌工程在企业落地过程中遇到的问题并分享落地经验。
ChaosBlade-Box 使用 Apache License 2.0 许可证。详见 LICENSE 文件。
Star 我们的项目,获取最新更新! ⭐
$ claude mcp add chaosblade-box \
-- python -m otcore.mcp_server <graph>