系统架构
整体架构
告警平台采用模块化、微服务架构设计,实现了高可用、可扩展的系统架构。整体架构如下图所示:
核心组件
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:
# 实现事件处理逻辑
pass2. 工作流扩展
通过添加新的工作流步骤,扩展自动化能力:
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: value13. 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安全:请求验证、参数校验、防注入
- 数据加密:敏感数据加密存储
- 审计日志:完整的操作审计记录
