Keep 开源 AIOps 告警管理平台:如何把几十个监控工具的告警汇聚、去重并自动关联
【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep
Keep 是一个开源的 AIOps 与告警管理平台。它对接 Prometheus、Datadog、CloudWatch、Sentry 等 100 多个监控与协作工具,把各处的告警汇进同一张列表,再用去重、关联和 YAML 工作流降低噪音、自动处理。适合中小 SRE 团队和任何被"多套告警系统"困扰的运维团队,无需为商业告警中枢付费。
三类典型场景,Keep 分别怎么解
- 同一故障在 5 个系统各报一条:Keep 的去重规则按"指纹字段"(如 service、name)把相同告警合并成 1 条,字段完全相同的重复事件默认直接丢弃。
- 每排一次障要在多个控制台间切换:所有来源的告警进同一个 Alert 列表,按严重程度、来源、服务过滤,一处看全。
- 告警来了之后还要手工建工单、发消息:声明式 YAML 工作流在告警触发时自动调 Jira 建单、发 Slack 通知,人只做最后确认。
核心能力速览
统一告警列表:每个 Provider 自带告警拉取与格式化逻辑,接入后告警自动出现在列表里,支持按 severity、source、service 等维度筛选和排序。
去重与关联:去重分两档——"部分去重"按你指定的字段聚合相似告警,"完全去重"丢弃一模一样的事件。在此之上,关联规则能把时间窗内匹配条件的多条告警合并成 1 个 incident,让你处理的是"事件"而不是"告警条数"(全自动的 AI 关联引擎属于商业版,规则式关联开源可用)。
服务拓扑:从已接入的 Provider(如 Datadog、Cilium、Grafana、ServiceNow)自动构建服务依赖图,节点上带实时健康状态,配合过滤条件可以只看生产环境。
YAML 工作流:每个工作流由 triggers(什么告警触发)、steps(读数据/富化)、actions(执行操作)三段组成,支持 if/foreach 控制流。下面这个最小工作流的意思是:来自 datadog 的 critical 告警,自动给指定 Slack 频道发消息:
workflow: id: notify-slack-critical triggers: - type: alert filters: - key: source value: datadog - key: severity value: critical actions: - name: slack-message provider: type: slack with: message: "{{ alert.name }} - {{ alert.description }}"更多现成写法(Jira 建单、K8s 修复、邮件通知等 100 多个示例)都在 examples/workflows/ 目录里。
Docker Compose 三步部署
git clone https://gitcode.com/GitHub_Trending/kee/keep cd keep docker compose up -d启动后浏览器打开 http://localhost:3000 即可。默认 compose 文件里AUTH_TYPE=NO_AUTH,无需登录;API 在 8080 端口。想加认证时用仓库里的docker-compose-with-auth.yml,DB 认证方式默认账号密码是 keep/keep,上线前记得通过KEEP_DEFAULT_USERNAME/KEEP_DEFAULT_PASSWORD改掉。
连接第一个监控源:进入 Providers 页面 → 搜索你的工具(如 Prometheus)→ 填地址和凭据 → 保存后到 Alerts 页面等待告警拉取进来,这一步通常 1 分钟内就能看到第一条告警。
三个真实使用场景
背景:团队同时用 Prometheus + Datadog + Zabbix,一次数据库故障涌进 100 条告警。操作:接入 3 个 Provider,给每个来源配置指纹字段去重。收益:100 条收敛成 15 条左右,值班同学只看聚合后的结果。
背景:critical 告警必须留痕,但现在靠人工复制粘贴到 Jira。操作:写一个 20 行内的工作流,trigger 过滤severity=critical,action 调 jira Provider 建单,并用enrich_alert把工单号写回告警字段。收益:工单自动生成且带告警链接,告警详情页直接能点开工单。
背景:凌晨 3 点主服务挂了,需要快速判断影响面。操作:打开 Service Topology,按环境过滤到 production,看红色节点及其上下游边。收益:不翻日志就能回答"谁依赖它、还波及了谁"。
进阶能力与部署避坑
进阶方向(都有独立文档):
- 维护窗口:计划内变更期间静默指定范围告警,避免升级窗口刷屏(docs/overview/maintenance-windows.mdx)。
- 告警富化:挂接 OpenAI、Ollama、DeepSeek 等 LLM Provider,让 AI 给告警自动补上下文、做摘要,AI 后端配置在
keep/providers/对应目录。 - 一切即代码:Provider 和工作流都可以 YAML 声明,配合 provision 接口随 CI/CD 下发。
常见部署坑:
- 现象:3000 或 8080 端口打不开。解法:前端、API、WebSocket 分别占 3000、8080、6001 三个端口,本地已有服务占用时改
docker-compose.common.yml里的端口映射。 - 现象:容器重建后告警数据全丢。解法:默认数据落在
./state目录的 SQLite 文件里(sqlite:////state/db.sqlite3),务必保证该目录挂载到宿主机做持久化,规模化部署时换成 PostgreSQL。 - 现象:AI 富化没生效。解法:LLM 的 API Key 要通过容器环境变量传入(如
OPENAI_API_KEY),仅在前端页面填是不够的。
文档与资源入口
- 概念入门:docs/overview/introduction.mdx
- 全部 Provider 清单与说明:docs/providers/overview.mdx
- 工作流语法:docs/workflows/overview.mdx
- 部署与鉴权配置:docs/deployment/configuration.mdx
Keep 把"告警进来之后"这段最耗人力的环节接了过来:汇聚、去重、关联、自动处置。它不替代你的监控工具,而是站在它们上面做减法。
下一步建议:先用上面的三条命令把它跑起来,接入你手头最吵的那一个告警源,配一条指纹去重规则——当天就能看到告警条数掉下去。
【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考