菜单
企业版 开源

为 Grafana Mimir 启用外部访问

设置 Grafana Mimir 的外部访问,以便从 Kubernetes 集群外部写入和查询指标。您可以设置一个ingress,以便外部访问 Kubernetes 集群。

开始之前

验证 Kubernetes 集群中已设置 ingress 控制器,例如ingress-nginx

设置 ingress

  1. 配置 ingress

    b. 在您的 custom.yaml Helm 值文件中添加以下内容

    yaml
    nginx:
      ingress:
        enabled: true
        ingressClassName: nginx
        hosts:
          - host: <ingress-host>
            paths:
              - path: /
                pathType: Prefix
        tls:
          # empty, disabled.

    <ingress-host> 替换为一个合适的 hostname,该 hostname 可以通过 DNS 解析到 Kubernetes 集群的外部 IP 地址。有关更多信息,请参阅Ingress

    注意: 在 Linux 系统上,如果您无法设置本地 DNS 解析,可以使用 --add-host=<ingress-host>:<kubernetes-cluster-external-address> 命令行标志来为后续示例中的 docker 命令定义 <ingress-host> 的本地地址。

    注意: 要查看 Helm Chart 安装的所有可配置参数,请使用 helm show values grafana/mimir-distributed

  2. 使用 helm 命令升级 Grafana Mimir

    bash
    helm -n mimir-test upgrade mimir grafana/mimir-distributed -f custom.yaml

    命令的输出应包含从外部查询 Grafana Mimir 的 URL,例如

    bash
    From outside the cluster via ingress:
    http://myhost.mynetwork/prometheus

配置 Prometheus 以写入 Grafana Mimir

您可以配置 Prometheus 以写入 Grafana Mimir,或者配置 Grafana Alloy 以写入 Mimir。虽然两者都可以配置,但您不需要同时配置。

根据您是否已设置 Prometheus 服务器进行选择

  • 对于现有的 Prometheus 服务器

    1. 将以下 YAML 片段添加到您的 Prometheus 配置文件中

      yaml
      remote_write:
        - url: http://<ingress-host>/api/v1/push

      在这种情况下,您的 Prometheus 服务器将根据现有 scrape_configs 配置中定义的内容,将指标写入 Grafana Mimir。

    2. 重启 Prometheus 服务器。

  • 对于尚未存在的 Prometheus 服务器

    1. 将以下配置写入 prometheus.yml 文件

      yaml
      remote_write:
        - url: http://<ingress-host>/api/v1/push
      
      scrape_configs:
        - job_name: prometheus
          honor_labels: true
          static_configs:
            - targets: ["localhost:9090"]

      在这种情况下,您的 Prometheus 服务器将抓取自身指标并写入 Grafana Mimir。

    2. 使用 Docker 启动 Prometheus 服务器

      bash
      docker run -p 9090:9090  -v <absolute-path-to>/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

      注意: 在 Linux 系统上,如果 Prometheus 服务器无法解析 <ingress-host>,请使用附加命令行标志 --add-host=<ingress-host>:<kubernetes-cluster-external-address> 进行设置。

配置 Grafana Alloy 以写入 Grafana Mimir

您可以配置 Grafana Alloy 以写入 Grafana Mimir,或者配置 Prometheus 以写入 Mimir。虽然两者都可以配置,但您不需要同时配置。

根据您是否已设置 Alloy 进行选择

  • 对于现有的 Alloy

    1. 将以下针对 prometheus.remote_write 组件的配置片段添加到您的 Alloy 配置文件中

      prometheus.remote_write "LABEL" {
        endpoint {
          url = http://<ingress-host>/api/v1/push
        }
      }
    2. forward_to = [prometheus.remote_write.LABEL.receiver] 添加到现有流水线中。

    3. 重启 Alloy。

  • 对于新的 Alloy

    1. 将以下配置写入 config.alloy 文件

      prometheus.exporter.self "self_metrics" {
      }
      
      prometheus.scrape "self_scrape" {
        targets    = prometheus.exporter.self.self_metrics.targets
        forward_to = [prometheus.remote_write.mimir.receiver]
      }
      
      prometheus.remote_write "mimir" {
        endpoint {
          url = "http://<ingress-host>/api/v1/push"
        }
      }
    2. 使用 Docker 启动 Alloy

      bash
      docker run -v <absolute-path-to>/config.alloy:/etc/alloy/config.alloy -p 12345:12345 grafana/alloy:latest run --server.http.listen-addr=0.0.0.0:12345 --storage.path=/var/lib/alloy/data /etc/alloy/config.alloy

      注意: 在 Linux 系统上,如果 Alloy 无法解析 <ingress-host>,请使用附加命令行标志 --add-host=<ingress-host>:<kubernetes-cluster-external-address> 进行设置。

有关 prometheus.remote_write 组件的更多信息,请参阅 Grafana Alloy 文档中的prometheus.remote_write

在 Grafana 中查询指标

您可以使用在 Kubernetes 中启动 Grafana 并查询指标文档中已安装在 Kubernetes 中的 Grafana,或按照以下说明进行操作。

注意: 如果您在上一步中为 Grafana 运行了 port-forward,请停止它。

首先安装 Grafana,然后添加 Mimir 作为 Prometheus 数据源。

  1. 使用 Docker 启动 Grafana

    bash
    docker run --rm --name=grafana -p 3000:3000 grafana/grafana

    注意: 在 Linux 系统上,如果 Grafana 无法解析 <ingress-host>,请使用附加命令行标志 --add-host=<ingress-host>:<kubernetes-cluster-external-address> 进行设置。

  2. 在浏览器中,访问 Grafana 服务器,地址为https://:3000

  3. 使用默认用户名 admin 和密码 admin 登录。

  4. 在左侧菜单中,转到 Configuration > Data sources

  5. 使用以下设置配置新的 Prometheus 数据源,以查询本地 Grafana Mimir 集群

    字段
    名称Mimir
    URLhttp://<ingress-host>/prometheus

    要添加数据源,请参阅添加数据源

  6. 验证成功

    您应该能够在Grafana Explore中查询指标,并使用新配置的 Mimir 数据源创建仪表盘面板。有关更多信息,请参阅监控 Grafana Mimir