Keep:多源告警聚合与自动化响应的AIOps平台
【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep
Prometheus、Zabbix、Datadog 各发各的告警,值班群一天几百条消息,真正的故障淹没在重复通知里。Keep 是一个开源的 AIOps 与告警管理平台,把多监控源的告警汇到一处,做去重、富化、关联和自动化响应。它解决的核心问题就一个:把告警洪流变成可处理的工单流。
🧭 Keep 是什么:定位与能力边界
Keep 把来自不同监控系统的告警统一接入,在同一个界面里做过滤、去重、富化与关联,并能双向同步回各监控系统。本质上是一个"告警总线 + 工作流引擎",而不是又一套监控系统。
核心能力:
- 多源告警聚合:100+ 个 Provider 接入 Prometheus、Datadog、Zabbix、CloudWatch 等
- 告警去重与富化:按指纹字段识别重复告警,自动补充上下文
- 告警关联:把相关告警归并成事件(incident),支持 AI 辅助关联
- YAML 工作流:触发器 + 条件 + 动作,自动化建单、通知、重启
- 双向集成:不仅拉取告警,也能把处置状态同步回监控源
能力边界:不替代 Prometheus 的指标采集,不做日志存储与查询。如果只需要看板展示而不做告警治理,它偏重了。
🚀 从克隆到看到第一条告警
Keep 用 Docker Compose 一键拉起,包含前端(3000 端口)、后端(8080 端口)和 WebSocket 服务,默认 SQLite 存数据,无需额外准备数据库:
git clone https://gitcode.com/GitHub_Trending/kee/keep cd keep docker-compose up -d浏览器打开 http://localhost:3000 进入界面。两个常见失败点:3000/8080 端口被占用时,改docker-compose.common.yml里的端口映射;镜像托管在境外仓库,网络慢的环境可先手动拉好镜像再启动。
第一条告警怎么进 Keep?设置页的 Webhook 选项卡提供接入 URL 和 API Key,把各监控系统的告警转发过去即可;有原生 Provider 的监控源则直接配置双向同步,免去写转发脚本。
🛠️ 三个高频场景怎么解决
重复告警怎么归并
同一条"数据库连接失败"告警每 5 分钟重发一次,值班看到的是 12 条消息而不是 1 个问题。Keep 的去重分两层:部分去重按指纹字段(如 service + error_message)把同类告警归成一组,字段值随最新告警更新;完整去重直接丢弃除忽略字段外完全相同的重复事件。每个 Provider 自带预置指纹规则,开箱可用,去重规则页可改字段组合。
自动化响应怎么配
Keep 把工作流定义为 YAML:触发器(告警/事件/定时/手动)+ 步骤(富化取数)+ 动作(建单/通知/执行命令)。不想手写 YAML,AI 助手支持用自然语言描述需求直接生成工作流,右侧画布同步显示触发器与步骤结构:
最小工作流片段——把告警转发到 Slack:
workflow: id: critical-to-slack triggers: - type: alert actions: - provider: {type: slack}示例库里有 100 多个现成工作流(建 Jira 单、发 Slack、重启 K8s 服务等),改改参数就能跑,见 examples/workflows/。
故障影响面怎么定位
告警归并之后,还需要知道"这次故障波及哪些服务"。Keep 的服务拓扑把告警和组件依赖关系画在同一张图上,红色标记落在哪个节点,影响范围一眼可见,排查时不必逐条翻告警:
⚙️ 第一次跑通后最该调的 4 件事
- 先接 1~2 个监控源,别一次全接:多源同接时指纹字段冲突会放大去重噪音,先把流量最大的源跑稳。
- 按业务字段调整去重指纹:默认的 service + 消息字段对多数源够用,但同一服务在不同环境会被合并成一条,指纹里加上 environment 或 cluster 字段可以避免误合并。
- 给工作流动作加 if 条件:无条件的动作每次触发都会执行,只在 severity 为 critical 或 service 匹配时才建单,通知量立刻降一个数量级。
- 时间统一用 UTC:多源告警按 lastReceived 排序和去重,时区混用会导致时间线错乱。
新工作流建议先用列表页的 Run 按钮手动触发一次,确认动作输出符合预期,再交给触发器自动跑:
🌐 上下游生态
Provider 按用途分几类,完整列表见 docs/providers/:
- 监控与日志源:Prometheus、Datadog、Grafana、Zabbix、CloudWatch、Elastic、Splunk、VictoriaMetrics
- 通知渠道:Slack、Teams、Telegram、SMTP/SendGrid 邮件、ntfy、Twilio
- 协作与工单:Jira、GitHub、GitLab、ServiceNow、Linear、Trello
- 事件管理:PagerDuty、Opsgenie、Grafana OnCall、Incident.io
- 云与容器:AWS/EKS/AKS/GKE、Kubernetes、OpenShift、ArgoCD、Flux
- AI 后端:OpenAI、Anthropic、Ollama、vLLM,支持本地部署,见 docs/deployment/local-llm/
部署支持 Docker Compose、Kubernetes、AWS ECS,生产环境前建议看 docs/deployment/,含 SSO/LDAP 认证、密钥存储与压测文档。社区入口是官方 Slack,README 内有徽章链接。
🎯 选型参考
适合:多监控源并存、告警量大到人工无法逐条看的团队;已有工单和值班系统、需要把告警自动流转进去的场景;希望在自建环境部署、数据不出内网的团队。
不适合:只需要监控看板而不做告警治理的团队;告警量本身很小(一天几条)的场景,接入成本大于收益;指望 Keep 直接采集指标的团队,它只做治理不做采集。
对比:PagerDuty、Opsgenie 这类商业事件管理产品开箱管值班排班,但私有化部署和多源去重的灵活度不如 Keep;Keep 偏告警治理与自动化,值班调度可再配合 Grafana OnCall 等补齐。
如果团队现在同时接了 Prometheus 和 Datadog,第一步先把这两个 Provider 接上,配好各自指纹字段,观察一两天去重效果,再决定要不要上关联规则。
【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考