首页 > 其他 > 详细

prometheus几种高可用架构介绍及联邦架构部署

时间:2020-09-28 10:25:36      阅读:87      评论:0      收藏:0      [点我收藏+]
问题背景:单个prometheus性能到达瓶颈问题、多个prometheus-server数据汇总问题等


prometheus监控数据持久化

首先大家都知道prometheus是自带数据存储功能的。
优点是简单易用,基本无需配置
缺点是:1、存在数据无法长久保存(尤其是频繁变更的监控对象,监控对象变化,短时间内监控数据也会随之丢失,如k8s等)
2、基于本地存储的话,Prometheus监控系统扩展比较难
以上缺点可以配置远程存储解决,使用remote_write和remote_read这两个接口,从第三方存储服务中进行监控数据的读写

prometheus集群方案
这里有篇文章介绍了几种prometheus的集群架构,可参考: https://zhuanlan.zhihu.com/p/86763004


方案一:

多个prometheus监控相同的对象。意思就是一台node在被两台或两台以上的prometheus同时监控
缺点:对于被监控端,可能会多出一倍或以上的查询请求
优点:只要有一台prometheus还在运行,就不会影响监控
技术分享图片
方案二:
联邦集群,prometheus数据层层往上汇聚(类似金字塔结构)
优点:数据汇总展示,prometheus-worker压力较小,如合理规划可以分类监控,数据保留更灵活(参考https://zhuanlan.zhihu.com/p/86763004)
缺点:prometheus-primary压力较大,可通过配置文件使不同的prometheus-primary收集不同类的监控数据(参考同上链接)
官网描述: https://prometheus.io/docs/prometheus/latest/federation/
技术分享图片
这里进行方案二+远端存储(influxdb)的集群架构实现

环境:

3台centos7的服务器,关闭防火墙、selinux

角色分配:
*.*.6.127    prometheus-primary+influxdb+grafana
*.*.6.138    prometheus-worker
*.*.6.225    prometheus-worker

操作:
1、安装prometheus
下载安装包: https://prometheus.io/download/
解压、安装、配置成为系统服务(3台都操作)
技术分享图片
2、安装influxdb(6.127)
yum install即可,因为是做测试,使用默认的配置文件直接启动

create database "prometheus"
create retention policy "prometheus_retention" on "prometheus" duration 4w replication 1 default
show retention policies on prometheus

创建数据库
技术分享图片
默认数据保留策略为一周,可以新建保留策略
技术分享图片
技术分享图片
获取prometheus连接远端存储的一个插件
github地址: https://github.com/prometheus/prometheus/tree/master/documentation/examples/remote_storage/remote_storage_adapter
执行(此插件占用9201端口。注意红框内容,根据自己实际内容进行更改)

nohup ./remote_storage_adapter --influxdb-url=http://127.0.0.1:8086/ --influxdb.database="prometheus" --influxdb.retention-policy=prometheus_retention &

技术分享图片
3、修改prometheus-worker的prometheus.yml文件
技术分享图片
技术分享图片
systemctl直接启动prometheus即可


4、修改prometheus-primary的prometheus.yml文件

联邦集群的核心就在于每一个Prometheus Server都包含一个用于获取当前实例中监控样本的接口/federate,对于prometheus-primary来说,从federate获取数据跟从exporter获取数据没什么区别

技术分享图片

math[]:表示你想获取prometheus-worker里哪些job的数据,也可以使用正则匹配
honor_labels:配置true可以确保当采集到的监控指标冲突时,能够自动忽略冲突的监控数据。如果为false时,prometheus会自动将冲突的标签替换为exported_的形式。还可以添加标签以区分不同的监控目标

systemctl启动prometheus
网页输入ip:9090查看
技术分享图片
技术分享图片
技术分享图片

5、grafana展示

通过正常的dashboard导入或者自建图表进行数据展示
技术分享图片

end...
文章到这里就结束了,prometheus更灵活的高可用架构还需看真实的环境和自己的实际需求,这里就抛砖引玉,希望大家有更好的点子可以分享出来

prometheus几种高可用架构介绍及联邦架构部署

原文:https://blog.51cto.com/11954248/2537706

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!