从 Cortex 迁移到 Grafana Mimir
作为操作员,您可以将 Cortex 的 Jsonnet 部署迁移到 Grafana Mimir。概述包括适用于任何环境的步骤。要使用 Jsonnet 迁移部署环境,请参阅使用 Jsonnet 迁移到 Grafana Mimir。
警告
本文档已在 Cortex 1.10 和 1.11 版本上测试通过。
它可能适用于更近期的 Cortex 版本,但不做保证。
要迁移 Cortex 的 Helm 部署,请参阅从 Cortex 迁移。
Grafana Mimir 包含重大更改,简化了具有长期存储的横向可伸缩多租户时序数据库的部署和持续运行。
这些更改使 Grafana Mimir 更易于开箱即用
- 删除了不需要调整的配置参数
- 重命名了一些参数,以便更容易理解
- 更新了一些现有参数的默认值
mimirtool
自动化配置转换。它通过从 Cortex 配置生成 Mimir 配置来提供简单的迁移。
开始之前
确保您正在运行 Cortex 1.10.X 或 Cortex 1.11.X 版本。
如果您正在运行较旧版本的 Cortex,请在继续迁移之前升级到Cortex 1.11.1。
确保您已安装 Cortex 报警和记录规则以及 Cortex 仪表盘。
使用监控 Mixin,您需要在 Prometheus 或 Cortex 中安装报警和记录规则。您还需要在 Grafana 中安装仪表盘。要下载包含报警和记录规则的预构建 ZIP 文件,请参阅Release Cortex-jsonnet 1.11.0。
要使用 mimirtool 将规则上传到 ruler,请参阅mimirtool rules。要将仪表盘导入 Grafana,请参阅导入仪表盘。
显著变化
注意
有关更改的完整列表,请参阅 Mimir 的CHANGELOG。
Grafana Mimir HTTP 服务器默认监听端口 8080;Cortex 默认监听端口 80。要保持端口 80 作为监听端口,请设置
-server.http-listen-port=80
。当
-auth.multitenancy=false
时,Grafana Mimir 使用anonymous
作为默认租户 ID。当-auth.enabled=false
时,Cortex 使用fake
作为默认租户 ID。当-auth.multitenancy=false
时,使用-auth.no-auth-tenant=fake
以匹配 Cortex 的默认租户 ID。Grafana Mimir 移除了 Cortex 中已废弃的旧版 HTTP 前缀。
查询端点
旧版 当前 /<旧版 HTTP 前缀>/api/v1/query
<prometheus HTTP 前缀>/api/v1/query
/<旧版 HTTP 前缀>/api/v1/query_range
<prometheus HTTP 前缀>/api/v1/query_range
/<旧版 HTTP 前缀>/api/v1/query_exemplars
<prometheus HTTP 前缀>/api/v1/query_exemplars
/<旧版 HTTP 前缀>/api/v1/series
<prometheus HTTP 前缀>/api/v1/series
/<旧版 HTTP 前缀>/api/v1/labels
<prometheus HTTP 前缀>/api/v1/labels
/<旧版 HTTP 前缀>/api/v1/label/{name}/values
<prometheus HTTP 前缀>/api/v1/label/{name}/values
/<旧版 HTTP 前缀>/api/v1/metadata
<prometheus HTTP 前缀>/api/v1/metadata
/<旧版 HTTP 前缀>/api/v1/read
<prometheus HTTP 前缀>/api/v1/read
/<旧版 HTTP 前缀>/api/v1/cardinality/label_names
<prometheus HTTP 前缀>/api/v1/cardinality/label_names
/<旧版 HTTP 前缀>/api/v1/cardinality/label_values
<prometheus HTTP 前缀>/api/v1/cardinality/label_values
/api/prom/user_stats
/api/v1/user_stats
Distributor 端点
旧版端点 当前 /<旧版 HTTP 前缀>/push
/api/v1/push
/all_user_stats
/distributor/all_user_stats
/ha-tracker
/distributor/ha_tracker
Ingester 端点
旧版 当前 /ring
/ingester/ring
/shutdown
/ingester/shutdown
/flush
/ingester/flush
/push
/ingester/push
Ruler 端点
旧版 当前 /<旧版 HTTP 前缀>/api/v1/rules
<prometheus HTTP 前缀>/api/v1/rules
/<旧版 HTTP 前缀>/api/v1/alerts
<prometheus HTTP 前缀>/api/v1/alerts
/<旧版 HTTP 前缀>/rules
<prometheus HTTP 前缀>/config/v1/rules
/<旧版 HTTP 前缀>/rules/{namespace}
<prometheus HTTP 前缀>/config/v1/rules/{namespace}
/<旧版 HTTP 前缀>/rules/{namespace}/{groupName}
<prometheus HTTP 前缀>/config/v1/rules/{namespace}/{groupName}
/<旧版 HTTP 前缀>/rules/{namespace}
<prometheus HTTP 前缀>/config/v1/rules/{namespace}
/<旧版 HTTP 前缀>/rules/{namespace}/{groupName}
<prometheus HTTP 前缀>/config/v1/rules/{namespace}/{groupName}
/<旧版 HTTP 前缀>/rules/{namespace}
<prometheus HTTP 前缀>/config/v1/rules/{namespace}
/ruler_ring
/ruler/ring
Alertmanager 端点
旧版 当前 /<旧版 HTTP 前缀>
/alertmanager
/status
/multitenant_alertmanager/status
生成 Grafana Mimir 的配置
mimirtool config convert
命令将 Cortex 配置转换为 Mimir 配置。您可以使用它来更新标志和配置文件。
安装 mimirtool
要安装 Mimirtool,请从最新发布中下载适用于您的操作系统和架构的二进制文件并使其可执行。
或者,使用命令行工具(如 curl
)下载 mimirtool
。例如,对于 AMD64 架构的 Linux,使用以下命令
curl -fLo mimirtool https://github.com/grafana/mimir/releases/latest/download/mimirtool-linux-amd64
chmod +x mimirtool
使用 mimirtool
mimirtool config convert
命令将 Cortex 1.11 配置文件转换为 Grafana Mimir 配置文件。它会移除 Grafana Mimir 中不再可用的配置参数,并重命名已更改名称的配置参数。如果您已将配置参数显式设置为与 Cortex 默认值匹配的值,则默认情况下 mimirtool config convert
不会更新该值。要使 mimirtool config convert
将从 Cortex 默认值显式设置的值更新为新的 Grafana Mimir 默认值,请提供 --update-defaults
标志。有关使用 mimirtool
进行配置转换的更多信息,请参阅convert。
使用 Jsonnet 迁移到 Grafana Mimir
Grafana Mimir 包含一个 Jsonnet 库,它替换了现有的 Cortex Jsonnet 库和更新的监控 Mixin。
迁移到 Grafana Mimir 视频
以下视频演示了如何使用 Jsonnet 迁移到 Grafana Mimir。
此处应该有一个视频,但由于某些原因无法加载。可能是我们输入的 ID 有误(抱歉!),也可能是 Vimeo 服务异常。如果是后者,请耐心等待,预计很快就会恢复正常。在此期间,您可以查看我们的博客!
迁移到 Grafana Mimir 说明
以下说明描述了如何使用 Jsonnet 迁移到 Grafana Mimir。
要使用 jsonnet-bundler
安装更新的库,请运行以下命令
jb install github.com/grafana/mimir/operations/mimir@main
jb install github.com/grafana/mimir/operations/mimir-mixin@main
部署更新后的 Jsonnet
安装更新的监控 Mixin。
a. 将仪表盘添加到 Grafana。这些仪表盘将取代您的 Cortex 仪表盘,并继续用于监控 Cortex 部署。
注意
资源仪表盘默认启用,并需要额外的指标源。要了解所需的指标源,请参阅额外资源指标。
b. 将记录和报警规则安装到 ruler 或 Prometheus 服务器中。
将 Cortex Jsonnet 库的导入替换为 Mimir Jsonnet 库。例如
import 'github.com/grafana/mimir/operations/mimir/mimir.libsonnet'
从
<MIMIR>._config
对象的任何成员键中移除cortex_
前缀。例如,cortex_compactor_disk_data_size
变为compactor_disk_data_size
。如果您使用的是 Cortex 默认设置,请将服务器 HTTP 端口设置为 80。新的 Mimir 默认端口为 8080。例如
(import 'github.com/grafana/mimir/operations/mimir/mimir.libsonnet') { _config+: { server_http_port: 80, }, }
对于每个组件,使用
mimirtool
更新配置的参数。要提取每个组件的标志,请参阅从 Jsonnet 提取标志。应用更新后的 Jsonnet
要验证集群是否正常运行,请使用监控 Mixin 仪表盘。