date: 2021-01-13title: Prometheus配置基于文件的服务发现 #标题
tags: Prometheus #标签
categories: 监控 # 分类
最近项目上要使用Prometheus来做监控,将近三百台机器,一开始是打算采用consul这种服务发现方式的,但对consul进行详细了解后,发现这个东西并不好,引入consul后,会增大一些工作量,得不偿失,故来研究下Prometheus基于文件的服务发现。
配置Prometheus
$ cat /opt/prometheus/prometheus.yml # 增加如下job
# ....... 省略部分配置
- job_name: 'node_exporter'
file_sd_configs:
- refresh_interval: 1m # 每1分钟重新读取一次文件内容,默认为5m
files:
- /opt/prometheus/file_ds/*.yml
# - /opt/prometheus/file_ds/*.json
定义yml文件
$ cat /opt/prometheus/file_ds/*.yml
- targets:
- 192.168.20.10:9100
- 192.168.20.5:9100
- 192.168.20.6:9100
labels:
idc: pod7
重载Prometheus并验证target列表
$ curl -XPOST http://192.168.20.10:9090/-/reload # 重启Prometheus
# 这种重载方式要求Prometheus启动时增加了 “--web.enable-lifecycle” 选项
访问Prometheus的targets列表如下:
功能总结
采用基于文件的服务发现方式,可以灵活定义要监控的目标主机列表,并且增加或减少目标主机,均无需重载Prometheus。