5分钟跑通 Keep:把告警风暴变成一张拓扑图的开源 AIOps 告警管理平台
5分钟跑通 Keep把告警风暴变成一张拓扑图的开源 AIOps 告警管理平台【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep告警群里一分钟刷进 20 条几乎一样的消息你在 Prometheus、Datadog 和 CloudWatch 之间来回切换找根因值班同学的第一反应往往是这条是不是重复的。Keep 是一个开源的 AIOps 告警管理平台它把各个监控工具推来的告警汇到同一个界面里再用 AI 告警关联把同源的告警归拢成事件让你从盯列表变成看一张图。先跑起来Keep 部署 5 分钟本地部署步骤一台装好 Docker 和 Docker Compose 的机器两条命令就够git clone https://gitcode.com/GitHub_Trending/kee/keep cd keep docker-compose up -d等容器跑完浏览器打开http://localhost:3000。默认 compose 文件里没开鉴权进去就能用如果你换用docker-compose-with-auth.yml默认账号是keep/keep登录后第一件事是改密码。前端占 3000 端口后端 API 占 8080WebSocket 占 6001排查问题时会用到。几个常用环境变量想启用 AI 关联和工作流助手传入OPENAI_API_KEY想换数据库改DATABASE_CONNECTION_STRING默认是state/目录下的 SQLite开 DB 鉴权后再补一个KEEP_JWT_SECRET。第一次登录你会看到什么跟着左侧边栏点一圈四个核心能力的位置就清楚了。Feed统一告警中心所有监控源推来的告警都在这一张表里Firing、Resolved、Suppressed 状态一目了然左侧栏能按严重级别、状态、来源叠加过滤比如只看 Prometheus 来源还在 Firing 的告警。CorrelationsAI 告警关联内置一个 Transformer 关联模型会根据你环境里的告警和事件历史训练把足够相似的告警自动折进同一个 incident。两个阈值可以自己调训练准确率低于 0.6 就不启动关联分低于 0.4 就不算同一次故障。Service Topology服务拓扑组件依赖关系画成图Platform 依赖 API Service、API Service 依赖 Kafka 和 DB连线上标着流量方向。DB 节点上冒出告警时你能直接顺着连线数出下游受影响的节点——定位影响范围不用再翻文档。Workflows自然语言工作流不想写 YAML 的话直接对助手说每分钟查一次 CloudWatch 日志发现 error 就发 Slack它会自动拆成间隔触发器、查询步骤、条件判断和通知动作右侧流程图同步生成你确认后再落盘。接入第一个监控源Provider 接入与告警处理规则Providers 页面就是全部 100 多个监控工具的入口每个源的接法都一样三步选工具Prometheus、Datadog、Grafana、Zabbix 都在 Available Providers 里直接点填配置弹出来的表单只有 Token、Host 这类必要字段测连接点 Connect通了对应卡片就会挪到 Installed 并标上 Connected。数据源全量清单见 docs/providers/overview.mdx。接上之后告警进入 Feed 前会过三类处理规则都可以在界面上单独管理去重Deduplication按你指定的字段组比如 groups monitor_id name算指纹重复告警自动合并。Datadog、Prometheus 这类源自带默认规则也可以按环境建 custom 规则富化Enrichment给告警补上服务名、负责人等上下文字段拓扑和关联分析都吃这些信息过滤/映射Mapping Extraction把原始字段重命名、抽取不想要的告警直接压掉。接完源就可以写第一个工作流了。用自然语言描述是数据库连接失败告警 → 通知运维群 → 30 分钟未解决升级建 Jira 单手写的话结构也很简单workflow: id: db-slack-notifier triggers: - type: alert filters: - key: source value: prometheus actions: - name: notify-slack provider: type: slack config: {{ providers.slack-prod }} with: message: DB 连接异常: {{ alert.name }}仓库里examples/workflows/下有一百多个现成样例从定时巡检到自动建单都能直接抄。上生产之前要知道的事本地 SQLite 玩玩可以上生产建议直接在 Kubernetes 上部署helm repo add keep https://keephq.github.io/helm-charts kubectl create namespace keep helm install keep keep/keep -n keep要点按重要性排副本backend 至少 3 副本配 HPA 在 2~5 之间伸缩存储数据库开持久化50Gi 起步并纳入定期备份安全入口套一层 HTTPS开启 DB 鉴权并设置KEEP_JWT_SECRET改掉默认 keep/keep 密码再按团队角色配置 RBAC可观测环境变量指向你的 OTel CollectorOTEL_EXPORTER_OTLP_ENDPOINTKeep 自身也要被监控。踩坑提示与进阶先说两个最常见的坑起不来先看端口docker-compose logs keep-backend和docker-compose logs keep-frontend各看一眼3000、8080、6001 被占用是最常见原因默认数据库别裸奔本地 compose 默认把 SQLite 放在state/目录数据量一大就慢生产请换成独立的 PostgreSQL 实例。性能方面按顺序做收益递减的几件事接入 Redis 缓存、把告警改成批量入库、非关键路径的动作丢进异步队列项目本身用 arq 跑后台任务。想动手改的话keep/providers/下每个工具一个目录照着一个现有 Provider 复制改造就是新数据源工作流引擎支持 Python 脚本、HTTP 调用、CEL 条件这些步骤类型。完整入门教程在 docs/overview/introduction.mdx可运行的工作流样例在 examples/workflows/。Keep 的价值不在功能清单的长度而在一个入口收告警、关联分析找根因这件事真的能跑起来。建议按这个顺序走用 Docker Compose 把本地环境跑起来打开 Feed 看一圈接上你最常用的一个监控源配一条去重规则建一个最简单的工作流比如告警转发到 Slack让它真跑一次。【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考