菜单
开源

关于 Grafana Mimir 配置

您可以通过一个 (YAML 格式的) 配置文件或 CLI(命令行接口)参数来配置 Grafana Mimir。最好通过配置文件而不是 CLI 参数来指定配置。配置文件中设置的每个参数也可以通过相应的 CLI 参数来设置。如果您同时指定 CLI 参数和配置文件参数,CLI 参数优先于配置文件中的对应值。您可以使用 -config.file CLI 参数指定配置文件。

要查看开始使用 Grafana Mimir 所需的最常见 CLI 参数,请运行 mimir -help 命令。要查看所有可用的 CLI 参数,请运行 mimir -help-all 命令。

给定的配置在启动时加载,不能在运行时修改。然而,Grafana Mimir 确实有第二个配置文件,称为运行时配置,它会动态重新加载。有关更多信息,请参阅关于运行时配置

要查看任何组件的当前配置状态,请使用 /config/runtime_config HTTP API 端点。

通用配置

某些配置,例如对象存储后端,会在多个组件中重复。为了避免配置文件中的重复,请使用 common 配置部分或 -common.* CLI 参数。通用配置首先应用于所有特定配置,这允许特定值随后覆盖通用配置。

例如,以下配置使用名为 mimir 的同一个 Amazon S3 对象存储桶。通用存储位于 us-east 区域,用于 ruler 和 alertmanager 存储,而块存储使用同一区域的 mimir-blocks

yaml
common:
  storage:
    backend: s3
    s3:
      region: us-east
      bucket_name: mimir

blocks_storage:
  s3:
    bucket_name: mimir-blocks

有关此配置的参考,请参阅配置 Grafana Mimir 对象存储后端

通用配置的优先级如下,每个配置覆盖前一个配置

  • YAML 通用值
  • YAML 特定值
  • CLI 通用参数
  • CLI 特定参数

运维注意事项

使用单个配置文件,并将其传递给所有 Grafana Mimir 副本(如果您运行多个单进程 Mimir 副本)或 Grafana Mimir 的所有组件(如果您将 Grafana Mimir 作为微服务运行)。如果您在 Kubernetes 上运行 Grafana Mimir,可以通过将配置文件存储在 ConfigMap 中并将其挂载到每个 Grafana Mimir 容器来实现这一点。

此建议有助于避免常见的配置错误陷阱:某些配置参数看起来好像只需要某个类型的组件,但实际上它们可能被多个组件使用。例如,-ingester.ring.replication-factor CLI 参数不仅 Ingster 需要,Distributor、Querier 和 Ruler(在内部运维模式下)也需要。

通过使用单个配置文件,可以确保每个组件都能获得所需的全部配置,而无需跟踪哪个参数属于哪个组件。将特定于一个组件(如 Ingster)的配置传递给另一个组件(如 Querier)是没有害处的。在这种情况下,该配置将被简单地忽略。

如果需要,您可以使用高级 CLI 参数来覆盖特定 Grafana Mimir 组件或副本上的特定值。如果您想更改特定于某个组件的参数,而无需完全重启所有其他组件,这将很有帮助。

CLI 参数最常见的用例是使用 -target 参数将 Grafana Mimir 作为微服务运行。通过设置 -target CLI 参数,所有 Grafana Mimir 组件共享同一个配置文件,但您可以通过指定 -target 命令行值(例如 -target=ingester-target=querier)使其作为给定组件运行。

验证配置

要验证您的配置,请运行命令 mimir -modules -config.file <配置文件的路径>。这对于在部署配置之前进行验证很有用。您可以在本地或 CI 环境中使用此命令。

  • 如果配置文件有效,命令将以零退出码退出并打印可用模块。
  • 如果配置文件无效,命令将以非零退出码退出并打印错误消息到标准输出。