# sysom1.1 **Repository Path**: wangdong_cmcc/sysom1.1 ## Basic Information - **Project Name**: sysom1.1 - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-24 - **Last Updated**: 2026-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SysOM 1.1 — 系统运维管理平台 ## 概述 SysOM(System Operation & Maintenance)是一套**自动化智能运维(AIOps)平台**,提供从主机管理、监控告警、智能诊断到安全审计的全链路运维能力。平台采用微服务架构,通过 Nginx 反向代理统一对外暴露服务。 - **项目定位**: 面向 Linux 服务器的统一智能运维平台 - **架构风格**: 微服务架构(20+ 微服务) - **后端语言**: Python 3.8+ - **前端**: React + Umi.js + Ant Design - **向量搜索**: Qdrant + BGE-M3 embedding(可选模块,用于语义检索) - **AI 能力**: EVA AI 助手(LLM 驱动的智能诊断) ## 技术栈 ### 后端 | 类别 | 技术选型 | | ------ | --------- | | 语言 | Python 3.8+ | | 主 API 框架 | Django 3.2 + Django REST Framework 3.14 | | 微服务框架 | FastAPI 0.83 + Uvicorn 0.16 | | WSGI 服务器 | Gunicorn 20.1 | | 数据库 | MariaDB(PyMySQL 驱动) | | 缓存 / 消息 | Redis 4.3(事件总线 CEC + 服务发现 CMG + 分布式缓存 GCache) | | ORM | SQLAlchemy 1.4(FastAPI 服务)、Django ORM(Django 服务) | | 数据库迁移 | Alembic(FastAPI 服务)、Django migrations(Django 服务) | | 认证 | JWT(PyJWT 2.4) | | SSH | Paramiko 2.12 | | 异步 | aiohttp、aiofiles、asyncer | | 监控集成 | Prometheus + Grafana | | 向量搜索 | Qdrant(local/server 双模式)+ BGE-M3 embedding(Ollama 或独立 API) | | 调度 | django-apscheduler | | 基础 SDK | 自研 CEC / CMG / GCache / GClient | ### 前端 | 类别 | 技术选型 | | ------ | --------- | | 框架 | React 17 | | 构建工具 | Umi.js 3(Webpack 5) | | 状态管理 | Dva(Redux 体系)+ Zustand | | UI 组件库 | Ant Design 4.24 | | 图表 | @ant-design/charts、ECharts 5.4、AntV X6(流程图) | | 终端 | xterm.js(Web 终端) | | 代码编辑器 | CodeMirror | | 国际化 | Umi locale(zh-CN / en-US) | | 语言 | JavaScript(JSX)+ TypeScript | | 样式 | Ant Design 默认主题 + LESS | ### 基础设施 | 类别 | 技术选型 | | ------ | --------- | | 反向代理 | Nginx(按路径前缀分发到各微服务) | | 容器化 | Docker(AnolisOS 8.8 基础镜像) | | 打包 | 源码 tar.gz + RPM(spec) | | 监控 | Prometheus 采集 + Grafana 仪表盘 | ## 项目结构 ``` sysom1.1/ ├── conf/ # 全局配置文件 │ └── config.yml # 数据库、Redis、Kafka、JWT 等全局配置 ├── deps/ # 依赖服务脚本 │ ├── 0_mysql/ # MySQL/MariaDB 初始化 │ ├── 1_redis/ # Redis 初始化 │ ├── 2_nginx/ # Nginx 反向代理配置 │ ├── 3_prometheus/ # Prometheus 配置 │ └── 4_grafana/ # Grafana 仪表盘(JSON) ├── docker/ # Docker 构建文件 │ ├── sysom_base_dockerfile # 完整版 Dockerfile │ ├── sysom_base_lite_dockerfile # 精简版 Dockerfile │ └── sysom-init.service ├── docs/ # 设计文档(按微服务划分子目录,如 vmcore/、eva/) ├── environment/ # 运行时环境 │ ├── 0_env/ # Python 依赖(requirements.txt) │ └── 1_sdk/ # 自研 SDK 组件 │ ├── sysom_utils/ # 核心工具(ConfigParser、Framework、FastAPI 辅助) │ ├── cec_base/ # 事件中心(Event Center)抽象基类 │ ├── cec_kafka/ # CEC Kafka 实现 │ ├── cec_redis/ # CEC Redis 实现 │ ├── cmg_base/ # 通信管理组(CMG)抽象基类 │ ├── cmg_redis/ # CMG Redis 实现 │ ├── gcache_base/ # 全局缓存抽象 │ ├── gcache_redis/ # 全局缓存 Redis 实现 │ ├── gclient_base/ # 全局客户端抽象 │ ├── gclient_cmg/ # gclient CMG 实现 │ ├── gclient_http/ # gclient HTTP 实现 │ ├── channel_job/ # 通道任务执行框架 │ ├── clogger/ # 日志工具 │ ├── metric_reader/ # 监控指标读取器(Prometheus / OpenTSDB) │ └── redis_lua/ # Redis Lua 脚本 ├── sysom_server/ # 微服务源码 │ ├── sysom_api/ # API 网关(Django)—— 认证、主机管理 │ ├── sysom_diagnosis/ # 智能诊断(Django) │ ├── sysom_channel/ # SSH 通道(FastAPI) │ ├── sysom_alarm/ # 告警管理(FastAPI) │ ├── sysom_monitor_server/ # 监控代理(FastAPI) │ ├── sysom_log/ # 日志服务(FastAPI) │ ├── sysom_vmcore/ # Vmcore 分析(Django)— 详情见 sysom_vmcore/README.md │ ├── sysom_migration/ # 系统迁移(Django) │ ├── sysom_vul/ # CVE 漏洞管理(Django) │ ├── sysom_hotfix/ # 热补丁管理(Django) │ ├── sysom_hotfix_builder/ # 热补丁编译(FastAPI) │ ├── sysom_eva/ # EVA AI 助手(FastAPI) │ ├── sysom_knowledge/ # 知识库(FastAPI) │ ├── sysom_rca/ # 根因分析(FastAPI) │ ├── sysom_cec_proxy/ # 事件中心代理(FastAPI) │ ├── sysom_ad_proxy/ # 异常检测代理(FastAPI) │ ├── sysom_alert_pusher/ # 告警推送(FastAPI) │ ├── sysom_cluster_health/ # 集群健康度(FastAPI) │ ├── sysom_cmg/ # 通信管理组(FastAPI) │ ├── sysom_colocation/ # 混部服务(FastAPI) │ └── sysom_metric_anomaly_detection/ # 指标异常检测(FastAPI) ├── sysom_web/ # 前端应用 │ ├── config/ # Umi.js 配置 │ │ ├── config.js │ │ ├── routes.js # 前端路由定义 │ │ └── proxy.js │ └── src/ │ ├── locales/ # 国际化(zh-CN, en-US) │ ├── models/ # Dva 状态模型 │ ├── pages/ # 页面组件 │ │ ├── home/ # 首页仪表盘 │ │ ├── host/ # 主机管理 │ │ ├── monitor/ # 监控(Grafana 嵌入) │ │ ├── diagnose/ # 诊断中心 │ │ ├── security/ # 安全 / CVE │ │ ├── alarm/ # 告警管理 │ │ ├── hotfix/ # 热补丁 │ │ ├── vmcore/ # Vmcore 分析 │ │ ├── migrate/ # 系统迁移 │ │ ├── app_observable/ # 应用可观测 │ │ ├── eva/ # EVA AI 对话 │ │ ├── journal/ # 操作审计 │ │ ├── account/ # 用户管理 │ │ └── user/ # 登录 │ └── services/ # API 调用层 ├── script/ # 部署脚本 │ ├── deploy/ # deploy.sh、clear.sh │ └── server/ # 各微服务的 init/start/stop 脚本 ├── template/ # 微服务脚手架模板 ├── tools/ # 构建工具 │ ├── deploy/ # RPM spec 等 │ ├── add_new_server/ # 自动添加新微服务 │ └── convert_grafana_dashboard.py ├── package.sh # 源码打包脚本 ├── package_rpm_online.sh # RPM 在线打包 └── package_rpm_offline.sh # RPM 离线打包 ``` ## 架构设计 ### 整体架构 ``` ┌──────────────────────┐ │ 浏览器前端 │ │ React + Umi + AntD │ └──────────┬───────────┘ │ │ HTTP ▼ ┌──────────────────────┐ │ Nginx 反向代理 │ │ (路径前缀分发) │ └──┬───┬───┬───┬───────┘ │ │ │ │ ┌──────────────────┘ │ │ └──────────────┐ ▼ ▼ ▼ ▼ ┌────────────────┐ ┌──────────────┐ ┌────────────────┐ │ Django 服务 │ │ FastAPI 服务 │ │ FastAPI 服务 │ │ sysom_api(7001)│ │ sysom_channel │ │ sysom_eva(7024)│ │ sysom_diag(7002)│ │ (7003) │ │ (AI 助手) │ │ ... │ │ ... │ │ ... │ └───────┬─────────┘ └──────┬────────┘ └────────┬───────┘ │ │ │ │ │ │ ▼ ▼ ▼ ┌──────────────────────────────────────────────────────────┐ │ MariaDB │ └──────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ │ Redis │ │ (CEC 事件总线 · CMG 服务发现 · GCache 分布式缓存) │ └──────────────────────────────────────────────────────────┘ ``` ### 微服务列表 | 服务 | 端口 | 框架 | 职责 | | ------ | ------ | ------ | ------ | | sysom_api | 7001 | Django+DRF | API 网关、认证鉴权、主机管理、配置中心 | | sysom_diagnosis | 7002 | Django+DRF | 智能诊断(CPU/IO/网络/OOM/OS 检查) | | sysom_channel | 7003 | FastAPI | SSH 远程通道、文件传输、命令执行 | | sysom_vmcore | 7004 | Django | 内核崩溃转储分析、专家知识库、结构化+向量语义搜索(Qdrant + BGE-M3) | | sysom_vul | 7005 | Django | CVE 漏洞扫描与补丁管理 | | sysom_migration | 7006 | Django | 系统迁移评估与实施 | | sysom_hotfix | 7007 | Django | 内核热补丁全生命周期管理 | | sysom_monitor_server | 7009 | FastAPI | 监控数据代理(Grafana 代理转发) | | sysom_log | 7010 | FastAPI | 操作审计日志 | | sysom_cec_proxy | 7011 | FastAPI | 事件中心代理 | | sysom_alarm | 7012 | FastAPI | 告警管理与通知 | | sysom_rca | 7013 | FastAPI | 根因分析 | | sysom_ad_proxy | 7014 | FastAPI | 异常检测代理 | | sysom_knowledge | 7015 | FastAPI | 知识库管理 | | sysom_hotfix_builder | 7016 | FastAPI | 热补丁编译构建 | | sysom_metric_anomaly_detection | 7017 | FastAPI | 指标异常检测 | | sysom_alert_pusher | 7018 | FastAPI | 告警推送(Webhook、钉钉等) | | sysom_cluster_health | 7020 | FastAPI | 集群健康度监控 | | sysom_colocation | 7022 | FastAPI | 混部场景监控 | | sysom_cmg | 7023 | FastAPI | 通信管理组服务 | | sysom_eva | 7024 | FastAPI | EVA AI 智能助手 | ### 自研 SDK 通信层 平台内部构建了一套完整的 SDK 体系,用于微服务间通信、事件分发和服务发现: **CEC(Cloud Event Center)—— 事件中心** 异步事件总线,基于 Redis Pub/Sub 实现,用于服务间事件分发、告警分发、插件事件。各服务作为 Producer / Consumer 接入命名 Topic。SDK 同时提供 Kafka 适配器(cec_kafka),切换协议仅需修改配置项 `cec.protocol`。 **CMG(Communication Management Group)—— 通信管理组** 服务注册与发现组件,基于 Redis 实现。服务启动时向 CMG 注册自身实例,消费者通过 CMG 发现目标服务实例,实现内部分组通信和负载均衡。 **GCache(Global Cache)—— 全局缓存** 基于 Redis 的分布式缓存抽象层,提供服务级别的缓存读写接口。 **GClient(Global Client)—— 全局客户端** 抽象 RPC 客户端,支持 CMG(内部 Redis 服务发现)和 HTTP 直连两种模式,用于微服务间调用。 ### 前端页面功能 | 路由 | 页面 | 功能 | | ------ | ------ | ------ | | /home | 仪表盘 | 系统总览、资源概览 | | /host | 主机管理 | 主机列表、集群管理、Web 终端 | | /monitor | 监控 | 系统/集群/容器监控(Grafana 仪表盘) | | /diagnose | 诊断中心 | CPU/IO/网络/调度/OOM 智能诊断 | | /security | 安全中心 | CVE 漏洞扫描与修复 | | /alarm | 告警管理 | 告警规则、告警历史、通知配置 | | /hotfix | 热补丁 | 内核热补丁查看与下发 | | /vmcore | Vmcore | 内核崩溃转储分析(列表、详情、堆栈匹配、在线分析、NFS 配置、专家知识库) | | /migrate | 迁移 | 系统迁移评估与实施 | | /app_observable | 应用可观测 | MySQL/Nginx/网络拓扑/进程监控 | | /eva | EVA AI | 基于 LLM 的智能运维助手 | | /journal | 审计日志 | 操作审计与任务日志 | ## 关键设计决策 ### 1. 双框架并存 Django 服务(sysom_api、sysom_diagnosis 等)承载核心业务逻辑,利用 Django ORM、Admin 后台、APScheduler 等成熟生态。FastAPI 服务(sysom_channel、sysom_eva 等)承载高并发、I/O 密集型场景,利用异步 I/O 提供更好的吞吐性能。Nginx 按路径前缀将请求分发到不同框架的服务实例。 ### 2. 统一配置管理 全局配置位于 `conf/config.yml`,各服务通过 `ConfigParser` 合并自身配置与全局配置。所有配置项可通过环境变量覆盖(`DB_MYSQL_HOST`、`REDIS_HOST` 等),满足不同部署环境的需要。 ### 3. 自研 SDK 解耦 CEC、CMG、GCache、GClient 四个 SDK 组件提供了事件通信、服务发现、缓存和 RPC 调用的标准化接口,实现微服务间的松耦合通信,避免服务间直接 HTTP 调用带来的强依赖。 ### 4. Nginx 反向代理 + 固定端口 所有微服务通过固定端口独立部署,Nginx 作为统一入口按路径前缀分发(`/api/` → sysom_api,`/channel/` → sysom_channel 等),前端只感知单一入口,部署拓扑对前端透明。 ### 5. JWT 认证 基于 PyJWT 的 Token 认证体系,用户在 sysom_api 登录后获取 JWT Token,后续请求在 Nginx 或各服务中校验 Token,实现统一认证与授权。 ## 部署方式 | 方式 | 命令 | 说明 | | ------ | ------ | ------ | | 源码编译 | `bash package.sh` | 生成 sysomRelease-*.tar.gz | | RPM 打包 | `bash package_rpm_online.sh` | 生成 sysom-*.rpm | | Docker | `docker build -f docker/sysom_base_dockerfile .` | 容器化部署 | 详细部署步骤参见原文档 `script/deploy/deploy.sh` 或 Dockerfile。 ## 与 SysOM 1.0 的核心差异 | 对比项 | SysOM 1.0 | SysOM 1.1 | | -------- | ----------- | ----------- | | 后端架构 | 单体应用 | 微服务架构(20+ 服务) | | 通信方式 | 直接调用 | CEC/CMG 事件驱动 + 服务发现 | | 前端 | 传统模板 | React SPA + Umi.js | | AI 能力 | 无 | EVA AI 助手(LLM 驱动) | | 部署 | 手动脚本 | 支持 Docker + RPM + 源码三种方式 | | 监控 | 基础监控 | Prometheus + Grafana 集成 |