五 Prometheus 基于文件的服务发现

。。。。。。 略过Prometheus的安装

1 )  基于文件的服务发现是仅仅略优于静态配置的服务发现方式, 它不依赖于任何平台或者第三方服务, 因为也是最为简单和通用的方式.
  1.1 文件使用Json和YAML 格式,它含有定义的Target列表,以及可选的标签信息.
  1.2 下面第一个配置,能够将prometheus 默认的静态配置转换为基于文件的服务发现时所需的配置.

2 )  Prometheus Server 定期从文件中加载Target信息:

3 ) prometheus 配置介绍:
#Prometheus数据源的配置主要分为静态配置和动态发现, 常用的为以下几类:
static_configs: #静态服务发现
file_sd_configs: #文件服务发现
dns_sd_configs: DNS #服务发现
kubernetes_sd_configs: #Kubernetes 服务发现
consul_sd_configs: Consul #服务发现
...

#在监控kubernetes的应用场景中,频繁更新的pod,svc,等等资源配置应该是最能体现Prometheus监控目标自动发现服务的好处

Proemtheus 基于文件服务发现:

## 主配置文件:
cd /data/soft/prometheus/
mkdir -p targets

scrape_configs:
  - job_name: 'prometheus'
    file_sd_configs:
    - files:
      - targets/prometheus-*.yaml
      refresh_interval: 2m

  # all node
  - job_name: 'nodes'
    file_sd_configs:
    - files:
      - targets/nodes-*.yaml            # 引入配置文件
      refresh_interval: 2m             # 每隔2分钟重新加载一次上面的文件

  - job_name: 'redis_exporter'
    file_sd_configs:
    - files:
      - targets/redis-*.yaml
      refresh_interval: 2m             # 每隔2分钟重新加载一次上面的文件

  - job_name: 'mysql_exporter'
    file_sd_configs:
    - files:
      - targets/mysql-*.yaml
      refresh_interval: 2m             # 每隔2分钟重新加载一次上面的文件


  - job_name: 'bj-nginx1'
    file_sd_configs:
    - files:
      - targets/nginx-*.yaml

分类配置文件:

##  Prometheus 监控:
cat targets/prometheus-servers.yaml
- targets:
  - localhost:9090
  labels:
    app: prometheus
    job: prometheus
    operator: 'Ucloud'
    area: '北京二D'
    env: 'Pord'

## Node 监控
cat targets/nodes-linux.yaml
- targets:
  - 10.10.0.111:9100
  - 192.168.1.133:9100
  labels:
    app: node-exporter
    job: nodes
    operator: 'Ucloud'
    area: '北京二D'
    env: 'Pord'


##  redis 服务:
cat targets/redis-exporter.yaml 
- targets: 
  - 192.168.111.111:9121
  labels:
    operator: 'Ucloud'
    area: "北京二D"
    env: 'Prod'
   
    
## mysql 服务:
cat targets/mysql-exporter.yaml 
- targets:
  - 192.168.111.111:9104
  labels:
    operator: 'Ucloud'
    area: '北京二D'
    env: 'Pord'

启动并测试分类的Prometheus:

# 启动file 发现方式的prometheus:
./prometheus -config.file=./prometheus.yml

## 查看targets 列表是否有其他主机存在:
http://IP:9090/targets      # 查看是否找到各类主机

## 测试注释其中一台Node:
cat targets/nodes-linux.yaml

注释其中一台客户端,过2分钟继续查看. 是否自动刷新掉了注释的主机. 

image

posted @ 2021-03-01 15:31  风满楼9527  阅读(117)  评论(0编辑  收藏  举报