8-5 在Prometheus实现Kubernetes-apiserver及Coredns服务发现

前言

Prometheus 默认是采用 pull 方式拉取监控数据的,也就是定时去目标主机上抓取 metrics 数据,每一个被抓取的目标需要暴露一个 HTTP 接口,prometheus 通过这个暴露的接口就可以获取到相应的指标数据,这种方式需要由目标服务决定采集的目标有哪些,通过配置在 scrape_configs 中的各种 job来实现,无法动态感知新服务,如果后面增加了节点或者组件信息,就得手动修promrtheus 配置,并重启 promethues,很不方便,所以出现了动态服务发现,动态服务发现能够自动发现集群中的新端点,并加入到配置中,通过服务发现,
Prometheus 能查询到需要监控的 Target 列表,然后轮询这些 Target 获取监控数据。

本文介绍基于Kubernetes API实现的服务发现,即kubernetes_sd_configs。让 prometheus 动态发现 kubernetes 中被监控的目标。



kubernetes_sd_config

全称为Kubernetes Services Discovery Configurations,K8s服务发现配置。它可以从Kubernetes REST API中采集数据,并与集群状态保存数据同步。目前可以发现的角色目标为:

  1. node 节点
  2. service 服务
  3. pod 容器
  4. endpoints 端点
  5. endpointslice 端点切片
  6. ingress 入口

Relabeling

重写标签(Relabeling)是一种功能强大的工具,可以在目标被抓取数据之前动态重写它的标签集。每个抓取过程可以配置多个重写标签步骤。它们按照在配置文件中出现的顺序应用于每个目标的标签集。

指标抓取的生命周期

Prometheus 对发现的各个目标提供了重新打标的机会,可以在 job 配置段的 relabel_configs 中进行配置。通常用于实现过滤 target 和将元数据标签中的信息附加到指标的标签上。

在重新打标之后便会对指标数据进行抓取及指标数据返回的过程。收到的指标数据在保存之前,还允许用户在 metric_relabel_configs 配置段中对指标数据重新打标并对其进行过滤。通常用于删除不需要的指标、在指标中删除敏感或不需要的标签以及添加、编辑或者修改指标的标签值或标签格式。



label详解

标签 含义
source_labels 源标签,没有经过 relabel 处理之前的标签名字
target_label 目的标签,通过 action 处理之后的新的标签名字
regex 给定的值或正则表达式匹配,匹配源标签的值
replacement 通过分组替换后标签(target_label)对应的/()/() $1:$2

action详解

标签 含义
replace 将正则表达式与连接的source_labels匹配。然后,将target_label设置为replacement,将replacement中的匹配组引用( 1 , {1}, 1{2},…)用它们的值替换。如果regex不匹配,则不进行替换。
lowercase
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值