目录
一、consul服务发现简介
1.1 consul简介
二、prometheus配置
2.1 node-exporter服务注册到consul
2.2 修改prometheus配置文件
【Prometheus】概念和工作原理介绍_prometheus工作原理-CSDN博客
【Prometheus】k8s集群部署node-exporter
【prometheus】k8s集群部署prometheus server_prometheus文档-CSDN博客
【prometheus】k8s集群部署Grafana安装和配置|Prometheus监控K8S-CSDN博客
【prometheus】k8s集群部署AlertManager实现邮件和钉钉告警
【prometheus】监控MySQL并实现可视化-CSDN博客
【prometheus】监控nginx并实现可视化_prometheus安装nginx监控-CSDN博客
【prometheus】Pushgateway安装和使用_pushgateway 端口设置-CSDN博客
【服务治理中间件】consul介绍和基本原理-CSDN博客
一、consul服务发现简介
1.1 consul简介
Consul是一个分布式的,高可用的服务注册系统,由server端和client端组成,每个server和client都是consul的一个节点,consul客户端不保存数据,客户端将接收到的请求转发给响应的Server端。Server之间通过局域网或广域网通信实现数据一致性
prprometheus基于consul的服务发现流程如下:
(1)在consul注册服务或注销服务(监控targets)
(2)Prometheus一直监视consul服务,当发现consul中符合要求的服务有新变化就会更新Prometheus监控对象
部署consul集群参考:【服务治理中间件】consul介绍和基本原理-CSDN博客
k8s测试环境
IP | 主机名 |
192.168.2.139 | master1 |
192.168.40.140 | node1 |
二、prometheus配置
2.1 node-exporter服务注册到consul
使用HTTP API 方式注册node-exporter服务注册到Consul,在master1上执行
curl -X PUT -d '
{"id": "node-exporter","name": "node-exporter","address": "192.168.2.139","port": 9100,"tags": ["node-exporter"],"checks": [{"http": "http://192.168.2.139:9100/","interval": "5s"}]
}' http://192.168.2.139:8500/v1/agent/service/register
注册成功
删除注册的服务
curl --request PUT http://192.168.2.139:8500/v1/agent/service/deregister/node-exporter
2.2 修改prometheus配置文件
修改prometheus配置文件,变成基于consul的服务发现,在master1上操作
scrape_configs:- job_name: consulhonor_labels: truemetrics_path: /metricsscheme: httpconsul_sd_configs:- server: 192.168.2.139:8500services: []relabel_configs:- source_labels: ['__meta_consul_tags']target_label: 'product'- source_labels: ['__meta_consul_dc']target_label: 'idc'- source_labels: ['__meta_consul_service']regex: "consul" #匹配为"consul" 的serviceaction: drop # 执行的动作
prometheus配置文件释义:
- static_configs: 配置数据源
- consul_sd_configs: 基于consul服务发现的配置
- rebel_configs:重新标记
- services: [] :这个表示匹配consul中所有的service
- _meta_consul_tags: 标记分隔符连接的目标的标记列表
- _meta_consul_dc: 目标的数据中心名称
- _meta_consul_service: 目标所属服务的名称
- _meta_consul_service_port: 目标的服务端口