菜单
文档面包屑箭头 Grafana Loki面包屑箭头 管理面包屑箭头 监控 Loki面包屑箭头 部署 Loki 元监控
开源

部署 Loki 元监控

收集和监控 Loki 集群的主要方法是使用 Kubernetes Monitoring Helm chart。此 Chart 为 Kubernetes 集群提供了一个全面的监控解决方案,并包含了对完整 LGTM (Loki, Grafana, Tempo 和 Mimir) 技术栈的直接集成监控。本步骤将引导您部署 Kubernetes Monitoring Helm chart 以监控您的 Loki 集群。

注意

我们建议在生产环境中使用 Kubernetes 以分布式模式运行 Loki 集群。本步骤假设您拥有一个正在运行的 Kubernetes 集群和一个正在运行的 Loki 部署。还有其他部署 Loki 的方法,例如使用 Docker 或虚拟机安装。使用这些部署方法时,元监控仍然可能,但本步骤未涵盖。

先决条件

  • kubectl
  • Helm 3 或更高版本。请参阅 安装 Helm
  • 一个正在运行的 Kubernetes 集群以及一个正在运行的 Loki 部署。
  • 一个 Grafana Cloud 账户或一个单独的 LGTM 技术栈用于监控。

准备您的环境

在部署 Kubernetes Monitoring Helm chart 之前,您需要在您的环境中设置几个组件。

  1. 添加 Grafana Helm 仓库

    bash
    helm repo add grafana https://grafana.github.io/helm-charts
  2. 更新您的 Helm 仓库

    bash
    helm repo update
  3. 为监控技术栈创建一个命名空间

    bash
    kubectl create namespace meta

认证

Kubernetes Monitoring Helm chart 需要一个 Grafana Cloud 账户或一个单独的 LGTM 技术栈用于监控。您需要向 Helm chart 提供必要的凭据,以便与您的 Grafana Cloud 账户或 LGTM 技术栈进行认证。在本步骤中,我们将使用 Grafana Cloud 作为示例。

  1. 在 Grafana Cloud 中创建一个新的 Cloud Access Policy。

    1. 登录 Grafana Cloud
    2. 在主菜单中,选择 Security > Access Policies
    3. 点击 Create access policy
    4. 为 Policy 指定一个 Name 并选择以下权限
      • 指标:写入
      • 日志:写入
    5. 点击 Create
    6. 点击 Add Token。为 Token 指定一个名称,然后点击 Create。保存 Token 以备后用。
  2. 收集 Prometheus 和 Loki 的 urlusername

    1. 导航到 Grafana Cloud Portal 的 Overview 页面。
    2. 点击您的 Prometheus 实例的 Details 按钮。
      1. Sending metrics using Grafana Alloy 部分,收集实例的 usernameurl
      2. 导航回 Overview 页面。
    3. 点击您的 Loki 实例的 Details 按钮。
      1. Sending Logs to Grafana Cloud using Grafana Alloy 部分,收集实例的 usernameurl
      2. 导航回 Overview 页面。
  3. 使用从 Grafana Cloud 收集的凭据创建 Kubernetes Secrets。

    bash
    kubectl create secret generic metrics -n meta \
     --from-literal=username=<PROMETHEUS-USER> \
     --from-literal=password=<CLOUD-TOKEn>
    
    kubectl create secret generic logs -n meta \
     --from-literal=username=<LOKI-USER> \
     --from-literal=password=<CLOUD-TOKEN>

请注意,Kubernetes Monitoring Helm 根据您的需求支持许多不同的认证方法,包括

  • Bearer Tokens
  • OAuth2
  • SigV4
  • External Secrets

有关如何配置这些方法的更多信息,请参阅 Kubernetes Monitoring Helm 示例

部署 Kubernetes Monitoring Helm chart

现在您已经准备好了环境并收集了必要的凭据,您可以部署 Kubernetes Monitoring Helm chart 来监控您的 Loki 集群。为此,我们需要将 values.yaml 文件复制到本地机器并修改,以包含必要的配置。

  1. 从 Kubernetes Monitoring Helm chart 仓库下载 values.yaml 文件

    bash
    curl -O https://raw.githubusercontent.com/grafana/loki/main/production/meta-monitoring/values.yaml
  2. 使用您选择的文本编辑器打开 values.yaml 文件,并添加 Prometheus 和 Loki 的端点。

    yaml
    destinations:
      - name: prometheus
        type: prometheus
        url: https://<PROMETHEUS-ENDPOINT>/api/prom/push
        auth:
          type: basic
          usernameKey: username
          passwordKey: password
        secret:
            create: false
            name: metrics
            namespace: meta
    
      - name: loki
        type: loki
        url: https://<LOKI-ENDPOINT>/loki/api/v1/push
        auth:
          type: basic
          usernameKey: username
          passwordKey: password
        secret:
            create: false
            name: logs
            namespace: meta
  3. (可选)更新集群名称为一个可读的名称,以便在 Grafana Cloud 中识别您的集群。

    yaml
    # Global Label to be added to all telemetry data. Should reflect a recognizable name for the cluster.
     cluster:
         name: loki-meta-monitoring-cluster
  4. 默认的 values 文件假设您已将 Loki 部署在 loki 命名空间中,并将把 Kubernetes 监控技术栈部署在 meta 命名空间中。如果您将 Loki 部署在不同的命名空间中,则需要更新 values.yaml 文件中的 namespaces 以匹配 Loki 部署所在的命名空间。示例如下

    yaml
    namespaces:
        - loki

    请注意,如果您想从所有可用命名空间收集数据,可以从 values.yaml 文件中移除 namespaces 键。

  5. 使用修改后的 values.yaml 文件部署 Kubernetes Monitoring Helm chart

    bash
    helm install meta-loki grafana/k8s-monitoring \
     --namespace meta \
     -f values.yaml
  6. 验证 Kubernetes Monitoring Helm chart 是否已成功部署

    bash
     kubectl get pods -n meta

    您应该会看到在 meta 命名空间中运行的 Pod 列表。

    console
    NAME                                           READY   STATUS    RESTARTS ...        
    meta-loki-alloy-singleton-6d7f8d8b86-sg4wx     2/2     Running   0        ...       
    meta-loki-kube-state-metrics-64bdcfcbd-5snqz   1/1     Running   0        ...       
    meta-loki-node-exporter-855l5                  1/1     Running   0        ...       
    meta-loki-node-exporter-b976b                  1/1     Running   0        ...       
    meta-loki-node-exporter-vsm4s                  1/1     Running   0        ...

后续步骤

您已成功部署 Kubernetes Monitoring Helm chart 来监控您的 Loki 集群。现在您可以继续下一步,部署 Loki mixin 以可视化来自 Loki 集群的指标和日志。有关更多信息,请参阅 安装 Loki Mixin