zl程序教程

您现在的位置是:首页 >  .Net

当前栏目

Prometheus基于文件的服务发现

2023-02-18 16:28:06 时间

一、基于文件的服务发现

之前我们要监控的节点服务器的ip:port都是写死在static_configs中的,不便于维护。那么有没有一个自动发现的机制呢? Prometheus提供了好多自动发现的机制,此处简单的记录一下基于文件的服务发现机制。

1、prometheus.yml 配置文件的写法


scrape_configs:
  - job_name: 'node-exporter'
  # 基于文件发现的方式
    file_sd_configs:
    - files:
    # 加载的配置文件路径
      - file_sd/nodes-*.yaml
      # 默认情况下,file_sd目下的 node-*.yml配置文件内容变化,就会立即加载,此处额外配置一个刷新加载file_sd/nodes-*.yaml的时间间隔,2分钟
      refresh_interval: 2m

2、file_sd 目录下的文件

# 配置需要抓取的机器
- targets: ['localhost:9081']
  # 自定义label标签
  labels:
    lablea: '自定义lable的名字'

3、配置结果

配置结果

二、注意事项

  1. 服务发现的配置文件可以是 json或者yaml的格式。
  2. 存在一个新的指标 prometheus_sd_file_mtime_seconds 告诉文件上次更新的时间。
  3. 在重新标记阶段存在一个新的元数据标签__meta_filepath,记录配置文件的路径和文件名。
  4. 配置文件的变更,服务会自动发现,我们也可以配置一个refresh_interval来定时刷新。

三、参考链接

1、https://prometheus.io/docs/prometheus/latest/configuration/configuration/#file_sd_config
2、https://prometheus.io/docs/guides/file-sd/