feat(ldap): Active Directory 双目录支持与 Docker 构建优化
- 新增 ldap_ad.go,支持 AD 密码编码、字段映射与目录类型判断 - 重构 ldap/ldap_users/ldap_ou,兼容 OpenLDAP 与 AD 登录、导入、OU 浏览 - 前端系统设置增加目录类型选择与 AD 配置项 - Dockerfile 按 TARGETARCH 单架构编译 Agent,限制 Node 内存防 OOM - run.sh 新增 docker fast/upgrade,README 补充 LDAP/AD 与常见问题
This commit is contained in:
1 parent
0f0f2770e1
commit
78c27037e3
12 files changed
+613
-226
No files matched your search
@@ -19,6 +19,7 @@
|
||||
- WebSocket (Gorilla) / PTY 终端 (creack/pty)
|
||||
- 自研轻量 Kubernetes HTTP 客户端(channel.k8s.io WebSocket 协议)
|
||||
- go:embed 嵌入前端静态资源(单二进制 / 单容器部署)
|
||||
- **LDAP / Active Directory** 统一身份认证(登录、用户列表、批量导入)
|
||||
- Agent CLI 引擎(`pkg/agentcli/`):ReAct + Evolver + 双协议 LLM(OpenAI / Anthropic)
|
||||
|
||||
### Agent
|
||||
@@ -63,15 +64,31 @@ curl http://localhost:8080/version # 查看运行版本
|
||||
### Docker Compose 部署
|
||||
|
||||
```bash
|
||||
./run.sh docker up # 构建并启动 (MySQL + Redis + AIOps)
|
||||
./run.sh docker up v1.5.0 # 指定版本构建
|
||||
./run.sh docker push v1.5.0 # 构建并推送到 lghost/aiops
|
||||
# 日常推荐:镜像已存在时,跳过构建直接启动(低负载)
|
||||
./run.sh docker fast
|
||||
|
||||
# 访问(前后端同一端口)
|
||||
# http://localhost:8080
|
||||
# http://localhost:8080/version
|
||||
# 代码有变更:增量构建 + 启动
|
||||
./run.sh docker up
|
||||
./run.sh docker up v1.5.0 # 指定版本构建
|
||||
|
||||
# 仅升级应用容器,不重建 MySQL/Redis
|
||||
./run.sh docker upgrade
|
||||
|
||||
# 依赖或缓存异常时:无缓存全量重建
|
||||
./run.sh docker up fresh
|
||||
|
||||
./run.sh docker push v1.5.0 # 构建并推送到 lghost/aiops
|
||||
./run.sh docker down # 停止容器
|
||||
./run.sh docker logs # 查看日志
|
||||
```
|
||||
|
||||
访问地址(前后端同一端口):
|
||||
|
||||
- http://localhost:8080
|
||||
- http://localhost:8080/version(健康检查推荐,无 DB 依赖)
|
||||
|
||||
> **小机器提示(2 核 / 8GB)**:`docker up` 会触发前端 `npm run build`(临时 `node` 进程 CPU 可达 100%+),属构建期正常现象;AIOps 运行时仅为 Go 二进制,稳态 CPU 通常 < 1%。日常用 `docker fast` 可避免重复编译。
|
||||
|
||||
### Kubernetes 部署
|
||||
|
||||
```bash
|
||||
@@ -112,6 +129,30 @@ curl http://localhost:8080/version # 查看运行版本
|
||||
| ops01 | 123456 | 运维 |
|
||||
| dev01 | 123456 | 开发 |
|
||||
|
||||
> 生产环境请修改默认密码与 `JWT_SECRET`。
|
||||
|
||||
## LDAP / Active Directory
|
||||
|
||||
系统设置 → LDAP 支持 **OpenLDAP** 与 **Active Directory** 双目录:
|
||||
|
||||
| 能力 | OpenLDAP | Active Directory |
|
||||
|------|----------|------------------|
|
||||
| 连接 / 登录认证 | ✅ | ✅ |
|
||||
| 用户列表 / 批量导入 | ✅ | ✅ |
|
||||
| OU / 容器浏览 | ✅ | ✅(含 `CN=Users` 等容器) |
|
||||
| 目录内创建用户 | ✅ | ✅(需 LDAPS + 服务账号权限) |
|
||||
|
||||
**AD 推荐配置示例**:
|
||||
|
||||
| 配置项 | 推荐值 |
|
||||
|--------|--------|
|
||||
| 目录类型 | Active Directory |
|
||||
| Base DN | `DC=company,DC=com` |
|
||||
| Admin DN | `CN=svc-aiops,CN=Users,DC=company,DC=com` |
|
||||
| 搜索过滤器 | 留空(使用内置兼容过滤器)或 `(sAMAccountName=%s)` |
|
||||
| 用户名字段 | `sAMAccountName` |
|
||||
| LDAPS | 创建 AD 用户时必须启用 |
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
@@ -144,7 +185,7 @@ aiops/
|
||||
├── deploy/kubernetes/ # K8s 部署清单 (devops 命名空间)
|
||||
├── docker-compose.yml # MySQL + Redis + AIOps embed(3 容器)
|
||||
├── docker-compose.k8s.yml # 单应用容器(连接外部 DB)
|
||||
├── Dockerfile # embed 单容器镜像(推荐)
|
||||
├── Dockerfile # embed 单容器镜像(推荐)
|
||||
├── run.sh # 统一入口脚本
|
||||
└── aiops # 独立二进制产物(gitignore,项目根目录)
|
||||
```
|
||||
@@ -161,7 +202,7 @@ aiops/
|
||||
| 自动化运维 | 定时任务、脚本库、**远程执行**(Go-native SSH,执行/上传) |
|
||||
| AIOps 智能 | AI 助手、告警分析、容量预测、**Agent CLI**(ReAct + WebSocket 实时回传 + 终端审计回放) |
|
||||
| 资源申请 | 云服务器/应用部署申请审批 |
|
||||
| 系统管理 | 用户/角色、操作审计、终端会话审计、凭证配置(7 种类型)、大模型设置(OpenAI + Anthropic 双协议) |
|
||||
| 系统管理 | 用户/角色、**LDAP / AD 统一认证**、操作审计、终端会话审计、凭证配置(7 种类型)、大模型设置(OpenAI + Anthropic 双协议) |
|
||||
|
||||
### UI 与体验
|
||||
|
||||
@@ -169,6 +210,16 @@ aiops/
|
||||
- **7 套主题**:跟随系统、深海蓝、明亮白 + One Dark / Dracula / Tokyo Night / Catppuccin
|
||||
- **国际化**:i18next 框架,已覆盖 dashboard / server / alert / approval / audit / deploy / k8s 等模块
|
||||
|
||||
## 常见问题
|
||||
|
||||
| 现象 | 原因 | 处理 |
|
||||
|------|------|------|
|
||||
| `docker up` 时 `node` CPU 100%+ | Docker 构建前端(`npm run build`) | 正常,构建结束后自动消失;日常用 `docker fast` |
|
||||
| 构建后 load 仍偏高 | 宿主机其他服务(网关/监控 Agent) | `top` 排查非 AIOps 进程 |
|
||||
| MySQL 内存占用高 | 默认 buffer pool 较大 | Compose 已限制 `innodb-buffer-pool-size=256M` |
|
||||
| Mac 二进制无法在 Linux 运行 | 平台不匹配 | 在 Linux 构建或使用 Docker 镜像 |
|
||||
| LDAP 登录失败 | 过滤器/字段映射与目录类型不匹配 | 系统设置选择正确目录类型并配置 `user_mapping` |
|
||||
|
||||
## 文档
|
||||
|
||||
详细开发文档见 [docs/README.md](./docs/README.md)。
|
||||
|
||||
Reference in new issue
Block a user