Prometheus 服务发现
基于consul 的服务发现
prometheus.yaml
## 操作系统监控 动态发现
- job_name: 'os_system'
#metrics_path: "/metrics"
consul_sd_configs:
- server: 127.0.0.1:8500
services:
- os_system
scheme: http
tags:
- "node"
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*node.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
注册服务
方式一 curl
## prometheus 与 consul 配置之间的对应关系
## tags - tags
## service - name
## label - meta
##
curl -X PUT -d '{"id": "node-1","name": "os_system","address": "10.1.x.x","port": 9100, "tags": ["node"],"meta":{"idc":"XX机房","instance":"node1"} ,"checks": [{"http": "http://10.1.x.x:9100/","interval": "5s"}]}' http://127.0.0.1:8500/v1/agent/service/register?replace-existing-checks=1
方式二 consul service register ,没找到如何设置 check
consul services register -id=node-1 -name=os_system -address=10.1.x.x -port=9100 -tag=node -meta=idc="xx机房" -meta=instance="node1"
方式三 consul service register json
consul services register -name=web
cat web.json
{
"Service": {
"Name": "web"
}
}
基于文件的服务发现
prometheus.yml
- job_name: "nodes"
file_sd_configs:
- files:
- "./targets/*.yaml"
refresh_interval: 1m
targets/nodes.yaml
- targets: ['10.1.xx:9100']
labels:
idc: 'XX机房'
instance: 'node-2'