prometheus 教程

Prometheus 是一个开源的完整监控解决方案。Prometheus 既是一个时序数据库,又是一个监控系统。

​​Prometheus 作为时序数据库,排名超越了老牌的时序数据库OpenTSDB、Graphite、RRDtool、KairosDB等。

本教程将从指标抓取到查询及可视化展示,以及最后的监控告警,对 Prometheus 进行全面的讲解。

Prometheus 教程既适合小白入门也适合有一定基础的同学进阶提升。

 

​​Prometheus 简介

Prometheus 是古希腊神话里泰坦族的一名神明,名字的意思是"先见之明",下图中是 Prometheus 被宙斯惩罚,饱受肝脏日食夜长之苦。

下面就是我们 CRUD Boy 所了解的 Prometheus,下面是其官网封面图引导语:From metrics to insight,从指标到洞察力,通过指标去洞察你的系统,为我们的系统提供指标收集和监控的开源解决方案。也就是说,Prometheus 是一个数据监控的解决方案,让我们能随时掌握系统运行的状态,快速定位问题和排除故障。

Prometheus 最初在 SoundCloud 构建。自 2012 年成立以来,许多公司和组织都采用了 Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司维护。

16 年加入 CNCF,成为继 K8s 之后第二个 CNCF 托管的项目,目前 Github 42k 的 Star,维护频率很高,基本稳定在 1 个月 1 个小版本的迭代速度。

 

​​Prometheus 主要特征

  • 多维度数据模型
  • 灵活的查询语言 PromQl
  • 不依赖分布式存储,单个服务器节点是自主的
  • 以 HTTP 方式,通过Pull 模型拉取时间序列数据
  • 也可以通过中间网关支持 Push 模型
  • 通过服务发现或者静态配置,来发现目标服务对象
  • 支持多种多样的图标和界面展示

​​Prometheus 适用场景

Prometheus 可以很好地记录任何纯数字时间序列。它既适合以机器为中心的监控,也适合监控高度动态的面向服务的架构。在微服务的世界中,它对多维数据收集和查询的支持是一个特殊的优势。

Prometheus 专为可靠性而设计,是您在中断期间可以使用的系统,可让您快速诊断问题。每个 Prometheus 服务器都是独立的,不依赖于网络存储或其他远程服务。当您的基础设施的其他部分损坏时,您仍可以信赖它,并且您无需设置大量基础设施即可使用它。

典型的适用场景:

  • 监控微服务
  • node_exporter 监控操作系统
  • mysqld_exporter 监控 MySQL
  • 监控 Redis
  • 监控 Flink
  • 监控 RabbitMQ/Kafka
  • Prometheus Operator 监控 etcd
  • 监控 K8S

什么场景不适用 Prometheus?Prometheus 重视可靠性。即使在故障情况下,您也可以随时查看有关系统的可用统计信息。如果您需要 100% 的准确性,例如按请求计费,Prometheus 不是一个好的选择,因为收集的数据可能不够详细和完整。在这种情况下,您最好使用其他系统来收集和分析数据以进行计费,并使用 Prometheus 进行其余的监控。

Prometheus 是一个开源的完整监控解决方案,本身内置了高性能的时序数据库,作为数据存储。​​Prometheus 作为时序数据库,排名超越了老牌的时序数据库OpenTSDB、Graphite、RRDt ...