Prometheus HA
详解
以下所有操作都是在k8s
集群中完成,如果你是VM
或者物理机在配置方面不会有太大区别;
Prometheus
横向扩展
当Exporter
或者采集信息需要越来越多时就会考虑高可用,高可用优点不会因为集群中某个节点down
而导致Prometheus
不可用,可以让算力下沉;
缺点是A-Prometheus
和B-Prometheus
这两个实例会定时去scrape
数据,并且存储在各本地,这样导致数据会存储两份;
- 高可用配置
将Prometheus
启动两个实例,配置一样只需要暴露的service
的端口不同,'Nginx Controller'配置session-affinity
的service
名称;
Prometheus
联邦
在多个数据中心部署Prometheus
需要将多数据中心数据合在一起管理,使用联邦模式非常合适,如果担心数据单点,可以在联邦的基础上再扩展高可用;
优点集中式管理数据,报警,不需要为每个Prometheus
实例管理数据,如有些敏感节点报警要求高可以在Prometheus
数据节点上加报警信息,可以按功能环境划分启动多个Prometheus
采集实例;
缺点数据集中化,网络可能会延时,数据单点等问题;
终级解决方案
Prometheus
是支持远程读写TSDB
数据库,请看官方网站支持哪些数据库的读写,因为有些数据只支持写而不支持读,你内网搭建TSDB
集群,你所有启动的Prometheus
实例都把数据写入到远程数据库,再使用高可用方案支持查询,只支持远程读,这样就可无限扩展采集实例和查询实例,非常的爽,作者没有实践过只是YY中;
- 采集的
Metrics
远程写入TSDB
Prometheus
远程读TSDB
文章会持续更新,文章中有不好之处欢迎留言
我的博客即将同步至 OSCHINA 社区,这是我的 OSCHINA ID:osc_ouf9dku6,邀请大家一同入驻:https://www.oschina.net/shari...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。