Skip to content

系统架构

整体架构

告警平台采用模块化、微服务架构设计,实现了高可用、可扩展的系统架构。整体架构如下图所示:

核心组件

1. 告警收集层

告警收集层负责从各种监控源收集告警数据,并进行标准化处理。主要组件包括:

  • Provider 插件:支持各种告警源的适配器
  • 标准化处理:将不同格式的告警转换为统一的 AlertDto 格式
  • 指纹生成:为每个告警生成唯一标识
  • 初步过滤:根据配置进行基础过滤

2. 告警处理引擎

告警处理引擎是系统的核心组件,负责告警的去重、富化和分类。主要功能包括:

  • 去重处理:基于指纹和哈希的两级去重机制
  • 告警富化:通过工作流添加上下文信息
  • 告警分类:根据内容和来源进行自动分类
  • 告警存储:将处理后的告警保存到数据库

3. 规则引擎

规则引擎负责基于预定义规则进行告警关联分析。主要特点包括:

  • CEL表达式:使用Common Expression Language定义规则
  • 时间窗口:支持基于时间窗口的告警关联
  • 分组条件:支持多维度分组条件
  • 阈值控制:可配置触发阈值

4. 工作流引擎

工作流引擎提供自动化处理能力,支持定义和执行复杂的操作流程。主要特点包括:

  • 触发器:支持多种触发条件
  • 操作步骤:丰富的预定义操作
  • 条件分支:支持复杂逻辑判断
  • 状态管理:完整的执行状态跟踪

5. 事件管理服务

事件管理服务负责事件的创建、更新和生命周期管理。主要功能包括:

  • 事件创建:基于规则或AI分析创建事件
  • 告警关联:将相关告警关联到事件
  • 状态管理:处理事件状态变更
  • 自动化响应:触发响应工作流

6. AlertMind AI系统

AlertMind AI系统是平台的智能分析引擎,提供基于AI的告警分析能力。主要组件包括:

  • LLM处理层:使用大语言模型处理告警文本
  • 专用模型层:0.5B参数的专用Transformer模型
  • 级联推理引擎:结合LLM和专用模型的优势
  • 模型管理:负责模型更新和优化

7. 用户界面

用户界面提供直观的可视化和操作体验,包括:

  • 告警管理:查看、过滤和处理告警
  • 事件管理:事件生命周期管理
  • 工作流配置:可视化工作流编辑
  • 规则配置:规则定义和管理
  • 系统配置:平台参数配置

数据流

告警处理流程

数据模型关系

技术栈

后端技术

  • 编程语言:Python
  • Web框架:FastAPI
  • 数据库:MySQL/PostgreSQL
  • 缓存:Redis
  • 消息队列:Redis Streams
  • AI框架:PyTorch, Transformers

前端技术

  • 框架:React, Next.js
  • UI组件:Tailwind CSS
  • 状态管理:SWR
  • 图表:Tremor

部署技术

  • 容器化:Docker
  • 编排:Kubernetes
  • CI/CD:GitHub Actions
  • 监控:Prometheus, Grafana

扩展性设计

平台采用模块化设计,支持多种扩展方式:

1. Provider扩展

通过实现Provider接口,可以轻松添加新的告警源支持:

python
class CustomProvider(BaseProvider):
    def __init__(self, provider_id: str, provider_config: dict):
        super().__init__(provider_id, provider_config)
        
    @staticmethod
    def _format_alert(event: dict) -> AlertDto:
        # 实现告警格式转换逻辑
        pass
        
    async def process_event(self, event: dict) -> AlertDto:
        # 实现事件处理逻辑
        pass

2. 工作流扩展

通过添加新的工作流步骤,扩展自动化能力:

yaml
workflow:
  id: custom-workflow
  name: 自定义工作流
  triggers:
    - type: alert
      filters:
        - key: severity
          value: critical
  steps:
    - name: custom-step
      provider:
        type: custom
        config: "{{ providers.custom }}"
        with:
          param1: value1

3. AI模型扩展

支持接入不同的AI模型,实现更多智能分析能力:

python
class CustomModel(BaseModel):
    def __init__(self, config: dict):
        super().__init__(config)
        # 初始化模型
        
    def analyze(self, alerts: List[AlertDto]) -> AnalysisResult:
        # 实现分析逻辑
        pass

高可用设计

平台采用多种机制确保高可用性:

  • 无状态服务:核心组件设计为无状态服务,支持水平扩展
  • 数据库高可用:支持数据库主从复制和故障转移
  • 缓存机制:使用Redis缓存减轻数据库负载
  • 任务队列:使用Redis Streams实现可靠的任务处理
  • 熔断机制:防止级联故障
  • 限流保护:保护系统免受过载

安全设计

平台实现了多层次的安全防护:

  • 认证与授权:支持OAuth2.0、JWT等认证机制
  • 多租户隔离:严格的租户数据隔离
  • API安全:请求验证、参数校验、防注入
  • 数据加密:敏感数据加密存储
  • 审计日志:完整的操作审计记录

基于 Apache 2.0 许可发布