天天看点

Prometheus之基于文件的服务发现

一 基于文件的服务发现介绍

  • 基于文件的服务发现是仅仅略优于静态配置的服务发现方式,它不依赖于任何平台或第三方服务,因而也是最为简单和通用的实现方式;
  • 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界面

Prometheus之基于文件的服务发现

七 动态添加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界面

继续阅读