暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Prometheus 混合云监控实战:巧用 Relabel 规则,统一管理多环境监控标签

Linux运维智行录 2025-03-04
769

在混合云和异构架构盛行的今天,运维团队常常需要同时监控 Kubernetes 集群中的容器化服务和传统物理机环境。然而,许多用户在使用 Prometheus 时会遇到一个典型问题:配置了 static_configs
 和 kubernetes_sd_configs
 的 Job,物理机目标莫名其妙“消失”,数据死活采集不到!

本文将以监控 node-exporter 为例,深入剖析问题根源,并给出可直接复用的配置方案。

混合云监控

问题场景还原

某用户希望在一个 Prometheus Job 中同时监控:

  1. Kubernetes 集群中容器化的 node-exporter(通过 endpoints 暴露指标)
  2. 物理机环境中直接部署的 node-exporter(IP:Port 直连)

初始配置

- job_name:node-exporter
static_configs:
    -targets:["172.139.20.1:9100"]# 物理机地址
kubernetes_sd_configs:
    -role:endpoints
relabel_configs:
    -action:keep
      source_labels:[__meta_kubernetes_namespace,__meta_kubernetes_endpoints_name,__meta_kubernetes_endpoint_port_name]
      regex:kube-system;node-exporter;metrics

结果发现:物理机的 172.139.20.1:9100 始终无法采集数据!

问题根源分析

根本原因在于 Relabel 规则的“误杀”:

  1. Prometheus 会将 Job 下所有发现机制(static_configs + kubernetes_sd_configs)的目标合并处理。
  2. relabel_configs 中的 keep 动作要求目标必须匹配 kube-system;node-exporter;metrics
     的 Kubernetes 元数据标签。
  3. 物理机目标没有 __meta_kubernetes_*
     标签,因此直接被过滤丢弃!

解决方案:分离处理 + 动态打标

核心思路:通过 Relabel 规则区分 Kubernetes 和物理机目标,并分别处理。

优化后的配置

- job_name:node-exporter
static_configs:
-targets:["172.139.20.1:9100"]
kubernetes_sd_configs:
-role:node
relabel_configs:
-source_labels:[__address__]
    action:replace
    regex:(.*):10250
    target_label:__address__
    replacement:$1:9100
-source_labels:[__address__]
    target_label:instance

关键配置解读

  1. 物理机静态配置:
  • 直接通过 static_configs 定义目标,避免被 Kubernetes 的 Relabel 规则过滤。
2. Kubernetes 动态发现:
  • 使用 node 角色自动发现节点。
  • replace 动作修改抓取metrics端口。原本端口是10250改成9100。
3. relabel_configs配置:
  • 第一个:两个发现机制都做 replace 动作修改抓取metrics端口;注意:静态配置不会匹配中,因为端口并非是10250.
  • 第二个:两个发现机制都做修改instance标签,将 __address__
     标签值赋值给instance标签

效果验证

查看 Targets 页面:访问 http://<prometheus>:9090/targets
 地址

结语

通过合理的 Relabel 规则和标签策略,Prometheus 可以轻松实现混合环境的统一监控。本文方案已在实际生产环境中验证,读者可直接复用配置,并根据自身需求调整标签逻辑。

别忘了,关注我们的公众号,获取更多关于容器技术和云原生领域的深度洞察和技术实战,让我们携手在技术的海洋中乘风破浪!

文章转载自Linux运维智行录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论