Keep 告警管理平台实战指南:三步接入第一路告警,让告警自动化跑起来
【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep
Keep 是一个开源的告警管理平台和 AIOps 工具:把散在各处监控工具里的告警汇到同一个入口,先做提取、映射和去重,再用告警工作流自动处置。这篇指南带你从接入第一路告警,一路走到生产环境。
告警太多太乱?你可能缺一个告警中枢
- ⚡ 半夜来一场告警风暴:同一个根因连刷上百条,没人分得清哪条是主线;
- 🧩 工具割裂:Datadog、Prometheus、Grafana、值班平台各看各的界面,格式还不一样;
- 🐌 人工排障慢:归组、判断、通报全靠人肉,响应速度全看运气。
Keep 补的就是这个缺口——在所有监控工具前面架一个告警中枢,统一收、统一理、自动响应,你只在"该你管"的时候被打扰。
先认识两个核心概念:Providers 与 Workflows
整个平台是"Provider 进、Workflow 出"的结构:
- Provider(提供者):每接一个监控系统就配一个 Provider,它负责把对方格式的告警翻译成 Keep 内部统一的结构,也负责把动作(建工单、发消息)推回对方;
- Workflow(告警工作流):一段声明式 YAML,定义"什么样的告警触发、跑哪些步骤、最后执行什么动作"。
项目内置 130+ 监控集成,Datadog、Prometheus、Grafana、PagerDuty 都在列表里。想自己扩展时,Provider 基类源码在 keep/providers/base/,照着现有实现抄作业就行。
三步接入第一路告警
最短路径其实就三步:
- 起服务:仓库里直接
docker compose up,前后端加 WebSocket 服务一次拉起来; - 配 Provider:控制台里挑一个已有工具(比如 webhook、Prometheus),填好认证信息;
- 推一条告警:最朴素的方式是直接调 REST 接口。
curl -X POST "http://localhost:8080/api/v1/alerts/event/webhook" \ -H "Content-Type: application/json" \ -d '{"name":"磁盘空间不足","severity":"critical","service":"web-01"}'请求打进去之后,告警立刻出现在控制台里,后续所有加工和工作流都挂在这条告警上。
告警进来后的三层加工:提取、映射、去重
告警进来只是第一步,真正让告警"可读、可查、不吵人"的是三层加工。
提取:从告警文本里抠字段
告警消息里常夹着有用信息(主机名、实例 ID),一条提取规则就能把它拿出来:
name: "提取主机名" regex: "host=([a-z0-9-]+)" attribute: "host"匹配成功就把host写到告警属性上,后面的筛选、工作流条件都能直接引用。
映射:给告警贴上"身份标签"
映射规则可以把外部数据(比如一份服务清单、拓扑文件)按字段贴到告警上。告警从此知道"我属于哪个服务、归哪个团队",排障不用再到处翻系统。
去重:同样的告警只响一次
去重规则指定一组 fingerprint 字段(比如监控项 ID 加描述),字段组合相同的告警自动合并成一条,风暴瞬间安静。规则在控制台里可视化配置:
让 AI 帮告警找亲戚
归完组、去完重,还有一类噪音:一堆告警其实是同一件事的不同症状。
AI 关联会分析一批告警的内容和上下文,把互相相关的自动聚成一簇,相当于给告警"找亲戚"——你在事件视图里看到的是几个"问题",而不是几百条告警。嫌全自动太激进,还有半自动模式:AI 只给建议,由人来点确认。
拓扑关联更进一步:它基于服务间依赖把告警画在拓扑图上,谁先炸、谁被波及,传播路径一眼可见。
工作流自动化:从手写 YAML 到说一句话
手写 YAML 是基本功:触发条件用 key/value 过滤,动作之间可以用CEL表达式控制走向,触发源除了告警,还支持定时、手动。
workflow: id: critical-alert-notify triggers: - type: alert filters: - key: severity value: critical actions: - name: 通知值班群 if: "{{ alert.service }} == 'payments'" provider: type: slack with: message: "新告警 {{ alert.name }}:{{ alert.description }}"不想写 YAML 也可以:用自然语言描述需求,比如"每分钟查一次 CloudWatch 日志,发现错误就发 Slack",AI 工作流助手会直接生成可运行的 YAML,你再改细节就行。
仓库 examples/workflows/ 里备了大量现成示例,改改参数就能用。
上生产前要看的事
- 认证与安全:支持 API Key、OAuth2、SSO(SAML/OIDC/LDAP),生产环境把默认无鉴权关掉,给每个调用方发独立 API Key;
- 自定义 Provider:内置 130+ 集成覆盖不到的场景,继承 BaseProvider 实现配置校验和查询方法,就能把私有系统接进来;
- 多租户与 RBAC:按租户隔离数据,权限细到读写级别,多团队共用一套平台不打架;
- 维护窗口:计划内的发布和变更,在窗口内自动压制相关告警,别让例行维护刷爆值班群。
部署选型与落地路线
组件不复杂,Docker Compose 一套就能跑起来:
| 组件 | 职责 |
|---|---|
| API 服务(keep-backend) | 告警接收、加工与 REST 接口 |
| 前端(keep-frontend) | 统一控制台 |
| WebSocket 服务 | 告警与状态实时推送 |
| 工作流执行器(arq worker) | 异步执行告警工作流 |
| 数据库 | 告警持久化,可选 SQLite/PostgreSQL/Elasticsearch |
| Redis | 缓存与任务队列 |
落地建议分三步走:
- 试点:接 1-2 个最熟的 Provider,配一条去重规则和一个通知类工作流;
- 扩集成:把主力监控和值班平台都接进来,上 AI 关联和拓扑;
- 全量:开认证与多租户,把常用处置动作沉成告警工作流,开始无人值守。
想从源码跑,克隆仓库 https://gitcode.com/GitHub_Trending/kee/keep ,docker compose up后打开控制台,先把自己最烦的那一路告警接进来——第一层去重生效的那一刻,你就知道这套告警自动化值不值了。更多细节在 docs/ 里都能翻到。
【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考