探索 Mimir
探索 Mimir
Grafana Mimir 是一个分布式、水平可扩展、高可用的 Prometheus 长期存储解决方案。
在本教程中,您将学习如何
- 使用 Docker Compose 在本地运行 Grafana Mimir
- 运行 Prometheus,抓取一些指标并将其远程写入 Grafana Mimir
- 运行 Grafana,探索 Grafana Mimir 仪表盘
- 在 Grafana Mimir 中配置一个测试记录规则和告警
先决条件
- Git
- Docker 和 Docker Compose
- 您的主机上端口
9000
和9009
可用
提示
或者,您也可以在我们的交互式学习环境中尝试此示例:探索 Mimir。
这是一个预配置好的环境,所有依赖项都已安装。
下载教程配置
- 使用 Git 命令行创建一个 Grafana Mimir 仓库的副本
git clone https://github.com/grafana/mimir.git cd mimir
- 导航到教程目录
cd docs/sources/mimir/get-started/play-with-grafana-mimir/
注意
本教程中的说明假定您的工作目录是
docs/sources/mimir/get-started/play-with-grafana-mimir/
。
启动 Grafana Mimir 和依赖项
使用以下 Docker 命令启动本地设置
docker compose up -d
此命令将启动
- Grafana Mimir
- 三个单体模式的 Mimir 实例以提供高可用性
- 启用多租户(租户 ID 为
demo
)
- Minio
- 用于存储块、规则和告警的 S3 兼容持久化存储
- Prometheus
- 抓取 Grafana Mimir 指标,然后将其写回 Grafana Mimir 以确保摄取指标的可用性
- Grafana
- 包含一个预装的数据源用于查询 Grafana Mimir
- 包含预装的仪表盘用于监控 Grafana Mimir
- 负载均衡器
- 一个基于 NGINX 的简单负载均衡器,用于在主机上暴露 Grafana Mimir 端点
该图展示了这些组件之间的关系:
将在主机上暴露以下端口
- Grafana 位于
https://:9000
- Grafana Mimir 位于
https://:9009
要了解有关 Grafana Mimir 配置的更多信息,您可以查阅配置文件 config/mimir.yaml
。
探索 Grafana Mimir 仪表盘
在您的本地主机上打开 Grafana https://:9000
,查看显示 Grafana Mimir 集群状态和健康状况的仪表盘。这些仪表盘查询 Grafana Mimir 以获取它们显示的指标。
作为开始,我们推荐查看以下仪表盘
几点注意事项
- Grafana Mimir 启动后,通常需要几分钟才能在仪表盘中显示有意义的指标。
- 由于本教程运行的 Grafana Mimir 没有查询调度器或 memcached,因此相关面板预计会是空的。
Grafana 中安装的仪表盘来自 Grafana Mimir mixin,其中包含了 Grafana Labs 监控 Grafana Mimir 的最佳实践仪表盘、记录规则和告警。要了解有关 mixin 的更多信息,请查阅 Grafana Mimir mixin 文档。要了解有关 Grafana 如何连接到 Grafana Mimir 的更多信息,请查阅 Mimir 数据源。
配置您的第一个记录规则
记录规则允许您预先计算经常需要或计算成本较高的表达式,并将其结果保存为一组新的时序数据。在本节中,您将使用 Grafana 提供的工具在 Grafana Mimir 中配置一个记录规则。
- 打开Grafana 告警。
- 点击新建记录规则,您也可以通过此项配置记录规则。
- 配置记录规则
- 为规则命名,例如
sum:up
。 - 在选择数据源字段中选择 Mimir。
- 在右侧的构建器 | 代码字段中选择代码。
- 在指标浏览器查询字段中输入
sum(up)
。 - 在命名空间字段中输入
example-namespace
。 - 在组字段中输入
example-group
。 - 从右上角点击保存并退出按钮。
- 为规则命名,例如
您的 sum:up
记录规则将显示处于 up
状态(即可抓取)的 Mimir 实例数量。该规则正在 Grafana Mimir ruler 中创建,并将很快可用于查询
- 打开Grafana Explore 并查询记录规则产生的时序数据,配置后可能需要最多一分钟才能显示
sum:up
- 确认查询返回值为
3
,这是当前在本地设置中运行的 Mimir 实例数量。
配置您的第一个告警规则
告警规则允许您基于 PromQL 表达式定义告警条件,并将触发的告警通知发送到 Grafana Mimir Alertmanager。在本节中,您将使用 Grafana 提供的工具在 Grafana Mimir 中配置一个告警规则。
- 打开Grafana 告警。
- 点击新建告警规则。
- 配置告警规则
- 在规则名称字段中输入
MimirNotRunning
。 - 在选择数据源字段中选择 Mimir。
- 在指标浏览器查询字段中输入
count(up == 0)
。由于所有实例都在运行,此项当前显示无数据
。
- 在规则名称字段中输入
- 向下滚动到设置评估行为
- 选择
新建文件夹
并在文件夹名称字段中输入example-folder
。 - 选择
新建评估组
并在组名称字段中输入example-group
。将评估间隔设置为30s
。
- 选择
- 向下滚动到配置标签和通知
- 选择
联系点
下拉列表,并选择grafana-default-email
。
- 选择
- 点击保存规则并退出按钮。
您的 MimirNotRunning
告警规则正在 Grafana Mimir ruler 中创建,预计当 Grafana Mimir 实例数量少于三个时会触发。您可以通过打开Grafana 告警页面并展开“example-namespace > example-group”行来检查其状态。由于所有三个实例当前都在运行,状态应为“Normal”。
为了看到告警触发,我们可以在 Grafana Mimir 集群中引入一次中断
- 突然终止三个 Grafana Mimir 实例中的一个
docker compose kill mimir-3
- 打开Grafana 告警,检查告警
MimirNotRunning
的状态,它应该在大约一分钟后切换到“Pending”状态,再过一分钟后切换到“Firing”状态。注意:由于我们突然终止了一个 Mimir 实例,Grafana Alerting UI 在查询规则时可能会暂时显示错误:该错误将很快自动解决,一旦 Grafana Mimir 内部健康检查检测到被终止的实例不健康。
Grafana Mimir Alertmanager 尚未配置通过通知通道发送告警。要配置 Alertmanager,您可以在 Grafana 中打开联系点页面,设置您首选的通知通道。请注意,此示例中的电子邮件接收器不起作用,因为没有运行 SMTP 服务器。
在添加回被终止的 Mimir 实例以解决告警之前,进入 Grafana Explore 页面并查询您的 sum:up
记录规则。您应该看到 sum:up
的值已降至 2
,因为一个实例已宕机。您还会注意到,即使一个实例宕机,查询此规则和所有其他指标仍然有效。这表明像本演示中三个实例部署这样的高可用 Grafana Mimir 设置对单个节点的宕机具有弹性。
要解决告警并从中断中恢复,请重新启动之前突然终止的 Grafana Mimir 实例
- 启动 Grafana Mimir 实例
docker-compose start mimir-3
- 打开Grafana 告警,检查告警
MimirNotRunning
的状态,它应该在大约 30 秒后切换到“Normal”状态。
总结
在本教程中,您学习了如何在本地启动一个高可用 Grafana Mimir 设置,以及一个将一些指标远程写入 Grafana Mimir 的 Prometheus 实例。然后,您使用 Grafana 查询存储在 Mimir 中的这些指标,并在一些 Grafana 仪表盘中将其可视化。最后,您通过 Grafana Alerting UI 配置了一个记录规则和告警,并验证了当条件满足时告警按预期触发。
完成本教程后,运行此 Docker 命令释放所有 Docker 资源
docker-compose down -v