prometheus federation 配置指标抓取

背景

prometheus 通过helm chart部署在k8s 集群上,因为很长时间没有升级了,目前计划在原来的基础上添加一个联邦功能,以让多个Prometheus的集群能统一报警配置和grafana展示。

如果不使用helm升级,怎么修改主Prometheus server的配置(主动抓取的Prometheus)这块走了很多弯路(弯路略过),最终看了prometheus operator 知道需要修改2个地方,operator 可以把被抓取Prometheus server 能添加到主Prometheus server的配置(当然这里需要重启才能主动拉到最新的配置)

配置过程

这个配置可以分为这样几步(如果已经到了解决这个问题的步骤,前面的基础配置你一定是已经完成了,这里略过)
*

1. 修改抓取配置

# 本配置来自prometheus 官网,但是按照这个配置会有很多指标抓取不到
scrape_configs:
  - job_name: 'federate'
    scrape_interval: 15s

    honor_labels: true
    metrics_path: '/federate'

    params:
      'match[]':
      	# 这里最好修改成 - '{__name__=~".+"}' 可以抓取到所有指标,其他的两行都可以去掉
        - '{job="prometheus"}'
        - '{__name__=~"job:.*"}'

    static_configs:
      - targets:
        - 'source-prometheus-1:9090'
        - 'source-prometheus-2:9090'
        - 'source-prometheus-3:9090'

将上面的配置转换成operator可识别的配置

operator 需要识别secret类型的配置,通过temple你可以看到其实就是进行了base64编码。
为了更好的适配我没有直接把我是先把helm chart这个下载到本地,因为我在前面弯路的时候发现有个动作是gzip搞了一把,当时花了我很多时间,防止出现幺蛾子
按照helm chart的格式把上面的配置转化到values.yml
把下面的配置添加到values.yml中

prometheus:
  prometheusSpec:
    additionalScrapeConfigs:
      - job_name: 'prometheus-nas'
        scrape_interval: 15s
        honor_labels: true
        metrics_path: '/federate'
        params:
          'match[]':
            - '{__name__=~".+"}'
        static_configs:
          - targets:
            - 'demo.local.host:30090'

生产base64编码的secret

# 这里只是展示怎么使用helm 生成一个secret
helm install -f values.yaml kube-prometheus-stack-1 kube-prometheus-stack --namespace=monitoring --dry-run | grep kube-prometheus-stack-1-prometheus-scrape-confg -C20
apiVersion: v1
kind: Secret
metadata:
  name: kube-prometheus-stack-1-prometheus-scrape-confg
  namespace: monitoring
  labels:
    app: kube-prometheus-stack-prometheus-scrape-confg

    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/version: "65.3.1"
    app.kubernetes.io/part-of: kube-prometheus-stack
    chart: kube-prometheus-stack-65.3.1
    release: "kube-prometheus-stack-1"
    heritage: "Helm"
data:
  additional-scrape-configs.yaml: "thisfnldfdfafhhfgjh4864h5gh5d4fhghsaglksdglkdsfgnfglksfgsfhgkjsf"

将这个资源提交到集群

kubectl apply -f genera-secret.yaml

修改配置,让operator 能够读取配置

use@server# kubectl get prometheus
NAME   VERSION   DESIRED   READY   RECONCILED   AVAILABLE   AGE
kps    v2.47.1   1         4       True         True        366d

kubectl  edit prometheus kps
# 在spec这里添加需要加载的配置,就可以将这个配置添加到prometheus server的配置里面了
#--------------------
 spec:
   additionalScrapeConfigs:
     key: additional-scrape-configs.yaml
     name: kps-prometheus-scrape-confg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值