菜单
文档breadcrumb arrow Grafana Mimirbreadcrumb arrow 设置breadcrumb arrow 迁移breadcrumb arrow 从 Cortex 迁移
开源

从 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,使用以下命令

bash
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。


迁移到 Grafana Mimir 说明

以下说明描述了如何使用 Jsonnet 迁移到 Grafana Mimir。

要使用 jsonnet-bundler 安装更新的库,请运行以下命令

bash
jb install github.com/grafana/mimir/operations/mimir@main
jb install github.com/grafana/mimir/operations/mimir-mixin@main

部署更新后的 Jsonnet

  1. 安装更新的监控 Mixin。

    a. 将仪表盘添加到 Grafana。这些仪表盘将取代您的 Cortex 仪表盘,并继续用于监控 Cortex 部署。

    注意

    资源仪表盘默认启用,并需要额外的指标源。要了解所需的指标源,请参阅额外资源指标

    b. 将记录和报警规则安装到 ruler 或 Prometheus 服务器中。

  2. 将 Cortex Jsonnet 库的导入替换为 Mimir Jsonnet 库。例如

    jsonnet
    import 'github.com/grafana/mimir/operations/mimir/mimir.libsonnet'
  3. <MIMIR>._config 对象的任何成员键中移除 cortex_ 前缀。例如,cortex_compactor_disk_data_size 变为 compactor_disk_data_size

  4. 如果您使用的是 Cortex 默认设置,请将服务器 HTTP 端口设置为 80。新的 Mimir 默认端口为 8080。例如

    jsonnet
    (import 'github.com/grafana/mimir/operations/mimir/mimir.libsonnet') {
      _config+: {
        server_http_port: 80,
      },
    }
  5. 对于每个组件,使用 mimirtool 更新配置的参数。要提取每个组件的标志,请参阅从 Jsonnet 提取标志

  6. 应用更新后的 Jsonnet

要验证集群是否正常运行,请使用监控 Mixin 仪表盘