Prometheus动态配置目标
(金庆的专栏 2018.4)
最简单的配置是静态目标:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090', 'localhost:9100']
labels:
group: 'prometheus'
更改此文件后,可以发送 SIGHUP 触发配置重新加载。
Prometheus 提供了服务发现功能,可以从 consul, dns, kubernetes, file 等等多种来源发现新的目标。
其中最简单的是从文件发现服务。
例如 /root/prometheus/prometheus.yml 配置如下:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['127.0.0.1:9090', '127.0.0.1:9100']
labels:
group: 'prometheus'
- job_name: 'test'
file_sd_configs:
- files: ['/etc/prometheus/test_sd_config/*.yml']
refresh_interval: 5s
用 docker 启动 prometheus:
docker run -d --net=host \
-v /root/prometheus:/etc/prometheus \
--name prometheus-server \
prom/prometheus
创建 /root/prometheus/test_sd_config/test.yml 如下
- targets: [ "192.168.93.192:8080" ]
labels:
group: "my_test_group"
5s内就会自动读取 test.yml 并添加新的目标。
可用浏览器打开Prometheus 9090 端口,
查看 Status 中的 Configuration, Targets, Service Discovery,
可以看到新添加的目标。