AIOps实践:自研开源平台架构深度解析
项目地址:
项目刚上线,bug无法避免,望大家理解并提issue。重要的是,请给个star!如果有你有啥好的想法,也可以找我聊,后期这个项目将会持续更新迭代,目标是打造业界AIOps标杆!
01 | 项目概览
SxDevOps 是一款将大模型深度嵌入运维控制中枢的 AIOps 系统,远非普通的"运维对话机器人"。
它尝试把监控、告警、事件、任务、工单、容器、主机和权限体系整合为一个可检索、可生成操作、可人工审批、可追溯审计的 Agent 工作流。该项目的产品理念较为完善,但核心调度代码已暴露出"代码臃肿、高度耦合"的明显缺陷,要成为高可用的生产级运维中枢仍需经历一轮工程层面的重构。
02 | 解决了什么问题
传统运维平台通常由多个相互割裂的界面构成:
Grafana 查看指标
Loki/ELK 检索日志
告警平台浏览事件
Jenkins 或脚本平台运行任务
Kubernetes 控制台管理容器
工单系统处理审批
CMDB 维护资源
SxDevOps 期望在这些系统之上构建一层统一的 Agent。用户无需精确判断该进入哪个页面、调用哪个接口,便可直接提出:
"分析这个告警为什么发生。" "查询这台主机最近一小时的 CPU、日志和关联变更。" "为这些机器生成一个磁盘清理任务。" "给出修复方案,但先不要执行。"
大模型承担意图识别、查询编排与结果解析;实际的数据访问、权限校验和动作执行依然由平台后端统一管控。官方明确的目标是"看态势、找证据、问系统、确认动作",而非赋予模型不受约束的服务器操作权限。
03 | 整体架构
后端采用 Django、Django REST Framework、Channels、Redis、Paramiko、Kubernetes Python SDK,并集成了阿里云和华为云 SDK;前端使用 Vue 3、Pinia、Vue Router、Element Plus、ECharts、xterm.js 和 Vite。Dockerfile 运用 Node 构建前端、Python 运行后端的多阶段构建方式,应用最终由 Daphne 启动。
核心后端应用涵盖:
aiops:Agent、模型、Skill、MCP、知识环境、对话和审计
ops:主机任务、部署、告警、日志、指标、链路、K8s、SSH、容器
rbac:角色、权限、资源和接口鉴权
eventwall:事件墙和事件源
sqlaudit:SQL 查询、审核和工单
cmdb:资源配置管理
multicloud:多云资源
iac:基础设施即代码
marketplace:功能或模块市场
这些模块最终都挂载在同一个 Django 项目和同一个应用容器中。
04 | Agent核心调用链
项目里最关键的并非对话界面,而是下面这条受控执行链:
第一次模型调用主要负责工具选择和信息采集;后端执行白名单工具后形成事实结果,再由第二次模型调用完成解释和格式整理。如果模型输出不合格,系统还设计了代码级降级结果。
05 | 内置能力拆解
代码和前端页面覆盖了:
指标查询
日志查询
调用链追踪
Grafana 链接
告警规则及告警信息
可观测性总览
关联事件和变更分析
Agent 内置工具中也出现了query_observability、query_event_wall等查询能力。
包含:
主机资源
SSH WebShell
主机任务
定时任务
任务资源和执行记录
部署工作台
任务生成与确认执行
内置 Agent 工具已经支持generate_host_task,但设计上先生成任务草案,再通过待确认动作进入执行链,而不是让大模型直接运行任意 Shell。
前端包含 Docker 容器、Kubernetes 资源和终端页面;后端有 Kubernetes API、K8s Exec Consumer、Docker Views 等模块,并依赖官方 Kubernetes Python SDK。
项目把 SQL 查询、SQL 审核、事务工单、操作审计和 AIOps 审计放进了同一个控制面。这个组合对于企业内部平台很有价值,因为 Agent 生成的动作可以与审批和审计记录关联,而不只是保留一段聊天记录。
06 | 核心能力模块一览