Prometheus监控之Federation机制配置

时间:2022-11-23 11:35:45

一、简介

简单来说就是类似与zabbix-proxy,起到一个分级收集的作用,要比pushgateway要方便很多,而且可以使用加密访问,有一定的安全性。

联邦允许一个prometheus server 从另外一个prometheus server 获取metrics。
此外联邦模式可以实现prometheus监控prometheus。遵循以下两点:
在同一个数据中心,每个prometheus监控其他的prometheus。
上下级模式。上一级的prometheus监控数据中心级别的prometheus。

二、搭建

1、第一台机器
正常启动,记住prometheus.yml中的
scrape_configs:
- job_name: 'prometheus' #这个job_name在第二台机器中会用到

2、第二台机器
添加配置
- job_name: "prometheus-federate-xxxxxx-station"
scrape_interval: 10s
honor_labels: true #这是坑,必要
metrics_path: '/federate' #这是坑,必要
params:
'match[]':
- '{job="prometheus"}' #这个地方必须要和第一台机器的job_name配置为一样,使用正则或者直接写上抓取任务名,必须有
- '{__name__=~"job.*"}'
- '{__name__=~"node.*"}'
static_configs:
- targets:
- '192.168.10.131:9090'
- '192.168.10.132:9090' #如果有多个ip可以这样配置
#params部分的配置会筛选采集的数据,按照自己集群的需求配置即可
正常启动即可

三、补充targets IP

1、直接写多行
- targets:
- '192.168.10.131:9090'
- '192.168.10.132:9090'

2、一行展示
- targets: ['192.168.10.131:9090','192.168.10.132:9090']

3、指定配置文件
params:
'match[]':
- '{job="prometheus"}' #需要知道被抓取机器的job_name,使用正则或者直接写上抓取任务名
- '{__name__=~"job:.*"}'
#以下为被抓取得机器得地址配置文件
file_sd_configs:
- files: ['/etc/prometheus/federate.json']

cat /etc/prometheus/federate.json
[
{
"targets" : [
"192.168.10.131:9090",
"192.168.10.132:9090",
"192.168.10.133:9090"
]
}
]