监控系统健康状况
您可以通过采集在 Kubernetes 集群上运行的 Mimir 或 GEM 实例的指标和日志来监控 Grafana Mimir 或 Grafana Enterprise Metrics。此过程称为 元监控(metamonitoring)。
作为 元监控 的一部分,您可以创建仪表盘并接收关于从 Mimir 采集的指标和日志的警报。要设置这些仪表盘和警报,请参阅安装 Grafana Mimir 仪表盘和警报。
通过 Helm Chart 配置 Grafana Agent Operator
注意
Grafana Alloy 是我们 OpenTelemetry Collector 发行版的新名称。Grafana Agent 已被弃用,并在长期支持(LTS)下持续到 2025 年 10 月 31 日。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 指标上的实例标签值相同的实例标签。有关必需的 node_exporter 指标列表,请参阅 Grafana Cloud:自托管 Grafana Mimir 集成 中以 node
为前缀的指标。
您可以使用 Grafana Agent Operator 配置指标和日志的采集。Helm Chart 可以安装并使用 Grafana Agent Operator。
注意:在 Helm Chart 可以使用 Operator 之前,您需要手动安装 Grafana Agent Operator YAML 文件中的所有 Kubernetes Custom Resource Definitions (CRDs)。
最好使用 Grafana Agent Operator 进行指标和日志采集。但是,如果您不想使用它或已经有现有的 Grafana Agent 要使用,请参阅 Grafana Mimir 2.5.0 版本中的《通过 Grafana Agent 采集指标和日志》文档。
将凭据存储在 Secret 中
如果 Prometheus 和 Loki 未启用认证运行,则可以跳过此部分。元监控支持多种指标和日志认证方式。如果您使用 Secret(例如 API 密钥)向 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 值
将以下 YAML 配置合并到您的 Helm values 文件中,并使用 Prometheus 和 Loki 集群的详细信息以及您创建的 Secret 替换
url
、username
、passwordSecretName
和passwordSecretKey
的值。如果您的 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
有关使用 Helm Chart 配置 Grafana Mimir 的更多信息,请参阅 使用 Helm Chart 在生产环境中运行 Grafana Mimir。
将指标发送回 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
时也是默认值),则还需要提供一个包含该租户认证 Token 的 Secret。该 Token 应具有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 集成。