如果Job每次增加target都要手动修改配置文件,并重启Prometheus服务,将是一件非常麻烦的事情;
Prometheus支持多种自动发现服务的机制,可以解决上述烦恼。
1. 基于文件的形式-file_sd_configs
我们以监控主机为例,将job的配置改成如下内容
/etc/prometheus/prometheus.yml
- job_name: 'node'
file_sd_configs:
- files: ['/etc/prometheus/sd_config/node.yml']
refresh_interval: 5m
每次作业运行或这些文件发生变化时, Prometheus 都会重新加载文件的内容。以防万一,我们还指定了refresh_interval 选项,
该选项将在每个间隔结束时加载文件列表中的目标 —— 默认是5分钟。
创建文件node.yml
/etc/prometheus/sd_config/node.yml
- targets:
- 192.168.1.200:9100
labels:
env: dev
role: test
检查配置
/promtool check config /etc/prometheus/prometheus.yml