认识
Power your metrics and alerting with the leading open-source monitoring solution.
Prometheus 是一种开源的系统监控和警报工具包,最初是在 SoundCloud 开发的。它以多维数据模型和灵活的查询语言 PromQL 而闻名,这使得它在处理时间序列数据方面非常强大。
Prometheus 是开源的系统监控和告警工具集(官方解释)。但是我们提到 Prometheus 术语时,多半是指存储监控数据的服务;
在 Prometheus Monitoring System 中:Exporters 负责采集指标,并通过 HTTP 来暴露关键指标;Prometheus 定期请求 Exporters 以拉取指标并存储,然后评估是否达到告警阈值;Alertmanager 负责发送来自 Prometheus 的告警请求;Grafana 提供 Web 界面,读取 Prometheus 数据来展示各种指标;
组成
Prometheus 的主要组成部分包括 Prometheus 服务器(负责抓取和存储时间序列数据)、客户端库(用于将应用程序的指标公开为 Prometheus 可抓取的 HTTP 端点)、push 网关(用于短期作业)、警报管理器(用于处理警报)、以及各种支持工具。
性质
Instant Vector Selector
Range Vector Selector
构建
该笔记将记录:在 Linux 中,如何部署 Prometheus 监控,以实验体验为目的,以及相关问题的解决思路;
on Kubernetes with Helm
应用
Prometheus 可以监控多种类型的系统,包括 Linux 或 Windows 主机、单个服务器到大规模的微服务、应用程序和数据库。在云原生环境中,Prometheus 与 Kubernetes 和其他容器技术有良好的集成,可以监控服务、收集指标,以及生成实时警报。
该笔记将记录安装、配置、使用 Prometheus 的方法,以及常见问题的处理方案。
场景 | 数据可视化 Visualization
Expression browser | Expression browser | Prometheus
- 针对常规指标的浏览和快速查询,直接使用 http://localhost:9090/graph 即可。
Grafana | Grafana | Prometheus
- 在集成监控系统时,我们通常会选择 Grafana 来显示 Promtheus 的数据。
Console templates | 使用 Console Template – prometheus-book
- 官方还提供 Console Template 特性,让我们能够使用 Go Template 来创建页面。
- 但是我们很少见到该特性的应用场景
改进
尽管 Prometheus 已经非常强大,但是依然有一些可以改进的地方。例如,它的存储引擎并不适合长期存储大量数据,这就需要借助其他的长期存储解决方案,如 Thanos 或 Cortex。
另外,Prometheus 本身不支持高可用,需要通过运行多个实例并使用第三方工具进行数据复制来实现。
参考
从认识、组成、性质、应用、改进方面来介绍 Prometheus —— ChatGPT 4.0
官方文档是我们学习的开始,以官方文档为中心进行学习与使用。该部分笔记将围绕官方文档展开。