【Prometheus】Prometheus 自动化监控

1.Consul 分布式集群部署

(1).Consul 介绍

Consul 是基于GO 语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。Consul 提供服务注册/发现、健康检查、Key/Value 存储、多数据中心和分布式一致性保证等功能。Prometheus 通过Consul 可以很方便的实现服务自动发现和维护,同时Consul 支持分布式集群部署,将大大提高了稳定性,通过Prometheus 跟Consul 集群二者结合起来,能够高效的进行数据维护同时保证系统稳定。
在这里插入图片描述

(2).Consul 部署

三个节点同时操作

[root@docker-1 src]# wget -c
https://releases.hashicorp.com/consul/1.8.0/consul_1.8.0_linux_amd64.zip
[root@docker-1 src]# unzip consul_1.8.0_linux_amd64.zip
[root@docker-1 src]# mv consul /usr/local/bin/
[root@docker-1 src]# mkdir /data/
172.16.0.7
[root@docker-1 src]# nohup consul agent -server -bootstrap-expect=3 -data-dir=/data/consul-node=172.16.0.7 -bind=172.16.0.7 -client=0.0.0.0 -datacenter=shenzhen -ui &
172.16.0.8
[root@docker-2 src]# nohup consul agent -server -bootstrap-expect=3 -data-dir=/data/consul-node=172.16.0.8 -bind=172.16.0.8 -client=0.0.0.0 -datacenter=shenzhen -ui &
172.16.0.9
[root@docker-3 src]# nohup consul agent -server -bootstrap-expect=3 -data-dir=/data/consul-node=172.16.0.9 -bind=172.16.0.9 -client=0.0.0.0 -datacenter=shenzhen -ui &

此时
在这里插入图片描述
此时三台机器还未join,不能算是一个集群,三台机器上的consul 均不能正常工作,因为leader 未选出。

  • 集群节点加入
    分别登录第2 台和第3 台虚拟机上执行如下命令,让consul 加入集群:
172.16.0.8
[root@docker-2 src]# consul join 172.16.0.7
Successfully joined cluster by contacting 1 nodes.
172.16.0.9
[root@docker-3 src]# consul join 172.16.0.7
Successfully joined cluster by contacting 1 nodes.

[root@docker-2 src]# tailf nohup.out 观察日志
  • 查看集群状态
[root@docker-2 src]# consul operator raft list-peers

在这里插入图片描述

  • 查看成员状态
[root@docker-2 src]# consul members

在这里插入图片描述

  • 集群测试
[root@docker-2 src]# consul kv put name shanwaiyun
Success! Data written to: name
[root@docker-2 src]#
[root@docker-2 src]# consul kv get name
Shanwaiyun

# 其他两台机器查看该key 值也是返回shanwaiyun 这个说明key 值已经在集群中同步
  • Web 界面访问
    http://192.168.56.104:8500/
    在这里插入图片描述

2 .Prometheus 与consul 整合

1、通过在consul 注册服务或注销服务(监控targets)
2、Prometheus 一直监视(watch)consul 服务,当发现consul 中符合要求的服务有新变化时更新Prometheus 监控对象

(1).node_exporter 服务注册到consul

使用API 把这里的启动的node_exporter 服务注册到consul

[root@docker-3 src]# curl -X PUT -d '{"id": "node-exporter","name": "node-exporter","address": "172.16.0.9","port": 9100,"tags": ["linux","prome"],"checks": [{"http":"http://172.16.0.9:9100/metrics","interval": "5s"}]}' http://172.16.0.9:8500/v1/agent/service/register

在这里插入图片描述
服务注销
如果想要注销这个服务,可以直接通过接口的方式删除node-exporter 即可:

curl -X PUT http://172.16.0.9:8500/v1/agent/service/deregister/node-exporter
(2).配置prometheus 实现自动发现
  • 配置prometheus
- job_name: 'node_discovery_by_consul'
	metrics_path: /metrics
	scheme: http
	consul_sd_configs:
	- server: 172.16.0.9:8500
		services:
			- node-exporter
  • 重启prometheus
[root@docker-3 src]# /usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml
[root@docker-3 src]# systemctl restart prometheus

在这里插入图片描述

  • 通过consul进行服务监控
    将172.16.0.7 自动加入服务发现,先安装node_exporter,过程略过。
    添加一个node_exporter 的监控
[root@docker-1 src]# curl -X PUT -d '{"id": "docker-1-172.16.0.7","name":"node-exporter","address": "172.16.0.7","port": 9100,"tags": ["devops"],"checks": [{"http":"http://172.16.0.7:9100/metrics", "interval": "5s"}]}'http://172.16.0.7:8500/v1/agent/service/register

在这里插入图片描述
可以看到该节点被自动加入prometheus 监控了
在这里插入图片描述

  • 注销节点
[root@docker-3 src]# curl --request PUT "http://172.16.0.7:8500/v1/agent/service/deregister/docker-1-172.16.0.7"
# docker-1-172.16.0.7 代表id
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值