阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Prometheus监控介绍

103次阅读
没有评论

共计 1467 个字符,预计需要花费 4 分钟才能阅读完成。

Prometheus(由 go 语言开发)是一套开源的监控 & 报警 & 时间序列(按照时间排序)数据库的组合。适合监控 docker 容器。因为 kubernetes(俗称 k8s)的流行带动了 prometheus 的发展。它可以监控主机,服务,容器

https://prometheus.io/docs/introduction/overview/

时间序列数据(TimeSeries Data) : 按照时间顺序记录系统、设备状态变化的数据被称为时序数据。这种时序数据,会应用到很多场景, 如:

  • 最常见的就是我们系统中的日志
  • 无人驾驶车辆运行中要记录的经度,纬度,速度,方向,旁边物体的距离等等。每时每刻都要将数据记录下来做分析。
  • 某一个地区的各车辆的行驶轨迹数据、车流量
  • 传统证券行业实时交易数据
  • 实时运维监控数据,网卡流量图,服务的当前状态,资源的使用情况,比如说,你所监控的内容出现了直线飙升、断崖式下跌、断线,一般都意味着出现了问题,不管是什么时候发生的,都要赶紧查一下出了什么问题

时间序列数据库的主要优点:

时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。

  • 性能好

关系型数据库对于大规模数据的处理性能糟糕,这一点可以从 I / O 上有明显的体现。使用 NOSQL 可以比较好的处理大规模数据,但是依然比不上时间序列数据库。

  • 存储成本低

    由于采用的是 metrics:key=value(标签: 关键字 = 值)的数据存储方式,又使用了高效的压缩算法,平均消耗的存储成本在 3.5 个字节左右,所以比较节省存储空间,并且能有效降低 IO

Prometheus 有着非常高效的时间序列数据存储方法,每个采样数据仅仅占用 3.5byte 左右空间,上百万条时间序列数据,每隔 30 秒采集一次,保留 60 天,大概占用 200 多 G 的空间(来自官方文件数据)

Prometheus 的主要特征

  1. 多维度数据模型,可以通过多个维度对数据建模,也可以通过多个维度对数据进行查询

  2. 灵活的查询语言,由于采用的是新兴的 go 语言进行开发,在灵活性和速度上都有明显的优势,有兴趣的同学可以去了解一下这门语言

  3. 不依赖分布式存储,单个服务器节点是自主的

  4. 以 HTTP 方式,通过 pull 模型拉取时间序列数据

  5. 也可以通过中间网关支持 push 模型

    这种推,拉监控其实就是我们之前说的主动和被动监控,默认情况下是以 pull(拉)的方式,也就是监控主机去找被监控主机将数据要过来,如果要实现 push(推)的方式需要中间网关的支持,这只是与 zabbix 的叫法不同而已

  6. 通过服务发现或者静态配置来发现目标服务对象

  7. 支持多种多样的图表和界面展示,可以使用第三方的工具来展示内容,如 grafana

监控原理

  1. Prometheus Server 负责 定时 在目标上抓取 metrics(指标)数据,
  2. 每个抓取目标 [主机、服务] 都需要 暴露一个 HTTP 服务接口 用于 Prometheus 定时抓取。也就是说 prometheus 会将获取到的监控数据打包成一个可访问的 web 页面,通过访问指定的 url 来确定主机的状态

Pull 方式的优势是能够自动进行上游监控和水平监控,配置更少,更容易扩展,更灵活,更容易实现高可用。简单来说就是 Pull 方式可以降低耦合。由于在推送系统中很容易出现因为向监控系统推送数据失败而导致被监控系统瘫痪的问题。因为如果同一时间有很多被监控主机都把数据推送给监控主机的话,就很可能导致监控主机处理不过来,所以通过 Pull 方式,被采集端无需感知监控系统的存在,完全独立于监控系统之外,这样数据的采集完全由监控系统控制。

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-06-09发表,共计1467字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中