2.服务发现
基于文件的服务发现
1.创建json或yaml文件
mkdir -p /usr/local/prometheus/files_sd/targets
以下为yaml格式
vim nodes.yaml
- targets:
- 192.168.13.140:9100
- 192.168.13.120:9100
labels:
app: node-exporter
job: node
以下为json格式
vim nodes.json
[{
"targets": [
"192.168.13.140:9100",
"192.168.13.141:9100",
],
"labels": {
"datacenter": "beijing"
}
}]
2.修改prometheus配置文件
vim prometheus.yml
scrape_configs:
-
job_name: 'prometheus'
file_sd_configs:- files: # 自定义的和Prometheus程序同级目录的targets目录
- targets/prometheus-server.yaml # 指定服务发现的文件
refresh_interval: 5m
- targets/prometheus-server.yaml # 指定服务发现的文件
- files: # 自定义的和Prometheus程序同级目录的targets目录
-
job_name: 'node'
file_sd_configs:- files:
- targets/nodes.yaml # 可以使用json或yaml格式
refresh_interval: 5m
- targets/nodes.yaml # 可以使用json或yaml格式
- files:
基于consul的服务发现
基于DNS的服务发现
基于DNS的服务发现
- job_name: webapp
dns_sd_configs:- name: [ '_prometheus._tcp.example.com’ ]
默认情况下, Prometheus的DNS服务发现假定你会查询SRV或服务记录。
服务记录是一种在DNS配置中定义服务的方法,服务通常由运行服务的一个或多个目标主机和端口组合组成。
DNS SRV条目的格式如下所示:
_service._proto.name. TTL class SRV priority weight port target
_service 服务名称,前缀 _ 是为了防止与DNS 标签(域名)冲突
proto 服务使用的通讯协议 通常是 tcp udp
name 此记录有效域名
TTL 标准DNS class 字段,通常为IN
priority 记录优先级,数值越小,优先级越高。 [0-65535]
weight 记录权重,数值越大,权重越高。[0-65535]
port 服务使用端口
target 使用服务的主机地址名称
示例SRV记录
_prometheus._tcp.example.com. 300 IN SRV 10 1 9100 webapp1.
_prometheus._tcp.example.com. 300 IN SRV 10 1 9100 webapp2.
DNS A记录服务发现作业
- job_name: webapp
dns_sd_configs:- name: ['example.com']
type: A
port: 9100
- name: ['example.com']