基于consul服务发现
prometheus服务发现方式有好几种,利用consul发现适用于变动多,监控集群适中
consul优势
Consul是由HashiCorp开发的一个支持多数据中心的分布式服务发现和键值对存储服务的开源软件,被大量应用于基于微服务的软件架构当中,方便管理,简单高效,consul可以搭建高可用集群,添加服务不需要重启prometheus
搭建步骤
1。yum安装
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum -y install consul
2。docker启动
docker pull consul:1.10.2
vim docker-compose.yaml
version: "3"
services:
consul:
image: 'consul:1.10.2'
container_name:consul
restart: always
ports:
- '8500:8500'
docker-compose -f docker-compose.yaml up -d
服务起来之后访问ip:8500端口就可以看到web版consul
prometheus 基于consul发现配置
1.注册服务
address:需要监控主机地址
prot:需要监控主机端口
最后面跟的是consul地址
tags:搜索标签
meta:其他标签
$ curl -X PUT -d '{"id": "node-exporter","name": "node-exporter-172.30.12.167","address": "192.168.1.2","port": 9100,"tags": ["test"],"meta": {"appname": "admin","job": "china"},"checks": [{"http": "http://192.168.1.2:9100/metrics", "interval": "5s"}]}' http://192.168.1.3:8500/v1/agent/service/register
注册完可以在consul里面的services中找到
vim prometheus.yaml
- job_name: 'consul-prometheus'
consul_sd_configs:
- server: '172.30.12.167:8500'
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*node-exporter.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
重启之后就可以了