Keep:多源告警聚合与自动化响应的AIOps平台
2026/9/14 17:57:17 网站建设 项目流程

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. 先接 1~2 个监控源,别一次全接:多源同接时指纹字段冲突会放大去重噪音,先把流量最大的源跑稳。
  2. 按业务字段调整去重指纹:默认的 service + 消息字段对多数源够用,但同一服务在不同环境会被合并成一条,指纹里加上 environment 或 cluster 字段可以避免误合并。
  3. 给工作流动作加 if 条件:无条件的动作每次触发都会执行,只在 severity 为 critical 或 service 匹配时才建单,通知量立刻降一个数量级。
  4. 时间统一用 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询