菜单
文档breadcrumb arrow Grafana Mimirbreadcrumb arrow 管理breadcrumb arrow 监控 Mimirbreadcrumb arrow 安装仪表盘和告警
开源

安装 Grafana Mimir 仪表盘和告警

Grafana Mimir 附带了一套全面的生产就绪 Grafana 仪表盘和告警,用于监控 Mimir 集群的状态和健康状况。

要求

  • Grafana Mimir 仪表盘和告警要求 Prometheus 或 Grafana Alloy 在抓取您的 Mimir 集群指标时设置特定的标签
  • 某些仪表盘需要您在 Prometheus 中安装记录规则

从软件包安装

Grafana Mimir 提供了随时可用的 .json 格式 Grafana 仪表盘和 .yaml 格式 Prometheus 告警,您可以直接将其导入您的 Grafana 安装和 Prometheus 配置中。

打包的仪表盘和告警是使用默认配置从源编译的,不允许您自定义所需的指标标签名称。如果您需要自定义所需的指标标签名称,请选择其他安装选项之一。

  1. 从 Grafana Mimir 仓库下载仪表盘记录规则告警
  2. 在 Grafana 中导入仪表盘
  3. 在您的 Prometheus 中安装记录规则和告警

从源安装

Grafana Mimir 仪表盘和告警是使用 Jsonnet 语言构建的,您可以从源编译它们。如果选择此选项,您可以更改配置以匹配您的部署,例如自定义所需的标签名称

  1. 检出 Mimir 源代码
    bash
    git clone https://github.com/grafana/mimir.git
  2. 查看 operations/mimir-mixin/config.libsonnet 中的 mixin 配置,并在必要时应用您的更改。
  3. 编译 mixin
    bash
    make build-mixin
  4. 将保存在 operations/mimir-mixin-compiled/dashboards/ 中的仪表盘导入 Grafana
  5. 在您的 Prometheus 中安装保存在 operations/mimir-mixin-compiled/rules.yaml 中的记录规则
  6. 在您的 Prometheus 中安装保存在 operations/mimir-mixin-compiled/alerts.yaml 中的告警

从 Jsonnet mixin 安装仪表盘

如果您已经使用 Jsonnet 定义您的基础设施即代码,您可以直接将 Grafana Mimir mixin 引入您的基础设施仓库,并通过覆盖 _config 字段来配置它。鉴于具体的设置因情况而异,以下说明并非强制性规定,仅展示引入 mixin 所需的主要步骤。

  1. 初始化 Jsonnet
    bash
    jb init
  2. 安装 Grafana Mimir mixin
    bash
    jb install github.com/grafana/mimir/operations/mimir-mixin@main
  3. 导入并配置它
    jsonnet
    (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/grafanaovh/mixtoolovh/mimirtool 提供者。

  1. 创建 Terraform main.tf 文件

    hcl
    # 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
    }
  2. 初始化 Terraform

    bash
    terraform init
  3. 检查 Terraform 将对您的基础设施应用的更改

    bash
    terraform plan
  4. 部署更改

    bash
    terraform apply