。。。。。。 略过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分钟继续查看. 是否自动刷新掉了注释的主机.