一 基于文件的服务发现介绍
- 基于文件的服务发现是仅仅略优于静态配置的服务发现方式,它不依赖于任何平台或第三方服务,因而也是最为简单和通用的实现方式;
- Prometheus Server定期从文件中加载Target信息;
- 文件可以使用json或yaml格式,它含有定义的target列表,要积极可选的标签信息;
- 这些文件可以由另一个系统生成,例如Puppet、ansible等配置管理系统,也可能是由脚本基于CMDB定期查询生成;
二 配置Prometheus配置文件
点击查看代码
root@prometheus-01:/usr/local/prometheus# cat prometheus.yml
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
scrape_configs:
- job_name: 'prometheus'
file_sd_configs:
- files:
- targets/prometheus-*.yaml
refresh_interval: 2m
- job_name: 'nodes'
file_sd_configs:
- files:
- targets/nodes-*.yaml
refresh_interval: 2m
三 配置prometheus-servers.yaml
root@prometheus-01:/usr/local/prometheus# cat targets/prometheus-servers.yaml
- targets:
- 192.168.174.103:9090
labels:
app: prometheus
job: prometheus
四 配置nodes-linux.yaml
root@prometheus-01:/usr/local/prometheus# cat targets/nodes-linux.yaml
- targets:
- 192.168.174.100:9100
labels:
app: node-exporter
job: node
五 重启Prometheus服务
root@prometheus-01:~# systemctl restart prometheus.service
六 验证Prometheus web界面
七 动态添加target
root@prometheus-01:/usr/local/prometheus# cat targets/prometheus-servers.yaml
- targets:
- 192.168.174.103:9090
- 192.168.174.106:8080
labels:
app: prometheus
job: prometheus
八 验证Prometheus web界面