什么是 Prometheus
为什么我们需要 Prometheus
通常来说,对于一个复杂的系统,如果系统出了问题是难以排查的,为此,我们需要再各种关键点上加上监控,通过监控获取的数据,解决问题。
Prometheus就是这么一款监控系统,其本质上是一个时序数据库,存储了监控目标系统在各个时间点上的监控数据。其不仅可以用于对于基础设施,如服务器,数据库等,还可以利用其SDK,用于各种自定义的服务的监控。
Prometheus 常与 Grafana 一起使用,将 Grafana 作为我们的监控仪表系统。
Prometheus 组件
Prometheus生态系统包含多个组件,其中许多是可选的:
- 用于采集和存取时间序列数据的 Prometheus server
- 用于监测应用的客户端库
- 用于支持短期的作业的 push gateway
Exporter,不同的监控需求由不同的exporter处理,如node-exporter、mysql-exporter等- 用于处理告警的 alertmanager
- 多种工具支持
Prometheus大多数组件使用 Go 语言编写,易于构建和部署为二进制可执行文件。
Prometheus开源社区提供了很多的工具,包括各种exporter以及不同语言的client,在链接。
总结起来,我们需要搭建的Prometheus+Grafana监控系统,其基本的架构图如下所示:Exporter监控工具负责获取数据;Prometheus收集存储数据,提供对外的查询接口;Grafana作为仪表盘,负责更友好地展示监控数据。
总结
Prometheus 是一个开源系统监控和警报工具包,最初由 SoundCloud 构建。自 2012 年启动以来,许多公司和组织都采用了 Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并明确项目的治理结构,Prometheus 于 2016 年作为继 Kubernetes 之后的第二个托管项目加入了云原生计算基金会。Prometheus 将其指标收集并存储为时间序列数据,即指标信息与记录时的时间戳以及称为标签的可选键值对一起存储。