使用 Helm chart 开始使用 Grafana Mimir 和 GEM
mimir-distributed Helm chart 允许您在 Kubernetes 集群中安装、配置和升级 Grafana Mimir 和 Grafana Enterprise Metrics (GEM)。
开始之前
以下说明适用于任何 Kubernetes 版本。如果您没有 Kubernetes 经验,可以安装轻量级 Kubernetes 版本,例如 kind。
建议具备以下经验,但不是必需的
注意:此过程主要针对本地或开发环境设置。要在生产环境中设置,请参阅使用 Helm chart 在生产环境中运行 Grafana Mimir。
硬件要求
- 至少具有 4 核和 16GiB RAM 的单个 Kubernetes 节点
软件要求
Kubernetes 1.20 或更高版本
适用于您的 Kubernetes 版本的
kubectl
命令运行以下命令获取 Kubernetes 和 `kubectl` 版本:`kubectl version`。该命令会打印出服务器和客户端版本,其中服务器是 Kubernetes 本身,客户端表示 `kubectl`。
helm
命令 3.8 或更高版本运行以下命令获取 Helm 版本:`helm version`。
验证您是否具备
访问 Kubernetes 集群的权限
例如,通过运行命令 `kubectl get ns`(该命令列出所有命名空间)。
Kubernetes 集群中已启用持久存储,并且已设置默认存储类。您可以更改默认 StorageClass。
注意:如果您正在使用
kind
或不确定,请假定它已启用并继续。DNS 服务在 Kubernetes 集群中工作正常
注意:如果您正在使用
kind
或不确定,请假定它工作正常并继续。
安全设置
如果您正在使用 kind
或类似的本地 Kubernetes 设置且尚未设置安全策略,则可以安全地跳过本节。
如果您启用了 PodSecurityPolicy 准入控制器,或者正在使用 Pod Security 准入控制器强制执行 Restricted 策略,则此安装将无法成功。原因是安装包含了 MinIO 的部署。minio/minio chart 不兼容在 Restricted 策略或 mimir-distributed chart 提供的 PodSecurityPolicy 下运行。
如果您使用 PodSecurityPolicy 准入控制器,则无法使用 MinIO 部署 mimir-distributed chart。有关设置外部对象存储以及在 Helm values 文件中使用 `minio.enabled: false` 禁用内置 MinIO 部署的说明,请参阅使用 Helm chart 在生产环境中运行 Grafana Mimir。
如果您使用 Pod Security 准入控制器,则 MinIO 和 mimir-distributed chart 可以在 baseline pod 安全级别下成功部署。
在自定义命名空间中安装 Helm chart
使用自定义命名空间可以避免以后出现问题,因为您不必覆盖默认命名空间。
创建一个唯一的 Kubernetes 命名空间,例如
mimir-test
kubectl create namespace mimir-test
有关更多详细信息,请参阅 Kubernetes 文档中关于创建新命名空间的内容。
使用以下命令设置 Helm 仓库
helm repo add grafana https://grafana.github.io/helm-charts helm repo update
注意:位于 https://grafana.github.io/helm-charts 的 Helm chart 是 grafana/mimir 源代码的发布版本。
使用 Helm chart 安装 Grafana Mimir
helm -n mimir-test install mimir grafana/mimir-distributed
注意:命令的输出包含后续步骤所需的写入和读取 URL。
检查 Mimir Pod 的状态
kubectl -n mimir-test get pods
结果类似于这样
NAME READY STATUS RESTARTS AGE mimir-minio-7bd89b757d-q5hp6 1/1 Running 0 2m44s mimir-rollout-operator-76c67c7d56-v6xtl 1/1 Running 0 2m44s mimir-nginx-858455979c-hjvhx 1/1 Running 0 2m44s mimir-make-minio-buckets-svgvd 0/1 Completed 1 2m44s mimir-ruler-64b9d59b94-tvj7z 1/1 Running 0 2m44s mimir-query-frontend-c444b56f9-jrmwl 1/1 Running 0 2m44s mimir-overrides-exporter-86c4d54645-zktkm 1/1 Running 0 2m44s mimir-querier-5d9c55d6d9-l6fdc 1/1 Running 0 2m44s mimir-distributor-7796db494f-rsvdx 1/1 Running 0 2m44s mimir-query-scheduler-d5dccfff7-5c5rw 1/1 Running 0 2m44s mimir-querier-5d9c55d6d9-xghl6 1/1 Running 0 2m44s mimir-query-scheduler-d5dccfff7-vz4vf 1/1 Running 0 2m44s mimir-alertmanager-0 1/1 Running 0 2m44s mimir-store-gateway-zone-b-0 1/1 Running 0 2m44s mimir-store-gateway-zone-c-0 1/1 Running 0 2m43s mimir-ingester-zone-b-0 1/1 Running 0 2m43s mimir-compactor-0 1/1 Running 0 2m44s mimir-ingester-zone-a-0 1/1 Running 0 2m43s mimir-store-gateway-zone-a-0 1/1 Running 0 2m44s mimir-ingester-zone-c-0 1/1 Running 0 2m44s
等待所有 Pod 的状态变为
Running
或Completed
,这可能需要几分钟。
生成测试指标
注意
Grafana Alloy 是我们的 OTel collector 发行版的新名称。Grafana Agent 已被弃用,并将长期支持 (LTS) 到 2025 年 10 月 31 日。Grafana Agent 将于 2025 年 11 月 1 日达到生命周期结束 (EOL)。阅读更多关于我们为何推荐迁移到 Grafana Alloy 的信息。
Grafana Mimir Helm chart 可以收集关于 Grafana Mimir 本身(或两者)的指标、日志。这被称为 metamonitoring(元监控)。在下面的示例中,元监控抓取关于 Grafana Mimir 本身的指标,然后将这些指标写入同一个 Grafana Mimir 实例。
部署 Grafana Agent Operator 自定义资源定义 (CRD)。有关更多信息,请参阅 Grafana Agent 文档中的部署 Agent Operator 自定义资源定义 (CRD)。
为您的 Helm values 覆盖创建一个名为
custom.yaml
的 YAML 文件。将以下 YAML 片段添加到custom.yaml
中以在 Mimir 中启用元监控metaMonitoring: serviceMonitor: enabled: true grafanaAgent: enabled: true installOperator: true metrics: additionalRemoteWriteConfigs: - url: "http://mimir-nginx.mimir-test.svc:80/api/v1/push"
注意
在生产环境中,上面的
url
将指向一个外部系统,独立于您的 Grafana Mimir 实例,例如一个 Grafana Cloud Metrics 实例。使用
helm
命令升级 Grafana Mimirhelm -n mimir-test upgrade mimir grafana/mimir-distributed -f custom.yaml
在 Kubernetes 中启动 Grafana 并查询指标
在同一个 Kubernetes 集群中安装 Grafana。
有关详细信息,请参阅在 Kubernetes 上部署 Grafana。
如果您在之前的步骤中尚未执行此操作,请使用
kubectl
命令将 Grafana 端口转发到localhost
kubectl port-forward service/grafana 3000:3000
在浏览器中,访问位于 https://:3000 的 Grafana 服务器。
使用默认用户名
admin
和密码admin
登录。在左侧导航栏中,转到 Configuration > Data sources。
使用以下设置配置新的 Prometheus 数据源以查询本地 Grafana Mimir 服务器
字段 值 名称 Mimir URL http://mimir-nginx.mimir-test.svc:80/prometheus 要添加数据源,请参阅添加数据源。
验证成功
您应该能够在 Grafana Explore 中查询指标,并使用您新配置的
Mimir
数据源创建仪表盘面板。
部署 Grafana Enterprise Metrics
有关 GEM 特定的其他配置,请参阅部署 Grafana Enterprise Metrics。
启用对 Grafana Mimir 的外部访问
要从 Kubernetes 集群外部启用对 Grafana Mimir 的写入和查询访问,请参阅启用对 Grafana Mimir 的外部访问。