seaworld008/aiops-system

GitHub: seaworld008/aiops-system

一个以证据为驱动、结合策略管控的 AIOps 平台,旨在让大模型辅助运维排查与自动化变更,同时通过严格的身份、策略和执行隔离机制确保操作安全可控。

Stars: 0 | Forks: 0

# AIOps 系统 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/99/993938d8ce5e902ccfb9d6747725c320d855dea3235ed9a304cedf0d94c9321f.svg)](https://github.com/seaworld008/aiops-system/actions/workflows/ci.yml) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) [![Go](https://img.shields.io/badge/Go-1.26.5-00ADD8?logo=go)](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工具, 告警关联, 日志审计, 智能运维, 测试用例, 漏洞探索, 策略引擎, 网络安全挑战, 自动化运维, 请求拦截