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: 15sscrape_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,
可以看到新添加的目標。