Keep:3 步跑起来的多源警报管理完整指南
【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep
凌晨两点,运维工程师小周被手机震醒:Grafana 发来 3 条 Prometheus 告警,Slack 里 Datadog 又转了 2 条,看着像 5 个问题,其实可能是同一台机器磁盘满了。翻到早上,他也不知道哪条是真问题。这类"警报看着多、真问题难找"的处境,就是 Keep 警报管理平台想解决的:把散在各个监控工具里的警报收进同一个界面,去重、关联,再按规则自动处理。
项目速览
- 是什么:开源的 AIOps(用自动化和 AI 手段做运维)与警报管理平台,一个界面看全部告警
- 给谁用:被多个监控工具轰炸的小团队和 SRE/运维工程师,不需要专职平台管理员
- 最突出的点:接一个数据源只配一次,去重、工作流、服务关联都是内置能力
- 部署方式:docker-compose 一键拉起,后端、前端、实时推送三个容器
最小化上手
前置条件:机器上装好 Docker,并且能运行docker compose。
第 1 步:拿到代码
git clone https://gitcode.com/GitHub_Trending/kee/keep keep cd keep第 2 步:启动
docker compose up -d第 3 步:打开浏览器
访问http://localhost:3000。默认 compose 文件里AUTH_TYPE=NO_AUTH,不用登录,看到警报列表页(此时是空的)、Provider(数据源)页面和 Workflows(工作流)页面,就算部署成功了。部署细节可以看 docs/deployment/docker.mdx。
它能帮你做什么
接入警报不用自己写脚本
Keep 支持两种收警报的方式:Push 和 Pull。Push 是监控工具主动把警报"推"给 Keep;Pull 是 Keep 定时"拉"取。推荐用 Push——以 Grafana 为例,你在 Provider 设置里连上 Grafana 并勾选Install Webhook,Keep 会自动在 Grafana 里创建一个 Webhook 联络点(一种把消息发到外部地址的出口)和通知策略,之后 Grafana 的告警就会自动流进 Keep,全程不用手写转发规则。细节见 docs/overview/howdoeskeepgetmyalerts.mdx。
把一批相似警报变成一条
警报风暴的大头是重复。Keep 的去重机制是"指纹":给每条警报按指定字段(比如service和error_message)算出一个指纹,指纹相同的合并成一条并更新状态。比如payment服务连续 5 次报Database connection failed,你在列表里只看到一条,而不是 5 条。每个 Provider 都预置了适配其警报格式的默认指纹字段,开箱就能用,也可以自己改。官方文档里有一组真实的输入输出对照,建议看一眼:docs/overview/deduplication.mdx。
警报一进来就自动干活
工作流用 YAML 定义:triggers写什么条件触发,actions写触发后干什么。仓库里带了 100 多个现成例子,比如 examples/workflows/ 里的 CloudWatch 转发 Slack 通知器,核心逻辑就几行:
triggers: - type: alert filters: - key: source value: cloudwatch actions: - name: trigger-slack provider: type: slack with: message: "Got alarm from aws cloudwatch! {{ alert.name }}"类似的还有自动建 Jira 工单、给 OpenShift 扩容、给已恢复的旧警报发 resolve 等,按需挑一个改改就能用。
端到端实战:一条警报从进到出
挑最典型的链路走一遍:接源 → 警报进来 → 工作流自动通知。
- 配置:打开
http://localhost:3000的 Providers 页面,连接一个警报源(如 Prometheus、CloudWatch 或 Webhook),勾选 Push,等待状态变为健康。 - 触发:源端产生一条告警,它经 Webhook 到达 Keep 后端,在警报列表页实时出现;同一问题的重复告警会被合并计数,而不是刷屏。
- 看到结果:你在 Workflows 页面新建或导入一个 YAML(参考上面的 Slack 例子),点 Enable。下次同类警报进来,Keep 自动完成动作——Slack 频道里出现格式化消息,全程没人碰鼠标。
工作原理:警报是怎么被"看懂"的
Keep 处理警报的核心思路,像电房的总闸检修:一栋楼一半区域的灯同时灭了,电工不会挨个换灯泡,而是先看哪个总闸跳了——灯泡只是症状,总闸才是根因。
- 去重对应"先别慌":指纹相同的警报归成一类,先把噪音压下去,人只看类别不看流水。
- 关联对应"找总闸":Keep 的服务拓扑处理器(默认关闭,设置
KEEP_TOPOLOGY_PROCESSOR=true开启)会维护一张服务依赖图,当同一应用下的多个服务同时有活动警报时,自动开一个应用级事件(Incident),把相关警报挂进去。你排查时看的是"哪个应用出了问题",而不是"哪台机器又报警了"。 - 此外 Keep 还支持接 LLM(大语言模型)Provider 做警报内容增强,比如把原始警报让 AI 总结成人话再推送,属于可选能力。
资源导航
| 名称 | 位置 | 说明 |
|---|---|---|
| 项目介绍 | docs/overview/introduction.mdx | Keep 解决什么问题、适合什么团队 |
| 部署文档 | docs/deployment/ | Docker、Kubernetes 等多种部署方式 |
| 工作流语法 | docs/workflows/overview.mdx | 触发器、动作、条件分支的完整写法 |
| 现成工作流 | examples/workflows/ | 100 多个可直接改用的 YAML 示例 |
| Provider 列表 | docs/providers/overview.mdx | 支持接入的全部监控与协作工具 |
下一步
如果你的团队也在多个监控工具之间来回切,建议先在一台测试机上按"最小化上手"三步把 Keep 跑起来,接一个你现在用得最多的警报源,观察一两周警报列表比之前清爽多少,再决定要不要把工作流铺开。
【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考