seaworld008/aiops-system
GitHub: seaworld008/aiops-system
一个以证据为驱动、结合策略管控的 AIOps 平台,旨在让大模型辅助运维排查与自动化变更,同时通过严格的身份、策略和执行隔离机制确保操作安全可控。
Stars: 0 | Forks: 0
# AIOps 系统
[](https://github.com/seaworld008/aiops-system/actions/workflows/ci.yml)
[](LICENSE)
[](go.mod)
以证据为先的运维智能,结合策略管控的自动化。
**English** · [简体中文](README.zh-CN.md)
## 本项目存在的原因
现代运维团队已经拥有了指标、日志、Kubernetes、虚拟机、CI/CD、GitOps 和事件通道。他们通常缺乏的是一个可信赖的层级,该层级能够关联这些事实,解释其证据,并在不将权限移交给 LLM 的情况下执行极小范围的变更。
AIOps 系统基于以下四项原则设计:
- **结论必先有证据。** 每一项运维声明都必须引用有界且可追溯的证据。
- **模型提议,确定性系统决策。** CEL 策略、身份、审批、实时状态和已签名的计划共同管控执行过程。
- **不确定即停止并协调。** 副作用受到隔离和验证,且绝不盲目重试。
- **最小权限即架构边界。** 读和写 runner 具有独立的身份、队列、凭证和网络路径。
## 当前功能
| 领域 | 状态 | 可用内容 |
| --- | --- | --- |
| 信号接入 | 已实现 | 限定范围且已签名的 Alertmanager/Nightingale webhook,幂等性,去重基础 |
| 只读证据 | 已实现 | 针对 Prometheus、VictoriaLogs、Kubernetes、AWX、Argo CD、GitLab、Jenkins 和 GitHub Actions 的有界客户端 |
| 调查 | 已实现基础 | 持久化的事件/调查事实,加上严格的 mTLS READ Task Gateway;在类型化 connector registry 和 Temporal 调度接入之前,相关声明保持关闭状态 |
| 身份与策略 | 已实现基础 | Keycloak OIDC,工作区/环境 RBAC,已签名的 ActionEnvelope,三阶段 CEL 决策 |
| 执行安全 | 已实现基础 | 精确的 runner 权限范围,持久化的凭证撤销,TLS 1.3 mTLS Gateway,分离的 READ/WRITE 镜像,固定的可杀执行器,目标锁,心跳,取消和协调 |
| 生产自动化 | **已禁用** | 需要固定的真实 adapter、外部沙箱/网络闸机、非生产演练以及正式的 Go/No-Go 审批 |
| Web 控制台 / ChatOps | 已规划 | React 控制台和飞书工作流尚未发布 |
“已实现基础”意味着契约和可测试的核心部分已经存在;但**并不**代表 connector 或变更路径已准备好投入无人工干预的生产环境使用。
## 架构
```
flowchart LR
UI["Web / Feishu / Alert Webhooks"] --> IN["Verified ingestion and service mapping"]
IN --> CP["Go modular control plane"]
CP --> PG[(PostgreSQL)]
CP --> OBJ[(S3-compatible evidence store)]
CP --> TW["Temporal workflows"]
CP --> CEL["CEL policy engine"]
CP --> AI["Private / cloud model adapters"]
TW --> GW["Outbound Runner Gateway"]
GW --> RR["Read-only runners"]
GW --> WR["Split write runners + fixed executor"]
RR --> OBS["Metrics / logs / K8s / AWX / CI / Argo"]
WR --> MUT["Typed K8s / GitOps / AWX actions"]
KC["Keycloak"] --> CP
VAULT["Vault short-lived credentials"] --> RR
VAULT --> WR
```
首个发布版本面向具有多个工作区的单一自托管组织。PostgreSQL 是领域的唯一事实来源;Temporal 仅用于持久化编排。Runner 通信仅限出站,通过专用的 TLS 1.3 mTLS Gateway 进行。
## 安全模型
唯一被接受的变更输入是规范化、已签名的 `ActionEnvelope`。它绑定了确切的目标、参数、观察到的资源版本、前置条件、验证、补偿、风险、策略版本、凭证范围、幂等键和过期时间。
在写入开始之前,系统必须验证:
1. 确切的服务/环境映射;
2. 有效的签名和不可变的计划哈希;
3. 在计划、凭证和执行阶段的当前策略;
4. 绑定到确切计划和实时目标状态的非自我审批;
5. 在使用前锚定且在执行后持久撤销的单目标、短期凭证;
6. 所有全局、环境、connector 和操作的紧急切断开关;
7. 目标锁定和贯穿整个试点的生产并发限制;
8. 必须在释放前被杀死和清除的固定隔离执行器,随后进行操作后验证或处于保留锁定状态直到协调完成的 `UNCERTAIN` 状态。
有关完整契约,请参见[安全模型与实现蓝图](docs/architecture/implementation-blueprint-v3.md)。
## 快速开始
环境要求:
- Go 1.26.5
- PostgreSQL 16+(用于持久化和迁移测试)
- Temporal、Keycloak、Vault 和 S3 兼容存储(用于预期的生产架构)
使用内存版 repository 运行开发控制平面:
```
make test
make vet
make build
make run
```
然后检查:
```
GET http://localhost:8080/healthz
GET http://localhost:8080/readyz
GET http://localhost:8080/api/v1/session
```
内存模式仅供本地开发使用。除非配置了 PostgreSQL、限定了范围的 webhook 密钥和 Keycloak OIDC,否则生产模式在遇到未明确定义的情况时会拒绝执行(fails closed)。复制 [.env.example](.env.example) 作为参考;切勿提交真实凭证。
要运行真实的 PostgreSQL 迁移和 repository 测试:
```
AIOPS_TEST_POSTGRES_DSN='postgres://aiops:password@127.0.0.1:5432/aiops_test?sslmode=disable' \
go test -count=1 ./internal/store/postgres ./internal/execution/postgres
```
在 Docker/BuildKit 可用的情况下,构建物理隔离的 Runner 镜像:
```
make runner-images
```
WRITE 镜像默认为 `disabled`;M4 仅在 `non-production` 模式下执行 Linux 隔离能力探测,且仍不会认领任何作业。请参见[隔离 Runner 运行时管控](docs/operations/isolated-runner-runtime.md)。
## 文档
- [文档索引](docs/README.md)
- [架构概览](docs/architecture/overview.md)
- [2026 V3 实现蓝图](docs/architecture/implementation-blueprint-v3.md)
- [SME 内部试点计划](docs/plans/2026-07-10-sme-internal-aiops-pilot.md)
- [M4 隔离执行器设计](docs/plans/2026-07-11-isolated-executor-m4.md)
- [隔离 Runner 镜像与 Linux 运行时管控](docs/operations/isolated-runner-runtime.md)
- [路线图与发布关卡](docs/roadmap.md)
- [历史设计](docs/archive/README.md)
## 仓库布局
```
cmd/ control-plane, worker, separate READ/WRITE runners, fixed executor
build/package/ separate minimal READ and WRITE Runner image definitions
internal/ domain, policy, connectors, investigation, execution
migrations/ ordered PostgreSQL schema migrations
docs/architecture/ current architecture and trust contracts
docs/plans/ executable delivery plans
docs/archive/ superseded designs kept for traceability
.github/ CI and community templates
```
## 贡献与安全
我们欢迎设计评审、connector 相关工作、威胁建模、测试、文档以及经过仔细限定范围的功能。请从 [CONTRIBUTING.md](CONTRIBUTING.md) 开始,并在进行重大架构更改之前提出提案。
请勿在公开的 issue 中报告漏洞。请遵循 [SECURITY.md](SECURITY.md) 进行操作。
## 许可证
基于 [Apache License 2.0](LICENSE) 授权。
标签:AIOps, EVTX分析, Go, Ruby工具, 告警关联, 日志审计, 智能运维, 测试用例, 漏洞探索, 策略引擎, 网络安全挑战, 自动化运维, 请求拦截