默认情况下,Prometheus 收集到监控数据之后是存储在本地,在本地查询计算。由于单机容量有限,对于海量数据场景,需要有其他解决方案。最直观的想法就是:既然本地搞不定,那就在远端做一个集群,分治处理。
Prometheus 本身不提供集群存储能力,可以复用其他时序库方案。时序库挺多的,如果挨个儿去对接比较费劲,于是 Prometheus 建立了统一的 Remote Read、Remote Write 接口协议,只要满足这个接口协议的时序库都可以对接进来,作为 Prometheus remote storage 使用。
当前有两款远程存储在国内比较受欢迎,分别是VictoriaMetrics 和 Thanos。
VictoriaMetrics
VictoriaMetrics可以作为 Prometheus 的远程存储,可是它志不在此。VictoriaMetrics是希望成为一个更好的 Prometheus,所以它不只是时序库,它还有抓取器、告警等各个组件,体系非常完备,不过当前国内基本上还只是把它当做时序库在用。
Thanos
Thanos 的做法和VictoriaMetrics不同,Thanos 完全拥抱 Prometheus,对 Prometheus 做了一个增强,核心特点是使用对象存储做海量时序存储。
此文章为9月Day 15学习笔记,内容来源于极客时间《运维监控系统实战笔记》。