一、基于文件的服务发现
之前我们要监控的节点服务器的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、配置结果
配置结果二、注意事项
- 服务发现的配置文件可以是
json
或者yaml
的格式。 - 存在一个新的指标
prometheus_sd_file_mtime_seconds
告诉文件上次更新的时间。 - 在重新标记阶段存在一个新的元数据标签
__meta_filepath
,记录配置文件的路径和文件名。 - 配置文件的变更,服务会自动发现,我们也可以配置一个
refresh_interval
来定时刷新。
三、参考链接
1、https://prometheus.io/docs/prometheus/latest/configuration/configuration/#file_sd_config
2、https://prometheus.io/docs/guides/file-sd/
网友评论