Prometheus
一、Prometheus简介
Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作。
Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境比如VM或者Docker。
输出被监控组件信息的HTTP接口被叫做exporter
。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如VarnishHaproxy、Nginx、MySQL、Linux 系统信息 (包括磁盘、内存、CPU、网络等等),具体支持的源看:https://github.com/prometheus
。
二、Prometheus的特点
与其他监控系统相比,Prometheus的主要特点是:
- 一个多维数据模型(时间序列
【TSDB】
由指标名称定义和设置键/值尺寸); - 非常高效的存储,平均一个采样数据占~3.5bytes左右,320万的时间序列,每30秒采样,保持60天,消耗磁盘大概228G;
- 一种灵活的查询语言;
- 不依赖分布式存储,单个服务器节点;
- 时间集合通过HTTP上的PULL模型进行;
- 通过中间网关支持推送时间;
- 通过服务发现或静态配置发现目标;
- 多种模式的图形和仪表板支持。
三、Prometheus架构浅析
Prometheus是什么?
Prometheus是一个监控软件,可以监控容器也可以监控其他服务器,它由Prometheus server、exporters、pushgateway、Altermanager和一些相关的出图和展示的工具五大块组成,Prometheus server
是他的核心组件、里面有时序数据库(TSDB
)、也有一个web服务(HTTP server
),方便拿取数据,有一个接口方便其他软件进行数据展示,Jobs/exporters装在被监控的组件上(