关于consul:prometheus结合consulconfd实现动态注册服务和动态更新配置告警规则
一、prometheus装置应用1.创立配置文件mkdir /opt/prometheus cd /opt/prometheus/vim prometheus.yml内容如下:global: scrape_interval: 60s #抓取数据的工夫距离 evaluation_interval: 60s #触发告警检测的工夫scrape_configs: - job_name: prometheus #工作名称 static_configs: #动态配置节点 - targets: ['localhost:9090'] labels: instance: prometheus #实例名称2.装置prometheusdocker run -d \ -p 9090:9090 \ -v /opt/prometheus/prometheus1.yml:/etc/prometheus/prometheus.yml \ -v /opt/prometheus/data:/prometheus \ prom/prometheus \3.拜访地址: http://localhost:9090/graph二、consul装置应用1.装置consuldocker run \ --name consul \ -p 8500:8500 \ -v /data/consul/conf/:/consul/conf/ \ -v /data/consul/data/:/consul/data/ \ -d consul拜访地址: http://ip:8500/graph(ip为你装置的服务器地址)2.应用consul首先理解consul+prometheus的大抵流程(1) 在服务器上装一个node节点(exporter节点),启动节点,例如mysql-exporter端口为9104(2) 将该服务器注册到consul的server中,在装置consul的服务器执行命令curl -X PUT -d '{"id": "test-exporter","name": "test-exporter","address": "ip","port": 9104,"tags": ["jvm-exporter"],"checks": [{"http": "http://ip:9104/metrics","interval":"5s"}]}' http://ip:8500/v1/agent/service/register name:consul的service注册名称id:consul的实例名称address:监控地址ipport:监控的端口号tags:标签名checks:查看的节点的门路(3) 在prometheus中配置服务主动发现,去读取consul中配置的服务器,只有consul有新的服务注册,prometheus也会更新节点,在prometheus.yml中批改为- job_name: 'consul-node-exporter' consul_sd_configs: - server: 'ip:8500' #consul的地址(4) 配置不同分类的job,对增加的标签进行正则表达式过滤,合乎则增加到相应job分类如上配置的毛病是,所有的注册节点都会归类到consul-node-exporter这个工作类别上面,有时候想对注册的服务进行分类,比方mysql为一类,oracle为一类,就要批改配置为: ...