Archery + LDAP 一体化部署

Archery 是一个开源的 SQL 审核与运维管理平台,它主要面向 DBA 和开发人员,用于安全、可控地管理数据库变更、查询和慢 SQL 分析。
主要功能:
支持多种数据库:MySQL、PostgreSQL、SQLServer、ClickHouse 等
提供 SQL 审核、执行工单、慢 SQL 分析、查询权限控制
支持接入 LDAP、钉钉、企业微信、飞书 等认证方式
通过 Web 界面统一管理,提高数据库操作安全性与合规性

## 一、安装 Docker 与 Docker Compose
> 适用于 CentOS 7+

```bash
# 安装依赖
yum install -y yum-utils

# 添加 Docker 官方阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装 Docker 与 Compose 插件
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动并设置开机自启
systemctl enable docker --now

# 检查版本
docker -v
docker-compose version || docker compose version

# 若 docker-compose 插件不可用,可使用传统二进制安装:
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
```

 

## 二、部署 Archery

### 1. 下载 Archery 源码包

```bash
wget https://github.com/hhyo/Archery/archive/refs/tags/v1.13.0.tar.gz
tar xf v1.13.0.tar.gz
cd Archery-1.13.0/src/docker-compose
```

### 2. 启动容器服务

```bash
docker-compose -f docker-compose.yml up -d
```

> 默认会启动 `archery`、`mysql`、`redis`、`nginx` 等容器。
> 若端口冲突,请在 `.env` 中修改 `NGINX_PORT=9123`。

## 三、初始化数据库结构

进入容器:

```bash
docker exec -it archery /bin/bash
```

进入虚拟环境:

```bash
source /opt/venv4archery/bin/activate
cd /opt/archery
```

执行表结构初始化:

```bash
python3 manage.py makemigrations sql
python3 manage.py migrate
```

加载基础数据:

```bash
python3 manage.py dbshell < sql/fixtures/auth_group.sql
python3 manage.py dbshell < src/init_sql/mysql_slow_query_review.sql
```

创建管理员用户:

```bash
python3 manage.py createsuperuser
```

退出容器:
```bash
exit
```

---

## 四、日志与访问

查看运行日志:

```bash
docker logs archery -f --tail=100
```

访问系统:

```
http://<服务器IP>:9123
```

默认端口为 `.env` 文件中 `NGINX_PORT` 的值。