标签

AIOps实践:自研开源平台架构深度解析

发布时间:2026-07-19 09:05阅读:3

项目地址:

项目刚上线,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 | 核心能力模块一览