如何升级Praeco适配Elasticsearch 7/8/9?版本兼容清单与镜像对照表
【免费下载链接】praecoElasticsearch alerting made simple.项目地址: https://gitcode.com/gh_mirrors/pr/praeco
Praeco 是一款面向 Elasticsearch 的开源图形化告警管理工具,基于 ElastAlert 2 构建,可以让你在可视化界面里创建、测试和运行告警规则。当 Elasticsearch 从 7 升级到 8 或 9 时,很多用户会遇到 Praeco 无法连接、Kibana 链接失效等问题。本文整理了一份完整的Praeco 版本兼容清单与 Docker 镜像对照表,并给出最快 3 步的升级方法,帮你快速让告警系统跑在新版 Elasticsearch 上。
一、Elasticsearch 版本兼容清单:7 / 8 / 9 各需要哪个 Praeco?
| Elasticsearch 版本 | 支持情况 | 最低 Praeco 版本 | 备注 |
|---|---|---|---|
| 5.x | ❌ 不支持 | — | 官方明确不支持 |
| 6.x | ⚠️ 已停止维护 | — | 仅旧镜像praecoapp/elastalert-server:20220109(elastalert2 2.4.0 之前)可用 |
| 7.x | ✅ 支持 | 常规 1.8.x 版本 | 长期稳定支持 |
| 8.x | ✅ 支持 | 1.8.11 | 自 1.8.11 起支持 Elasticsearch 8 |
| 9.x | ✅ 支持 | 1.8.21 | 自 1.8.21 起支持 Elasticsearch 9 |
📌 结论很简单:
- Elasticsearch 7:保持 Praeco 为常规 1.8.x 即可,无需特意追新版本;
- 升级到 Elasticsearch 8:先把 Praeco 升到1.8.11 及以上;
- 升级到 Elasticsearch 9:必须先把 Praeco 升到1.8.21 及以上,否则会出现不兼容。
二、Docker 镜像对照表:升级时该拉哪个 tag?
Praeco 部署依赖两个 Docker 镜像,二者的 tag 命名规则不同,升级前建议对照下表:
| 镜像 | Tag 规则 | 作用 |
|---|---|---|
praecoapp/praeco | 语义化版本号(如1.8.22) | 前端 UI 与规则构建能力,版本要求以此为准 |
praecoapp/elastalert-server | 日期版本号(如20220109)+latest | ElastAlert 2 守护进程 + API 服务,决定与 Elasticsearch 的兼容能力 |
✅ 使用建议:
- 日常升级直接拉两个镜像的
latest即可,发布流程(见MAINTENANCE.md)会同步推送两者; - 需要固定版本时,注意
praocoapp/elastalert-server只有日期 tag,具体对应关系可对照UPGRADING.md中的版本发布说明。
⚠️ 两个常见坑:
- 不要混用
bitsensor/elastalert或karql/elastalert2-server,它们未实现 Praeco 所需特性,必须使用praecoapp/elastalert-server; - 老项目
yelp/elastalert已停止维护(不兼容 Python 3.12+,部分告警通知有 bug),请勿使用。
三、Kibana Discover 链接支持的版本演进
如果希望在告警消息里附带 Kibana Discover 链接,可用的 Kibana 版本也随 Praeco 版本变化,完整演进如下(数据来自UPGRADING.md):
| Praeco 版本 | 新增支持的 Kibana 版本 |
|---|---|
| 1.6.0 | 5.6、6.0~6.8、7.0~7.11 |
| 1.8.5 ~ 1.8.10 | 7.12 ~ 7.15 |
| 1.8.11 | 7.16、7.17、8.0、8.1(同时移除 5.6~6.8) |
| 1.8.12 | 8.2 ~ 8.5 |
| 1.8.13 ~ 1.8.14 | 8.6 ~ 8.8 |
| 1.8.17 | 8.9 ~ 8.11 |
| 1.8.20 | 8.12 ~ 8.17 |
| 1.8.22 | 8.18、9.0 ~ 9.2 |
界面上可选的 Kibana 版本范围(7.0 ~ 9.2)定义在src/lib/kibanaVersionOptions.js,升级 Praeco 后可直接看到新版本选项。
四、最快升级步骤:两条命令搞定
升级最新版本的 Praeco,只需按UPGRADING.md给出的命令操作:
# 第一步:拉取两个最新镜像 docker pull praecoapp/praeco docker pull praecoapp/elastalert-server # 第二步:强制重建并启动 docker-compose up --force-recreate --build💡 如果你之前把docker-compose.yml里的镜像固定成了某个 tag,请先改为新的版本号(或latest)再执行重建命令。
五、升级后必查的配置清单
| 配置文件 | 检查要点 |
|---|---|
docker-compose.yml | 两个服务的镜像 tag 是否为新版本;PRAECO_ELASTICSEARCH环境变量指向新版 ES |
config/api.config.json | 使用 SSL / 账号密码时,核对es_ssl、es_username、es_password等字段 |
config/elastalert.yaml | ElastAlert 2 守护进程配置,writeback_index与 API 配置保持一致 |
rules/BaseRule.config | 不允许为空,可保留一条slack_webhook_url: ''作为占位 |
🔎 连接问题排查两招:
PRAECO_ELASTICSEARCH不要填 127.0.0.1——容器内的 Praeco 无法访问绑定在本地的 Elasticsearch,请把 ES 的network.host设为_site_,再使用本机局域网 IP;- 用
curl http://<ES地址>:9200验证连通性,出现 "Connection refused" 说明是网络层问题,与版本无关。
六、升级也不支持的场景(避坑清单)
以下场景官方 FAQ 已明确不支持,升级 Praeco 也无法解决:
- Elasticsearch OSS 版本;
- OpenSearch 及 Amazon OpenSearch Service;
- Elastic Cloud 的 CloudID 连接、API Key 认证、Bearer 认证、代理连接;
- 一个 Praeco 同时对接多个 Elasticsearch 实例。
写在最后
升级核心记住一句话:Elasticsearch 8 需要 Praeco ≥ 1.8.11,Elasticsearch 9 需要 Praeco ≥ 1.8.21。拉取两个镜像、强制重建容器后,对照上面的配置清单检查一遍即可。完整的版本变更历史(新增/移除的告警渠道、Kibana 支持等)都记录在UPGRADING.md中,建议每次升级前花两分钟查阅对应版本章节,避免踩到配置变更。
【免费下载链接】praecoElasticsearch alerting made simple.项目地址: https://gitcode.com/gh_mirrors/pr/praeco
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考