监控系统健康状况
您可以通过收集在 Kubernetes 集群上运行的 Mimir 或 GEM 实例的指标和日志来监控 Grafana Mimir 或 Grafana Enterprise Metrics。此过程称为 元监控(metamonitoring)。
作为 元监控 的一部分,您可以创建仪表盘并接收关于从 Mimir 收集的指标和日志的警报。要设置这些仪表盘和警报,请参阅安装 Grafana Mimir 仪表盘和警报。
通过 Helm Chart 配置 Grafana Agent Operator
注意
Grafana Alloy 是我们发行的 OTel collector 的新名称。Grafana Agent 已被弃用,并将在 2025 年 10 月 31 日之前进入长期支持 (LTS) 阶段。Grafana Agent 将于 2025 年 11 月 1 日终止生命周期 (EOL)。了解更多关于我们建议迁移到 Grafana Alloy 的原因。
在 Helm Chart 中,您可以配置指标和日志的发送位置。您可以将指标发送到 Prometheus 兼容的服务器,并将日志发送到 Loki 集群。Helm Chart 还可以从 kube-state-metrics、kubelet 和 cAdvisor 抓取额外指标。
Helm Chart 不会收集 Prometheus node_exporter 指标;node_exporter 的指标必须都带有与 Mimir 指标上 instance 标签值相同的 instance 标签。有关必要的 node_exporter 指标列表,请参阅 Grafana Cloud:自托管 Grafana Mimir 集成 中带有 node
前缀的指标。
您可以使用 Grafana Agent operator 配置指标和日志收集。Helm Chart 可以安装并使用 Grafana Agent operator。
注意:在 Helm Chart 可以使用 operator 之前,您需要从 Grafana Agent operator YAML 文件 中手动安装所有 Kubernetes 自定义资源定义 (CRD)。
最好使用 Grafana Agent operator 进行指标和日志收集。但是,如果您不想使用它,或者您已经有现有的 Grafana Agent,请参阅 Grafana Mimir 2.5.0 版本中的《通过 Grafana Agent 收集指标和日志》文档。
在 Secret 中存储凭据
如果 Prometheus 和 Loki 在没有身份验证的情况下运行,则可以跳过此部分。元监控支持多种指标和日志身份验证方式。如果您使用 API 密钥等 Secret 进行 Prometheus 或 Loki 身份验证,则需要创建包含该 Secret 的 Kubernetes Secret。
这是一个 Kubernetes Secret 示例
apiVersion: v1 kind: Secret metadata: name: metamonitoring-credentials data: prometheus-api-key: FAKEACCESSKEY loki-api-key: FAKESECRETKEY
有关如何创建 Kubernetes Secret 的信息,请参阅创建 Secret。
配置 Helm Chart Values
将以下 YAML 配置合并到您的 Helm values 文件中,并将
url
、username
、passwordSecretName
和passwordSecretKey
的值替换为 Prometheus 和 Loki 集群的详细信息以及您创建的 Secret。如果您的 Prometheus 和 Loki 服务器在没有身份验证的情况下运行,则删除以下 YAML 中的auth
块。如果您的 Kubernetes 集群中已经安装了 Agent operator,请设置
installOperator: false
。metaMonitoring: serviceMonitor: enabled: true grafanaAgent: enabled: true installOperator: true logs: remote: url: "https://example.com/loki/api/v1/push" auth: username: "12345" passwordSecretName: "metamonitoring-credentials" passwordSecretKey: "loki-api-key" metrics: remote: url: "https://example.com/api/v1/push" auth: username: "54321" passwordSecretName: "metamonitoring-credentials" passwordSecretKey: "prometheus-api-key" scrapeK8s: enabled: true kubeStateMetrics: namespace: kube-system labelSelectors: app.kubernetes.io/name: kube-state-metrics
将指标发送回 Mimir 或 GEM
您还可以将收集到的指标(元监控指标)发送回 Mimir 或 GEM 本身,而不是发送到其他地方。
当您将 metamonitoring.grafanaAgent.metrics.remote.url
字段留空时,Chart 将自动填写 GEM 网关 Service 或 Mimir NGINX Service 的地址。
如果您已部署 Mimir,并且未设置 metamonitoring.grafanaAgent.metrics.remote.url
,则元监控指标将被发送到 Mimir 集群。您可以使用 HTTP 头 X-Scope-OrgID: metamonitoring
查询这些指标。
如果您已部署 GEM,则有两种替代方案
如果您使用
trust
身份验证类型(mimir.structuredConfig.auth.type=trust
),则适用与 Mimir 相同的说明。如果您使用企业身份验证类型(
mimir.structuredConfig.auth.type=enterprise
,这也是enterprise.enabled=true
时的默认值),则还需要提供一个包含租户身份验证令牌的 Secret。该令牌应具有metrics:write
范围的访问策略。假设您使用 GEM 身份验证模型,Helm Chart 值应如下例所示。
metaMonitoring:
serviceMonitor:
enabled: true
grafanaAgent:
enabled: true
installOperator: true
metrics:
remote:
auth:
username: metamonitoring
passwordSecretName: gem-tokens
passwordSecretKey: metamonitoring
不使用 Helm Chart 进行监控
要不使用 Helm Chart 监控系统健康状况,请参阅不使用 Helm Chart 收集指标和日志。
您还可以使用自托管 Grafana Cloud 集成来监控您的 Mimir 系统。更多信息请参阅Grafana Cloud:自托管 Grafana Mimir 集成。