尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Keep AIOps 告警平台:10 分钟部署上手

Keep AIOps 告警平台:10 分钟部署上手 Keep AIOps 告警平台10 分钟部署上手【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep凌晨三点你被同一条数据库告警叫醒这是今晚第四次。更糟的是故障还同时触发了 CPU、内存、连接数告警值班群里一片红色。Keep 是一个开源的 AIOps 告警管理平台它把 Prometheus、Datadog、Grafana 等几十种监控工具的告警汇总到一张表里自动去重、关联成事件再用 YAML 工作流驱动自动化处理。这篇文章带你从一台干净机器出发10 分钟内部署跑通最后讲清楚生产环境要注意什么。Keep 是什么AIOps 告警管理平台一句话定位Keep 的定位是告警的统一收件箱 降噪引擎 自动化执行器。监控工具继续产生告警Keep 负责把告警收进来、理清楚、再分发给对的人和系统。它不做指标采集也不替代 Prometheus而是站在所有监控工具之上做收敛。解决三个具体痛点告警散落各处Prometheus 一个页面、CloudWatch 一个页面、Zabbix 又一个页面。Keep 提供统一告警列表左侧可按严重程度、状态、负责人等维度筛选右侧看详情支持批量操作。重复告警轰炸同一个故障会反复产生几乎相同的告警。Keep 内置去重Deduplication按指纹字段把相同告警归并机制每个 Provider 都预置了默认去重规则。告警之间没有关系Keep 提供基于规则的相关性Correlation配置把命中同一规则的告警归入同一个事件Incident官方云版本还提供 AI 驱动的自动关联引擎用历史告警训练模型自动聚类。和同类工具的关键差异商业 AIOps 工具如 BigPanda、ServiceNow ITOM功能类似但贵且配置复杂。Keep 的差异在于完全开源、本地可部署、一切配置皆代码Provider、工作流、规则都能用 YAML/JSON 声明式管理可以进 Git 做版本管理和 CI/CD并且对 LLM 时代做了原生适配——配置OPENAI_API_KEY后可以用 AI 做告警富化给告警补充上下文和事件总结。从零部署 Keep 告警平台 前置环境一台能跑 Docker 的 Linux/macOS 机器装好 Docker 和 Docker Compose 即可不需要预先安装数据库——默认配置用 SQLite数据落在本地state/目录。Docker Compose 一键部署克隆仓库并启动全部服务前端、后端、WebSocket 三个容器git clone https://gitcode.com/GitHub_Trending/kee/keep cd keep docker compose up -d默认docker-compose.yml使用AUTH_TYPENO_AUTH即免登录适合本地体验。三个服务分别监听 3000Web 界面、8080API、6001实时推送端口。首次访问与必须改的配置浏览器打开http://localhost:3000直接进入告警列表页。确认容器状态docker compose ps应显示 3 个服务均为 running。如需登录鉴权改用docker-compose-with-auth.yml启动默认账号密码为 keep/keep生产环境务必修改。只有这几个变量是必须考虑的OPENAI_API_KEY启用 AI 功能、KEEP_DEFAULT_PASSWORD改默认密码、DATABASE_CONNECTION_STRING生产切换数据库。其余默认值可用。# docker-compose-with-auth.yml 中的关键配置鉴权版 services: keep-backend: environment: - AUTH_TYPEDB - KEEP_DEFAULT_USERNAMEkeep - KEEP_DEFAULT_PASSWORDkeep数据持久化在./state目录SQLite 库和密钥都在里面重启容器不要删这个目录。核心功能实操 ⚡连接第一个数据源左侧菜单进入 Providers 页面这里列出 100 可集成的监控工具、数据库和通知渠道。以 WebhookHTTP 回调零配置为例走一遍点击Install Provider搜索 Webhook。填写 Provider ID实例标识比如webhook-testWebhook 类型无需任何凭据直接安装。安装完成后页面会给出回调地址http://localhost:8080/webhook/webhook-test。发一条测试告警用下面这条命令模拟监控工具推入一条 critical 级别告警把 URL 换成你实际的 Provider 回调地址curl -X POST http://localhost:8080/webhook/webhook-test \ -H Content-Type: application/json \ -d {name: disk-usage-high, severity: critical, message: disk usage 90% on node-1, service: infra}回到 Alerts 页面这条告警会实时出现WebSocket 推送不用刷新。点进去可以看到完整字段对 Prometheus 等工具则配置好 Provider 后开启拉取Pulling即可把历史告警同步进来。配置去重与关联规则在设置里找到去重与相关配置去重规则指定指纹字段如servicename命中的新告警会归入已有告警并更新状态而不是新增一行。默认已有各 Provider 的预置规则你可以按团队字段习惯增补。相关性规则定义字段匹配条件命中的多条告警被归入同一个 Incident事件页能看到全部子告警和时间线。写第一个工作流Workflows 页面新建工作流用 YAML 声明触发条件和动作。下面这个例子只要出现 critical 告警就发 Slack 消息格式与官方示例 examples/workflows/slack_basic.yml 一致workflow: id: critical-to-slack name: Critical 告警通知 Slack triggers: - type: alert filters: - key: severity value: critical actions: - name: send-slack provider: type: slack config: {{ providers.slack-prod }} with: message: Critical: {{ alert.name }} ({{ alert.service }})保存后工作流自动启用下次 critical 告警进来就会执行。触发器还支持interval定时、webhook外部系统调用、manual等类型examples/workflows/ 下有 100 多个现成示例可直接改造。实战案例把告警风暴压成一条通知流 业务需求核心服务故障时同一问题 10 分钟内产生 30 条重复告警值班群被刷屏。目标是相同问题只通知一次并自动记录成一个事件。配置过程去重规则指纹字段设为servicename30 条重复告警归并为 1 条。相关性规则按service字段关联同一服务的告警进入同一 Incident。工作流对去重后保留的那条告警触发 Slack 通知并创建 Jira 工单改造 examples/workflows/create_jira_ticket_upon_alerts.yml 即可。最终效果事件页展示一个 Incident 及全部子告警时间线团队收到的是一条支付服务故障的聚合通知加一个工单链接而不是 30 条刷屏消息。生产落地要点 高可用与扩缩容生产环境不要用默认的单实例 compose 文件改用仓库中的docker-compose-with-arq.yml它额外引入 Redis 和 ARQ 异步 worker把告警处理从 API 进程里剥离避免高峰阻塞。后端要横向扩容时DATABASE_CONNECTION_STRING必须切到 PostgreSQL默认 SQLite 不支持多进程写Kubernetes 部署方式参考 docs/deployment/kubernetes/。state/目录挂载持久卷并纳入备份。安全配置清单不做会出事修改默认账号 keep/keepKEEP_DEFAULT_PASSWORD并给KEEP_JWT_SECRET、NEXTAUTH_SECRET设强随机值。反代 TLS3000 和 8080 端口不要直接暴露公网仓库 proxy/ 目录有现成的 nginx/squid 参考配置。保护./state目录权限Provider 密钥以 FILE 形式存在其中。定期备份state/SQLite 库 密钥 工作流定义。多团队使用时开启基于角色的访问控制RBAC避免所有人都能改规则。性能调优关键参数DATABASE_CONNECTION_STRING切 PostgreSQL 后对fingerprint、lastReceived相关查询加索引大表查询明显变快。告警批量拉取间隔Provider 的 Pulling 周期不要小于 1 分钟减少 API 压力。LLM 富化按需开启给每个告警都调一次大模型既慢又贵建议只对 critical 级别或特定来源启用。常见问题排查 1. 打开 localhost:3000 空白或拒绝连接现象页面无法访问。原因容器未起或端口冲突。解法docker compose ps # 确认 3 个服务都 running docker compose logs keep-frontend ss -tlnp | grep 3000 # 检查端口是否被占用2. Webhook 发了告警但列表看不到现象curl 返回成功Alerts 页没有新行。原因Provider ID 与 URL 路径不一致或后端处理报错。解法核对 URL 中的 Provider ID 与安装时一致然后docker compose logs keep-backend | tail -50找异常。3. 重启后告警和配置全丢了现象docker compose down再up后数据消失。原因删除了state/目录或未挂载。解法确认 compose 中./state:/state卷存在数据随该目录持久化。4. AI 富化/总结不生效现象AI 功能按钮置灰或无输出。原因OPENAI_API_KEY未注入容器。解法启动时export OPENAI_API_KEYsk-xxx再docker compose up -d或在 compose 中显式配置后重建容器。5. 前端能打开但数据加载失败现象界面正常但告警、Provider 列表全是空或报错。原因前端调用后端地址不对。解法确认NEXT_PUBLIC_API_URLhttp://localhost:8080指向本机 API 端口浏览器网络面板里看 8080 请求是否被防火墙拦掉。生态资源与下一步 仓库内关键入口入门与概念docs/overview/introduction.mdx全部 Provider 集成文档docs/providers/100 工作流示例可直接抄examples/workflows/Provider 源码想加自家工具时参考keep/providers/接下来做三件事把你实际在用的监控工具Prometheus/Grafana/Zabbix 任选一个接进 Keep跑通产生告警 → 列表可见的完整链路。按团队的字段习惯加一条去重规则观察一周告警量下降多少。把告警 → IM 通知 → 建工单固化成一个工作流进 Git 管理之后改规则不用再进界面点。【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表