使用 Consul 配置 Grafana Mimir 分布式 Helm Chart 实现高可用去重
Grafana Mimir 可以对来自高可用(HA)Prometheus 设置的数据进行去重。您可以使用使用外部 Consul 的 Grafana Mimir helm chart 部署来配置去重功能。更多信息请参见 配置高可用。
开始之前
您需要通过 mimir-distributed Helm chart 安装 Grafana Mimir。
有关 Mimir 如何对传入的 HA 样本进行去重的概念性信息,请参阅 配置高可用。
您还需要为 Prometheus 或 Grafana Agent 配置 HA。最后,您需要一个键值存储,例如 Consul KV。
配置 Prometheus 或 Grafana Agent 发送 HA 外部标签
通过设置名为 cluster
和 __replica__
的标签来配置 Prometheus 或 Grafana Agent 的 HA 设置,这些是 Grafana Mimir 中 HA 设置的默认标签。如果您想更改 HA 标签,请确保在 Mimir 中也进行更改。这确保了 Grafana Mimir、Prometheus 和 Grafana Agent 的配置相互匹配。否则,HA 去重将无法工作。
cluster
标签的值在属于同一集群的所有副本中必须相同。__replica__
标签的值在同一集群的不同副本中必须唯一。
global:
external_labels:
__replica__: replica-1
cluster: my-prometheus
更新配置后重新加载或重启 Prometheus 或 Grafana Agent。
注意: 配置高可用 文档中包含有关 Prometheus HA 去重设置的相同信息。
使用 Helm 安装 Consul
要获取并在 Kubernetes 上安装 Consul,请使用 Consul helm chart。记下 Consul 的端点,因为稍后配置 Mimir 时会需要它。
配置 Mimir 高可用
您可以全局或按租户级别配置 Mimir HA 去重。
全局配置 HA 去重
开始之前,请确保 Mimir 是使用 mimir-distributed Helm chart 安装的。
- 将以下配置合并到您的
custom.yaml
文件中
mimir:
structuredConfig:
limits:
accept_ha_samples: true
# The following two configurations must match those of external_labels in Prometheus
# The config values below are the default and can be removed if you don't want to override to a new value
ha_cluster_label: cluster
ha_replica_label: __replica__
distributor:
ha_tracker:
enable_ha_tracker: true
kvstore:
store: consul
consul:
host: <consul-endpoint> # example: http://consul.consul.svc.cluster.local:8500
- 使用以下命令升级 Mimir 的 helm 发布
helm -n <mimir-namespace> upgrade mimir grafana/mimir-distributed -f custom.yaml
按租户配置 HA 去重
开始之前,请确保 Mimir 是使用 mimir-distributed Helm chart 安装的。
- 将以下配置合并到
custom.yaml
文件中
mimir:
structuredConfig:
limits:
accept_ha_samples: true
# The following two configurations must match those of external_labels in Prometheus
# The config values below are the default and can be removed if you don't want to override to a new value
ha_cluster_label: cluster
ha_replica_label: __replica__
distributor:
ha_tracker:
enable_ha_tracker: true
kvstore:
store: consul
consul:
host: <consul-endpoint> # example: http://consul.consul.svc.cluster.local:8500
runtimeConfig:
overrides:
<tenant-id>: # put real tenant ID here
accept_ha_samples: true
ha_cluster_label: cluster
ha_replica_label: __replica__
mimir
配置块与全局配置 HA 去重设置类似。runtimeConfig
块是按租户配置 HA 去重的配置。
- 使用以下命令升级 Mimir 的 helm 发布
helm -n <mimir-namespace> upgrade mimir grafana/mimir-distributed -f custom.yaml
验证去重
在 Consul、Prometheus 和 Mimir 运行后,我们可以通过几种方式验证去重。
ha_tracker 页面
端口转发 Mimir distributor 服务。port-forward
后面的参数必须与您的 Mimir distributor 名称匹配。
kubectl -n <mimir-namespace> port-forward service/mimir-distributor 8080:8080
您可以使用以下命令获取 distributor 名称
kubectl -n <mimir-namespace> get service | grep distributor
在浏览器中打开 https://:8080/distributor/ha_tracker
。您应该看到类似于以下的输出。如果表格为空,则表示配置有问题。
Distributor 指标
如果您已设置 metamonitoring,或者您运行带有内置系统监控的 GEM,Mimir distributor 会暴露一些与 HA 去重相关的指标。相关指标带有 cortex_ha_tracker_
前缀。
确保 HA 指标已去重
转到 Grafana explore 页面并选择 Mimir 数据源。然后执行以下查询:up
。在 Options 下拉菜单中,选择 Format = Table。结果中您可以看到几个带有不同标签的时间序列。
最重要的是,您将不再找到 __replica__
标签(或您在 ha_replica_label
配置中设置的任何标签)。这意味着您已成功配置了去重功能。