# aiops **Repository Path**: ad-devops/aiops ## Basic Information - **Project Name**: aiops - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-14 - **Last Updated**: 2026-07-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AIOps 故障自愈系统 基于 LangGraph + FastAPI 构建的服务器故障自愈系统,实现异常自动发现 → 根因分析 → 分级自愈处置 → 结果复盘归档全流程无人值守。 ## 功能特性 - **异常检测**: 实时监控内存、CPU、磁盘、Swap、网络等系统指标 - **根因分析**: 自动识别 Top 进程、日志分析、异常模式匹配 - **分级自愈**: 根据告警级别自动执行相应的自愈动作 - **复盘归档**: 自动生成复盘报告,推送飞书通知 - **飞书集成**: 支持通过飞书 Webhook 接收告警并触发诊断 - **Prometheus 集成**: 支持 Alertmanager Webhook 接收,自动解析告警并触发自愈,修复结果自动通知 ## 技术栈 - **框架**: LangGraph 1.x, FastAPI - **语言**: Python 3.10+ - **监控**: psutil - **通知**: 飞书机器人 Webhook - **部署**: Uvicorn ## 项目结构 ``` aiops/ ├── config/ │ └── settings.py # 配置管理(阈值、自愈策略) ├── models/ │ └── state.py # 统一状态定义 ├── tools/ │ ├── monitor.py # 系统指标采集 │ ├── healing.py # 自愈动作执行器 │ ├── notification.py # 飞书告警通知 │ ├── alert_parser.py # 飞书告警消息解析器 │ └── prometheus_parser.py # Prometheus 告警解析器 ├── agents/ │ ├── detection.py # 异常检测子图 │ ├── rca.py # 根因分析子图 │ ├── healing.py # 自愈处置子图 │ ├── review.py # 复盘归档子图 │ └── workflow.py # 完整工作流编排 ├── api/ │ └── main.py # FastAPI 接口层 ├── requirements.txt ├── start.py └── README.md ``` ## 快速开始 ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 启动服务 ```bash python start.py ``` 服务将在 http://localhost:8000 启动,访问 http://localhost:8000/docs 查看 API 文档。 ### 配置飞书机器人 1. 在飞书群中添加自定义机器人 2. 获取 Webhook 地址 3. 在 `config/settings.py` 中配置: ```python FEISHU_WEBHOOK = "https://open.feishu.cn/open-apis/bot/v2/hook/your-webhook-url" ``` ## API 接口 | 接口 | 方法 | 功能 | |------|------|------| | `/api/health` | GET | 健康检查 | | `/api/diagnose` | POST | 触发诊断任务 | | `/api/diagnose/{thread_id}` | GET | 查询诊断状态 | | `/api/diagnose` | GET | 获取任务列表 | | `/api/webhook/feishu` | POST | 飞书 Webhook 接收 | | `/api/webhook/prometheus` | POST | Prometheus Alertmanager Webhook 接收 | ### 触发诊断 ```bash curl -X POST http://localhost:8000/api/diagnose \ -H "Content-Type: application/json" \ -d '{"dry_run": true, "confirmed": false}' ``` ### 通过飞书触发 在飞书群中发送包含告警关键词的消息即可自动触发诊断: - "内存告警:内存使用率达到90%" - "磁盘告警:磁盘使用率达到85%" - "CPU告警:CPU使用率达到95%" ### 通过 Prometheus 触发 在 Prometheus Alertmanager 中配置 webhook: ```yaml receivers: - name: 'aiops-webhook' webhook_configs: - url: 'http://your-server:8000/api/webhook/prometheus' route: receiver: 'aiops-webhook' group_wait: 10s group_interval: 1m repeat_interval: 5m ``` Alertmanager 标准格式示例: ```json { "status": "firing", "alerts": [ { "status": "firing", "labels": { "alertname": "HighMemoryUsage", "severity": "critical", "instance": "localhost:9090" }, "annotations": { "summary": "内存使用率过高", "description": "内存使用率达到90%,超过阈值80%" } } ] } ``` 系统支持两种状态: - `status: firing` - 触发自愈流程 - `status: resolved` - 标记告警恢复,发送恢复通知 ## 告警类型 | 关键词 | 告警类型 | |--------|----------| | 内存/memory/oom | MEMORY | | 磁盘/disk/存储 | DISK | | cpu/处理器 | CPU | | swap/交换 | SWAP | | 网络/network | NETWORK | | 服务/service/进程 | SERVICE | ## 告警级别 | 关键词 | 级别 | |--------|------| | 严重/critical/紧急 | CRITICAL | | 高/high/警告 | HIGH | | 低/low/提示 | LOW | ## 自愈动作 | 动作 | 描述 | 安全性 | |------|------|--------| | clean_temp | 清理临时文件 | 安全 | | clean_cache | 清理系统缓存 | 安全 | | log_rotate | 日志轮转 | 安全 | | oom_kill | 终止内存占用过高进程 | 危险 | | clean_disk | 清理磁盘空间 | 危险 | | stop_zombie | 清理僵尸进程 | 危险 | | restart_process | 重启进程 | 危险 | ## 配置说明 在 `config/settings.py` 中可配置: ```python ALERT_THRESHOLDS = { "memory": 80, # 内存阈值 % "cpu": 85, # CPU 阈值 % "disk": 80, # 磁盘阈值 % "swap": 70, # Swap 阈值 % } HEALING_DRY_RUN = True # 默认 Dry Run 模式 MAX_HEALING_ATTEMPTS = 3 # 最大自愈尝试次数 ``` ## 测试 ```bash # 健康检查 python -c "import requests; print(requests.get('http://localhost:8000/api/health').json())" # 飞书 Webhook 测试 python test_webhook.py # Prometheus Webhook 测试 python test_prometheus.py ``` ## 许可证 MIT License