目录
一、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: consul
honor_labels: true
metrics_path: /metrics
scheme: http
consul_sd_configs:
- server: 192.168.2.139:8500
services: []
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" 的service
action: 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: 目标的服务端口