Prometheus简介
Prometheus是什么
Prometheus 是由前 Google 工程师从 2012 年开始在 Soundcloud 以开源软件的形式进行研发的系统监控和告警工具包,此后,许多公司和组织都采用了 Prometheus 作为监控告警工具。它现在是一个独立的开源项目,可以独立于任何公司进行维护。Prometheus 于 2016 年 5 月加入 CNCF 基金会,成为继 Kubernetes 之后的第二个 CNCF 托管项目。Prometheus现已广泛用于集群监控系统中。
Prometheus的优势
- 由指标名称和和键/值对标签标识的时间序列数据组成的多维数据模型。
- 强大的查询语言 PromQL。
- 不依赖分布式存储;单个服务节点具有自治能力。
- 时间序列数据是服务端通过 HTTP 协议主动拉取获得的。
- 也可以通过中间网关来推送时间序列数据。
- 可以通过静态配置文件或服务发现来获取监控目标。
- 支持多种类型的图表和仪表盘。
Prometheus的组件
Prometheus 生态系统由多个组件组成:
- Prometheus Server: 服务端用来存储时间序列数据。
- 客户端库: 用来检测应用程序代码。
- 推送网关: 用于支持临时任务的。
- Exporter: 用来监控 HAProxy,StatsD,Graphite 等特殊的监控目标,并向 Prometheus 提供标准格式的监控样本数据。
- alartmanager: 用来处理告警。
- 一些周边的支持工具。
其中组件大多数是用 Go 编写的,因此很容易构建和部署为静态二进制文件。
Prometheus的架构
Prometheus Server 直接从监控目标中或者间接通过推送网关来拉取监控指标,它在本地存储所有抓取到的样本数据,并对此数据执行一系列规则,以汇总和记录现有数据的新时间序列或生成告警。可以通过 Grafana 或者其他工具来实现监控数据的可视化。