安装 Grafana Mimir 仪表盘和告警
Grafana Mimir 附带了一套全面的生产就绪 Grafana 仪表盘和告警,用于监控 Mimir 集群的状态和健康状况。
要求
- Grafana Mimir 仪表盘和告警要求 Prometheus 或 Grafana Alloy 在抓取您的 Mimir 集群指标时设置特定的标签
- 某些仪表盘需要您在 Prometheus 中安装记录规则
从软件包安装
Grafana Mimir 提供了随时可用的 .json 格式 Grafana 仪表盘和 .yaml 格式 Prometheus 告警,您可以直接将其导入您的 Grafana 安装和 Prometheus 配置中。
打包的仪表盘和告警是使用默认配置从源编译的,不允许您自定义所需的指标标签名称。如果您需要自定义所需的指标标签名称,请选择其他安装选项之一。
- 从 Grafana Mimir 仓库下载仪表盘、记录规则和告警
- 在 Grafana 中导入仪表盘
- 在您的 Prometheus 中安装记录规则和告警
从源安装
Grafana Mimir 仪表盘和告警是使用 Jsonnet 语言构建的,您可以从源编译它们。如果选择此选项,您可以更改配置以匹配您的部署,例如自定义所需的标签名称。
- 检出 Mimir 源代码
git clone https://github.com/grafana/mimir.git
- 查看
operations/mimir-mixin/config.libsonnet
中的 mixin 配置,并在必要时应用您的更改。 - 编译 mixin
make build-mixin
- 将保存在
operations/mimir-mixin-compiled/dashboards/
中的仪表盘导入 Grafana - 在您的 Prometheus 中安装保存在
operations/mimir-mixin-compiled/rules.yaml
中的记录规则 - 在您的 Prometheus 中安装保存在
operations/mimir-mixin-compiled/alerts.yaml
中的告警
从 Jsonnet mixin 安装仪表盘
如果您已经使用 Jsonnet 定义您的基础设施即代码,您可以直接将 Grafana Mimir mixin 引入您的基础设施仓库,并通过覆盖 _config
字段来配置它。鉴于具体的设置因情况而异,以下说明并非强制性规定,仅展示引入 mixin 所需的主要步骤。
- 初始化 Jsonnet
jb init
- 安装 Grafana Mimir mixin
jb install github.com/grafana/mimir/operations/mimir-mixin@main
- 导入并配置它
(import 'github.com/grafana/mimir/operations/mimir-mixin/mixin.libsonnet') + { _config+:: { // Override the Grafana Mimir mixin config here. }, }
使用 Terraform 部署 mixin
基于 Jsonnet 配置文件,您可以使用 Terraform 在 Grafana 和 Grafana Mimir 中部署 mixin。为此,您可以使用 grafana/grafana、ovh/mixtool 和 ovh/mimirtool 提供者。
创建 Terraform
main.tf
文件# Specify which providers to use terraform { required_version = ">= 1.3.5" required_providers { mixtool = { source = "ovh/mixtool" version = "~> 0.1.1" } mimirtool = { source = "ovh/mimirtool" version = "~> 0.1.1" } grafana = { source = "grafana/grafana" version = "~> 1.32.0" } } } # Configure providers if needed provider "grafana" { url = "https://:9000" auth = "admin:admin" } provider "mimirtool" { address = "https://:9009" tenant_id = "anonymous" } locals { mixin_source = "custom.libsonnet" jsonnet_path = "vendor" } # Build alerts data "mixtool_alerts" "mimir" { source = local.mixin_source jsonnet_path = [local.jsonnet_path] } # Build rules data "mixtool_rules" "mimir" { source = local.mixin_source jsonnet_path = [local.jsonnet_path] } # Build dashboards data "mixtool_dashboards" "mimir" { source = local.mixin_source jsonnet_path = [local.jsonnet_path] } # Deploy rules resource "mimirtool_ruler_namespace" "rules" { namespace = "rules_community" config_yaml = data.mixtool_rules.mimir.rules } # Deploy alerts resource "mimirtool_ruler_namespace" "alerts" { namespace = "alerts_community" config_yaml = data.mixtool_alerts.mimir.alerts } # Deploy dashboards resource "grafana_dashboard" "mimir" { for_each = data.mixtool_dashboards.mimir.dashboards config_json = each.value }
初始化 Terraform
terraform init
检查 Terraform 将对您的基础设施应用的更改
terraform plan
部署更改
terraform apply