简单记录prometheus federate的配置和坑

本文介绍了在Prometheus中配置federate以实现跨实例监控的详细步骤和常见问题。关键在于正确设置`job_name`、`metrics_path`以及`params.match[]`参数,确保能抓取到目标Prometheus实例的数据。同时,提到了两种配置方式,一种是通过`static_configs`直接指定目标地址,另一种是使用`file_sd_configs`从JSON文件加载目标地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前配置federate死活抓不到数据,prometheus的控制台也显示federate机器在线,郁闷了半天,后来才发现是job_name的问题

被抓取机器无需特别配置,但是需要知道被抓取机器的job_name
抓取federate的机器配置如下

scrape_configs:
  - job_name: 'federate'
    scrape_interval: 15s

    honor_labels: true    #这是坑,必要
    metrics_path: '/federate' #这是坑,必要

    params:
      'match[]':
        - '{job="prometheus"}'  #这是坑,需要知道被抓取机器的job_name,使用正则或者直接写上抓取任务名,必须有
        - '{__name__=~"job:.*"}'

#这是坑,以下为被抓取得机器得地址设置
    static_configs:
      - targets:
        - 'source-prometheus-1:9090'
        - 'source-prometheus-2:9090'
        - 'source-prometheus-3:9090'

第二种设置方式

scrape_configs:
  - job_name: 'federate'
    scrape_interval: 15s

    honor_labels: true    #必要
    metrics_path: '/federate' #必要

    params:
      'match[]':
        - '{job="prometheus"}'  #需要知道被抓取机器的job_name,使用正则或者直接写上抓取任务名
        - '{__name__=~"job:.*"}'

#以下为被抓取得机器得地址配置文件
    file_sd_configs:
      - files: ['/etc/prometheus/federate.json']

/etc/prometheus/federate.json里边配置需要被抓取得机器

[
   {
      "targets" : [
         "source-prometheus-1:9090",
         "source-prometheus-2:9090",
         "source-prometheus-3:9090"
      ]
    }
]
### Prometheus集群配置与管理 #### 三、Prometheus联邦配置 在构建大规模监控系统时,采用联邦机制能够有效提升系统的可维护性性能。联邦允许多个Prometheus实例相互协作,形成一个逻辑上的整体。安装基本配置Prometheus之后,在`prometheus.yml`文件中定义其他Prometheus服务器作为数据源来实现联邦查询[^1]。 ```yaml scrape_configs: - job_name: 'federate' metrics_path: '/federate' params: 'match[]': - '{job="prometheus"}' - targets: - prometheus-1.example.org:9090 - prometheus-2.example.org:9090 ``` 此段YAML展示了如何设置Prometheus去抓取来自其它Prometheus实例的数据,从而完成跨实例的数据聚合操作。 #### 四、功能分区与高可用性设计 为了提高Prometheus服务的稳定性响应速度,可以通过合理规划不同Prometheus实例的任务分配来进行优化。例如按照业务模块或者物理位置等因素将监控任务划分为若干子集分别交给不同的Prometheus处理,这不仅有助于减轻单一节点的压力还能增强整个体系面对故障时的恢复能力[^2]。 #### 五、远程存储集成 考虑到长期保存大量历史记录的需求以及应对突发流量带来的压力,Prometheus支持对接外部存储解决方案。通过配置项`remote_write`向指定地址发送采样点;而`remote_read`则使得Prometheus可以从远端获取之前上传过的样本信息以便回溯分析。这种方式打破了传统模式下受制于单机硬件条件所造成的瓶颈问题[^3]。 ```yaml global: external_labels: monitor: 'my-monitor' remote_write: - url: "http://remote-storage:8086/api/v1/prom/write?db=prometheus" remote_read: - url: "http://remote-storage:8086/api/v1/prom/read" ``` 上述例子说明了怎样把Prometheus连接到名为`remote-storage`的服务上进行双向交互。 #### 六、Kubernetes环境下的Prometheus运维 对于运行在Kubernetes平台之上的Prometheus而言,利用命令行工具如kubectl可以帮助管理员轻松地管理监督其状态变化情况。比如执行如下指令即可快速获得有关入口网关服务进程的状态概览: ```bash $ kubectl -n prometheus-operator get ingress,pod ``` 这条Shell脚本片段可用于检查Prometheus Operator命名空间内的资源状况,确保各项组件正常运作[^4]。 #### 七、自定义规则与标签重写 最后值得一提的是,Prometheus还具备强大的灵活性让用户可以根据实际需求调整收集策略。借助`metric_relabel_configs`字段可以在不改变原始输出的前提下动态过滤特定名称的空间或是更改关联属性的内容,进而达到精细化控制的目的[^5]。 ```yaml scrape_configs: - job_name: 'example' static_configs: - targets: ['localhost:9090'] metric_relabel_configs: - source_labels: [__name__] regex: http_requests_total action: drop ``` 这段配置实现了忽略所有匹配正则表达式的度量标准的行为,即不会将其计入最终的结果集中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值