keep 开源告警平台部署实战:从选型到上线的完整指南
【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep
监控系统、CI/CD、SRE 工具各喊各的,值班同学每天在几十条告警里翻找真问题。keep 就是一个开源告警平台:把各来源的告警收进一张表,做去重、关联和自动化响应。这篇带你走完 keep 的部署:先帮你选路线,再一步步拉起服务,最后把生产部署的坑提前填掉。
两条部署路线,先做选择再动手
keep 提供 Docker Compose 和 Kubernetes(Helm Chart)两条官方部署路径,选错路线返工成本很高:
- Docker Compose:单机、免集群,几分钟出结果。适合评估验证和内部小团队;限制是没有副本高可用,数据库默认 SQLite 单点。
- Kubernetes + Helm:副本扩缩、Ingress 统一入口、集群 Secret 托管密钥,适合生产环境;前提是得有集群和 Ingress 控制器,运维成本高一档。
一句话决策:自己先用或团队 ≤5 人,走 Compose;要多人值班、要 SLA、要接公司域名,直接上 Helm。
Docker Compose:5 分钟拉起 keep
先克隆仓库到本地:
git clone https://gitcode.com/GitHub_Trending/kee/keep cd keep仓库根目录的docker-compose.yml直接可跑,但默认关闭了登录(AUTH_TYPE=NO_AUTH)——本机自测无所谓,放到局域网就裸奔了。所以建议直接用仓库里带登录的docker-compose-with-auth.yml启动:
docker-compose --file docker-compose-with-auth.yml up -d这条命令会拉起前端、后端和 WebSocket 三个容器,-d让它们后台运行。
浏览器打开http://localhost:3000,前端在 3000 端口,后端 API 在 8080 端口。账号密码都是keep,登录后第一件事进用户设置改密码,别偷懒。
数据落在运行目录的./state文件夹,挂载进容器的/state,SQLite 数据库就在里面。⚠️ 备份或迁机器时这个目录就是命根子,丢了等于告警历史清零。
想上远程 PostgreSQL 或 Vault 管密钥?改三个环境变量即可:DATABASE_CONNECTION_STRING、KEEP_JWT_SECRET、SECRET_MANAGER_TYPE,完整清单见 部署配置文档。
keep Kubernetes 部署:生产只改 3 个参数
Helm 部署和 Compose 拉起的组件完全一致,这里只讲增量。先加官方仓库再安装到独立命名空间:
helm repo add keephq https://keephq.github.io/helm-charts helm install keep keephq/keep -n keep --create-namespaceChart 会渲染出一个统一的 Ingress,按路径分流:/到前端、/v2到后端 API、/websocket到 WebSocket 服务,所以一个域名就能跑通全部组件。生产环境必须改三处 values:
- Ingress:
global.ingress.hosts[0].host填你的域名,配好tls证书; - 认证:后端
AUTH_TYPE=DB,KEEP_DEFAULT_PASSWORD换成强密码; - 数据库:
database.persistence.enabled: true,挂持久卷,重启不丢数据。
验证手段:kubectl get pods -n keep看 Pod 全绿,kubectl get ingress -n keep确认 ADDRESS 有值。暂时没域名?用kubectl port-forward svc/keep-frontend 3000:3000 -n keep临时顶替。
踩坑速查:这 4 个问题提前知道
端口 3000 被占—— 现象是docker-compose up报端口冲突。3000 常被 Grafana、其他 Next 项目占用。改法:在 compose 的 ports 里把3000:3000换成3002:3000,访问地址同步改端口。
打开页面没有登录框—— 说明你用的是默认docker-compose.yml(无认证)。要么换--file docker-compose-with-auth.yml重启,要么确保实例只在可信网络内可达。
重建环境后数据没了—— 原因是./state目录没随环境带走。解法:迁移前备份该目录,或把DATABASE_CONNECTION_STRING指到外部数据库,让数据脱离单机。
Ingress 装了但访问不通—— 九成是集群里没装 ingress-nginx,或者域名没指到 Ingress 的 ADDRESS。先kubectl get ingress -n keep确认 ADDRESS 有值,再查 DNS。
部署逻辑收尾
选型其实就一句话:Compose 管"先跑起来看看",Helm 管"跑起来不挂"。更多参数和架构细节,翻官方文档里的 Kubernetes 安装指南 和 架构说明 即可。
【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考