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 ...